Как разрешить пользователю без полномочий root прослушивать привилегированный порт?


11

Я хочу, чтобы системный журнал запускался от имени пользователя без полномочий root на моем компьютере с Linux. Это делает невозможным его привязку к порту 514 - потому что это привилегированный порт. Можно ли как-нибудь предоставить пользователю «foo», не являющемуся администратором, возможность прослушивать порт 514?

Ответы:


10
setcap 'cap_net_bind_service=+ep' /path/to/syslogd

Требуется не древнее ядро ​​Linux ( 2.6.24 или новее)


3

Вы можете настроить rinetd(доступно в большинстве, если не во всех стандартных репозиториях дистрибутива) прослушивание порта 514 и переадресацию подключений к другому порту (выше 1024, скажем, 1514). Таким образом, непривилегированный пользовательский процесс может прослушивать 1514 и rinetdбудет переадресовывать соединения, так что он, кажется, прослушивает 514.

Это будет работать только для TCP-соединений. Если вам нужно поддерживать UDP (или что-то еще) таким же образом, а также или вместо TCP, то вы можете использовать правила перевода iptables для достижения того же эффекта.


О, это было так легко. Вот руководство о том , как это сделать в Ubuntu: ubuntugeek.com/...
Иван


2

Прослушивайте непривилегированный порт и используйте iptables dnat для перенаправления соединений.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.