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

Ограничение команды su особым образом

У меня есть список пользователей системы, у которых есть доступ почти ко всему через sudo. Теперь я хотел бы ограничить их доступ к sudo для команды su.

Я хотел бы ограничить вс команда для каждого пользователя в системе и позволить каждому пользователю системы иметь возможность вс конкретному пользователю (в данном случае это кот):

#user_name should be able to do *sudo su tomcat* but not *sudo su another_user*
user_name ALL=/bin/, !/bin/su, /bin/su tomcat

Я пробовал разные комбинации для этого, но, к сожалению, не смог заставить их работать.

Вот мой полный файл / etc / sudoers:

Defaults   !visiblepw
Defaults    always_set_home

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root    ALL=(ALL)   ALL

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d

В /etc/sudoers.d/ есть еще один файл, который содержит следующее:

meraj ALL=(ALL) NOPASSWD:ALL
siraj ALL=(ALL) NOPASSWD:ALL

# Members of the group 'sysadmin' may gain root privileges
%sysadmin ALL=(ALL) NOPASSWD:ALL

Обновление 2: Когда я делаю sudo -l от пользователя meraj я получаю следующее:

Matching Defaults entries for meraj on this host:
    !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG
    LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User meraj may run the following commands on this host:
    (ALL) NOPASSWD: ALL
    (root) ALL, (root) !/bin/su
    (root) /bin/su tomcat

Когда я выполняю sudo / bin / su tomcat или sudo / bin / su siraj, он запрашивает у меня пароль:

[sudo] password for meraj:
username       ALL=(root)      /bin/su tomcat

работает для меня. Если это не работает для вас, это может быть из-за другой запись в файле sudoers, которая разрешает гораздо более широкий диапазон команд, возможно, неограниченный доступ к /bin/su - нам нужно увидеть все ваше sudoers файл, неотредактированный, а также подробное вырезание и вставка сбоев, чтобы иметь возможность прокомментировать это.

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

username       ALL=(root)      ALL, !/bin/su

прежде чем вернуть их только для кота со строкой, которую я цитирую в начале моего ответа, сработало. Если это не сработает для вас, не могли бы вы показать нам результат sudo -l для такого пользователя плюс выходы sudo /bin/su tomcat и sudo /bin/su userC (где userC - третий пользователь)?