Pull to refresh

Re: Отчёт и задания со всероссийской олимпиады по администрированию Linux-систем

Reading time 2 min
Views 19K
Тут появился интересная заметка про subj. Первый же вопрос первого тура поставил меня в тупик. Даже не столько вопрос, сколько правильный ответ организаторов. Оказывается ping у них выполняется от рута. На моей системе это не так. Уверен, что если вы пользуетесь достаточно современной системой, то и у вас ping выполняется не от рута.

Дело в том, что в Linux ещё с прошлого тысячелетия(!) существует такая штука, как capabilities. В man capabilities написано так мало, что даже и пересказать-то нечего: с помощью команды setcap можно устанавливать исполняемым файлам права на испольование разных подсистем без рутовых прав. В частности, для ping достаточно только прав CAP_NET_RAW. Существует масса подборок советов, как избавиться от suid-бита для различных системных программ.

Жаль, что люди, которые пользуются современными системами и держат руку на пульсе развития Linux, не имели ни единого шанса пройти даже первый тур этой олимпиады.

Динара Сафина, первая ракетка мира, между прочим, (фотка отсюда) тоже потрясена.

Всем счастливой пятницы!



Остальные вопросы я не читал, наверняка там тоже много интересного, не проходите мимо.

Для справки, полное досье на мой пинг:

$ ls -l /usr/bin/ping
-rwxr-xr-x 1 root root 40032 авг 13 18:56 /usr/bin/ping
$ getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+ep

А вот древняя слака:

$ ls -l /bin/ping
-rws--x--x 1 root root 29364 2006-08-14 02:20 /bin/ping*
$ getcap /bin/ping
-bash: getcap: command not found
$ uname -r # хотя ядро там эту фичу уже поддерживает
2.6.30.6

UPD: hipp и другие пользователи, которые ro на хабре и пишут мне на моём сайте: я не знаю, как вам ответить :-) Если вы хотите, чтобы я вам ответил, оставляйте что-нибудь кроме хабраников или просто пишите мене на почту. Спасибо за резонанс.

UPD: alizar намекает мне, что Динара Сафина завершила карьеру в 2011. Но (это уже от меня) она всё равно молодец! :-) А ядро 2.2 вышло в 1999 году, а многие этого не заметили до сих пор.

UPD (важный): в почту мне пишут, что уже года с 2010 в Linux (ядре) есть так называемые ping-socket, реализованные нашим соотечественником (Василий Куликов из Openwall). Я посмотрел, про это, оказывается есть man 7 icmp у меня в /proc торчит даже для него интерфейс /proc/sys/net/ipv4/icmp_*. Кому интересно, можно начать гуглёж со слов «userspace ping utility».

Спасибо, Сергей! Пятница прожита не зря!
Only registered users can participate in poll. Log in, please.
ps auxwww | grep ping | grep -v grep # ну как? от рута на вашей системе ping?
49.28% у меня ping от рута; ls -l `which ping` ⇒ -rws--x--x 204
52.9% не от рута; getcap `which ping` ⇒ cap_net_raw+ep 219
414 users voted. 280 users abstained.
Tags:
Hubs:
+20
Comments 52
Comments Comments 52

Articles