Допустим, у нас есть группа (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
позволит им убить любой процесс. Его нельзя ограничить только уничтожением процессов определенного пользователя.