Назад | Перейти на главную страницу

Разрешения UNIX, позволяющие пользователям группы убивать процессы друг друга

Допустим, у нас есть группа (dev), у которого много пользователей и общий каталог разработки с g+rwx разрешения для всех содержащихся файлов. Достаточно ли этой настройки, чтобы любой dev пользователь может убить процесс, запущенный любым другим dev пользователь (при условии, что процесс был запущен с разрешениями по умолчанию)?

Так, например, у нас есть файл /opt/devfolder/bin/foo принадлежит пользователю user1 (в группе dev) с идентификатором группы dev и разрешения 0770. Если user2 (в группе dev) запускает экземпляр "foo" из своей оболочки, может user3 (в группе dev) убей это?

[Редактировать]

Если нет, как мы можем этого добиться, используя sudo или какая-нибудь другая стандартная утилита UNIX?

Самый простой способ сделать то, что вы хотите, - создать запись в /etc/sudoers как это:

%users localhost=(%users) NOPASSWD:/bin/kill

Это позволит любому в users групповой бег /bin/kill как и любой другой пользователь в users группа, и не будет запрашивать пароль. Я почти уверен, что это именно то, о чем вы просили.

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

В зависимости от вашей проблемы, если вам нужны пользователи разработчик группа, чтобы иметь возможность убить все процессов определенного типа для какого-то другого пользователя, тогда может быть решение.

%users localhost=(%users) NOPASSWD:/bin/killall -u <username>

или

%users localhost=(%users) NOPASSWD:/bin/killall -u <username> perl

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

Разрешения на файлы группы не распространяются на запущенные процессы. Только владелец процесса может убить процесс.

Однако вы можете подумать о настройке sudo, чтобы пользователи могли ограниченно выполнять команду kill.

Предоставление пользователям возможности убивать процессы с помощью sudo позволит им убить любой процесс. Его нельзя ограничить только уничтожением процессов определенного пользователя.