LINUX.ORG.RU

Запрет пользователям запускать программы

 , ,


0

3

дистрибутив Ubuntu 16.04.1 LTS

По умолчанию права, например, на утилиту /bin/ping такие: -rwxr-xr-x 1 root root 44168 май 7 2014 ping

Я убираю для others биты r и x Назначаю группу admins

И при запуске от пользователя, который находится в группе admins я получаю ошибку: ping: icmp open socket: Operation not permitted

Я возвращаю всё назад и под обычным своим пользователем получаю ошибку.

Погуглив я нахожу решение - это проставление бита s если это сделать, то ping работает от обычного пользователя.

Но почему до этого всё работало без SUID bit?

Задача - сделать так, чтобы определенные программы запускались только от администратора, от группы администраторов.

Посмотри как сделано в дебиане. Например, fdisk, shutdown/halt/reboot — при запуске от пользователя оболочка просто ругается, что их «нет в природе».

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от mandala

Полагаю, что это из-за того, что fdisk, shutdown/halt/reboot лежат в /sbin, который пользователю в PATH не вписан.

alinak86 а покажи ещё
getfacl /bin/ping
и
getcap /bin/ping

imul ★★★★★
()

Пингу нужен либо CAP_NET_RAW, либо права рута — иначе он не сможет слать ICMP пакеты. Ты своими телодвижениями сбросил капы, и CAP_NET_RAW отвалился — поэтому у тебя без суида и перестало работать.

Убери суид бит, поставь права как надо, и поставь CAP_NET_RAW. И будет тебе хорошо.

ChALkeR ★★★★★
()
Последнее исправление: ChALkeR (всего исправлений: 1)
Ответ на: комментарий от ChALkeR

Прикольно, даже не знал про такую вещь как capabilities у файлов.

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

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

очень древние учебники, значит. А если в новых про это писать - то как курсы продавать?

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от praseodim

Потому что capabilities относительно (очень относительно) свежие (и нужны в т.ч. для того, чтобы рутовый суид каждому пингу не давать), а твои учебники по никсам написаны в очень хвостатые года.

ChALkeR ★★★★★
()
Ответ на: комментарий от praseodim

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

А ты возьми учебник по linux, ещё и про cgroups узнаешь.

no-such-file ★★★★★
()

Задача - сделать так, чтобы определенные программы запускались только от администратора, от группы администраторов.

Используй sudo, и алиасы User_Alias и Cmnd_Alias подробнее тут

Wind ★★★
()
Последнее исправление: Wind (всего исправлений: 1)

Но почему до этого всё работало без SUID bit?

Арчик делает так:

setcap cap_net_raw=ep usr/bin/ping 2>/dev/null || chmod +s usr/bin/ping

Тут setcap лучше чем chmod.

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