Как разрешить пользователю без полномочий 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 для перенаправления соединений.

Коркман
источник