Мне не нужен администратор, чтобы изменить мой пароль root. Я не хочу, чтобы какой-либо пользователь sudo выполнял эту команду:
sudo passwd $root
Я пробовал ее в файле sudoers с помощью следующей команды:
%sudo ALL=(ALL) ALL, !/usr/bin/passwd $root
Как я могу заблокировать ее?
Согласно руководству по sudoers :
It is generally not effective to "subtract" commands from ALL using the
’!’ operator. A user can trivially circumvent this by copying the
desired command to a different name and then executing that. For
example:
bill ALL = ALL, !SU, !SHELLS
Doesn’t really prevent bill from running the commands listed in SU or
SHELLS since he can simply copy those commands to a different name, or
use a shell escape from an editor or other program. Therefore, these
kind of restrictions should be considered advisory at best (and
reinforced by policy).
Вот почему ваша политика sudoers не работает.
Если вы хотите запретить пользователю чтобы получить права root и изменить его пароль, попробуйте следующую процедуру:
Предполагая, что ваш sudoers содержит эту директиву:
root ALL = (ALL: ALL) ALL
% sudo ALL = (ВСЕ: ВСЕ) ВСЕ
Предположим, что ваше имя пользователя foo
, его группы - foo
и sudo
. Вывод команды groups
:
foo sudo
Удалить пользователя foo
из группы sudo
: gpasswd -d foo sudo
после этого пользователь foo
не может запускать какие-либо команды с sudo.
Отредактируйте файл sudoers. Используйте эту команду:
sudo visudo -f /etc/sudoers.d/foo
Определите разрешение пользователя foo
, например:
foo ALL = / usr / bin,! / Usr / bin / passwd,! / Usr / bin / su
Это означает, что пользователь foo
может запускать любые команды в каталоге / usr / bin /
, кроме команды passwd
и su
.
Примечание. Если пользователь foo
хочет изменить свой пароль, он может запустить команду passwd
без sudo
.
Другой пример разрешения пользователя foo
:
foo ALL = / usr / bin, / usr / bin / passwd [A-Za-z] *,! / Usr / bin / passwd root
Это означает, что пользователь foo
может запускать любые команды в каталоге / usr / bin /
и может изменять любой пароль, кроме root на ВСЕХ машинах.
Вы может определять группы команд, определяя Cmnd_Aliases
, и создавать «уровни разрешений». Вы можете найти полезные примеры в разделе ПРИМЕР руководства по sudoers , а здесь есть полезная ссылка о том, как использовать sudoers.
добавить псевдоним команды через visudo
:
Cmnd_Alias PASSWD=/usr/bin/passwd
Cmnd_Alias SU=/bin/su
добавить ограничения через visudo
:
%nopasswdgroup ALL = ALL, !PASSWD, !SU
добавить пользователя в группу nopasswdgroup:
usermod -aG nopasswdgroup nopasswduser