Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: AppArmor и возмлжность приложению биндиться на порт < 1024  (Прочитано 707 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн denis077

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Привет всем,

У меня есть приложение, которое входе работы должно биндиться на порт < 1024.
Приложение запускается из под non-root полльзователя.

Я нашел несколько вариантов решения проблемы, но они мне не подходят:
1. sudo бит. Проблема в том, что приложение начинает писать логи (и генерить некоторые файлы), и оунером этих файлов является root, что не есть хорошо. Собчтвенно от этого и хочется уйти.
2. Роутинг портов. Использовать фаирвол iptables не позволяет политика партии.
3. Установка CAP_NET_BIND_SERVICE capability на исполняемый файл. Самое лучшее решение для меня, но... Мое приложение очень большое. Весит 2,7Г. При попытке сделать setcap ругается, что файл неправильный. Есть ли способ обойти ограничение в 2Г для размера файла?
4. AppArmor. Это решение мне видится на данный момент наиболее реальным. У меня ОС: Ububntu 10.04 и AppArmor стоит в нем по умолчанию. Однако все попытки насторить АппАрмор так, чтобы приложение могло биндиться на порт ни к чему не привели. Установка capability net_bind_service не помогла.
Возможно ли решить эту проблему с помощью AppArmor вообще? Иля я зря стараюсь?

Есть ли еще способы разрешить приложению биндиться на порт < 1024 из-под non-root пользователя?

Буду благодарен за любые советы.

Спасибо,
Денис

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
AppArmor тут непричем
Это принципы работы linux
А какая проблема в оунере файлов, сделать chown нельзя?
Шаг за шагом можно достичь цели.

Гарри Кашпировский

  • Гость
Вы не рассматривали вариант с iptables, в частности действие REDIRECT ?

Оффлайн denis077

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
AppArmor тут непричем
Это принципы работы linux
А какая проблема в оунере файлов, сделать chown нельзя?

Приложение генерит кучу файлов в процессе работы... В принципе можно на все файлы нагонять chown, но не хотелось бы... Много кода менять...
Но видимо придется, если не придумаю ничего другого...

По поводу AppArmor: т.е. он не дает такую возможность? Просто я думал, что capability net_bind_service, дает такую же возможность как и setcap cap_net_bind_service+ep <exe_name>... Видимо это не так (((

Пользователь решил продолжить мысль 19 Май 2011, 12:03:27:
Вы не рассматривали вариант с iptables, в частности действие REDIRECT ?
Рассматривал... Но как я сказал, использовать это решение не позволяет политика партии  :)

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Если папкам, в которых создаются файлы поставить правильного пользователя и группу и маску создания, то и chown не нужен, а для логов есть logger и syslog.
Шаг за шагом можно достичь цели.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 14993
  • Я не слышу.
    • Просмотр профиля
denis077
sudo /etc/init.d/apparmor stop ?
~.o

Оффлайн denis077

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Если папкам, в которых создаются файлы поставить правильного пользователя и группу и маску создания, то и chown не нужен, а для логов есть logger и syslog.
Опять код менять... Не хотелось бы...

Пользователь решил продолжить мысль 19 Май 2011, 12:38:55:
denis077
sudo /etc/init.d/apparmor stop ?


AppArmor рестартовал.
sudo service apparmor restart

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
А при чечм тут код?
Вы когда папку создаете - назначаете xattr и все.
Шаг за шагом можно достичь цели.

Оффлайн denis077

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Папки создаются программой в процессе работы, соответсвенно менять оунера пермишены и все такое придется там же...
Зарание создавать тоже не вариант, ибо пути передаются программе в параметрах запуска, т.е. они могут быть любыми...

З.Ы. У пользователя нет рутовых прав и сам он сделать это не может, да и не камильфо это )))

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Ну вы и ...
Сказал бы я пару слов тому, кто архитектуру придумывал.
передавайте программе с путями и юзера
и при создании папок делайте правильные маски и права на эти изначальные папки.
Шаг за шагом можно достичь цели.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26258
    • Просмотр профиля
Папки создаются программой в процессе работы, соответсвенно менять оунера пермишены и все такое придется там же...
Зарание создавать тоже не вариант, ибо пути передаются программе в параметрах запуска, т.е. они могут быть любыми...

З.Ы. У пользователя нет рутовых прав и сам он сделать это не может, да и не камильфо это )))
Знаешь, по этому поводу я могу сказать только одно:
Мозги можно вправить только тому, у кого они есть.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн denis077

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Глубокомысленно...

А по делу?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26258
    • Просмотр профиля
По делу - пишите программу так, чтобы не приходилось извращаться.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Вот представьте что вам её надо будет запустить на голом дебиановском стенде, без ничего и из под обычного пользователя.
Представили? Пишите так, чтобы оно работало в этих условиях, используя, при необходимости, штатные POSIX средства.
Идеология ЮНИКС - программа должна делать одно дело, но делать его ох*енно и несмотря ни на что.
Шаг за шагом можно достичь цели.

Оффлайн denis077

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Зачем мне это представлять?
Моя программа должна работать в определенной среде и определенным образом...
То, что она генерит много файлов не значит, что у нас команда чекнутых разработчиков, а то что Заказщик хочет ТАК и никак иначе...
Собсно, проехали...

Вопрос был про AppArmor, в основном... Но, видимо, точного ответа никто дать не может или не хочет.

 

Страница сгенерирована за 0.058 секунд. Запросов: 24.