LINUX.ORG.RU
ФорумAdmin

Apache на 80 порту не под ROOT - как?


0

0

Разъясните возможен ли сабж?
Как я понял под юниксом все порты с номером <1000
зарезервированы под рута. Что, все web-сайты(что на 80 порту) под
апачем работают от рута? Или народ юзает редирект (команда ip )
трафика с 80 на 8080 к примеру, который уже запущен не под рутом?
Криво ведь, наверняка есть нормальное решение.
HELP!

anonymous

Возможен. Смотри маны по настройке apache.

>Как я понял под юниксом все порты с номером <1000 >зарезервированы под рута. Что, все web-сайты(что на 80 порту) под >апачем работают от рута? Или народ юзает редирект (команда ip ) >трафика с 80 на 8080 к примеру, который уже запущен не под рутом? Абсолютно не верно!!! Для начала читай инфу о протоколе TCP/IP !!!!!!!!!! RTFM батенька...

co6aka
()

>Возможен. Смотри маны по настройке apache.
Спасибо за ответ, жаль он такой лаконичный.

anonymous
()

дЛя солярки вот нашел, -
ndd -set /dev/tcp tcp_smallest_nonpriv_port 80
ndd -set /dev/tcp tcp_extra_priv_ports_add 110
делаем непривилигированными все порты > 80, затем
возвращаем выборочно привилегированность.
Приходит еще что-то на ум с SUDO, но не все понимаю,
подскажите, если знаете пожалуйста, может надо просто в инишниках чего прописать.
Не ясно мне это. на портах > 1024 апач работает
под любым юзером, а на самом ходовом :) порту подавай рута.

anonymous
()

>Для начала читай инфу о протоколе TCP/IP !!!!!!!!!! RTFM батенька...
Ну при чем тут tcp/ip?
Насколько я понял ограничения < 1024 это чисто юниксоидная байда.
Порты, интерфейсы (tcp/ip) здесь причем?

anonymous
()

Apache нужен root только что б bind() к порту сделать. После этого он меняет UID для понижения прав. Подробнее смотреть про директиву User в httpd.conf и манах апача.

http://httpd.apache.org/docs/mod/core.html#user

ivlad ★★★★★
()

>Apache нужен root только что б bind() к порту сделать. После этого он
>меняет UID для понижения прав. Подробнее смотреть про директиву User в
> httpd.conf и манах апача.
>http://httpd.apache.org/docs/mod/core.html#user
>oxonian (*) (2003-03-19 02:22:55.787)

Спасибо за ответ, вроде разобрался(поправьте если что не так понял).
Апач стартует под рутом, создает сокет на 80 порту, а потом
порождает процессы (фоками) уже не под рутом(а под тем юзером что указан
в httpd.conf, точнее потом меняет права на этого юзера у фокнутого процесса) и такие процессы(не рутовые) могут иметь доступ к ранее
созданному сокету на 80 порту (хотя в обычном состоянии такие не рутовые
юзеры не имеют доступа к этому привелигерованному порту).
Т.е. все порожденные не рутовые процессы конкурентно слушают сокет
на 80 порту, который был создан первым рутовым процессом.
Поэтому, если крякнут апач, CGI к примеру, то получат права
не рута. Так ли это?

anonymous
()

>Ну типа того :-)
>spirit (*) (2003-03-19 10:20:43.414)
Ну, тиа спасибо всем за науку.
Одного не пойму, на кой хрен надо было делать в юниксе
это ограничение по портам? Ведь все-равно получилось,
что непривилигированный пользователь(не root) слушает 80 порт,
только извратится разработчикам апача пришлось.
Никому от того, что noname user слушает 80 порт хуже не становится.
Зачем это сделано(порты < 1024 только для рута - бред имхо)?

anonymous
()

очень просто.
если б порты <1024 могли слушать обычные юзеры,
любой из них мог бы открыть 25-й порт и сделать там открытый релей.
последствия - катастрофические.

(первое что в голову пришло)

ingwar
()

>любой из них мог бы открыть 25-й порт и сделать там открытый релей. м-да, пожалуй все логично. Сэнкс.

anonymous
()

Не понятно только почему когда рутовый процесс меняет у порожденных
процессов UID, права понижаются на все объекты, а на привелигерованный сокет они остаются?

anonymous
()

4anonymous: При чтении фразу "для начала" ты видимо пропустил.

IMHO надо понять причину, потом (проще) понять следствие и реализацию. Тогда бы не занимался лишней писаниной, и я то же.

RTFM.

co6aka
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.