Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров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».

Спасибо, Сергей! Пятница прожита не зря!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
ps auxwww | grep ping | grep -v grep # ну как? от рута на вашей системе ping?
49.28% у меня ping от рута; ls -l `which ping` ⇒ -rws--x--x204
52.9% не от рута; getcap `which ping` ⇒ cap_net_raw+ep219
Проголосовали 414 пользователей. Воздержались 280 пользователей.
Теги:
Хабы:
+20
Комментарии52

Публикации

Изменить настройки темы

Истории

Работа

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн