Редактирование / etc / sudoers для управления правами sudo для пользователей и групп [duplicate]

Как-то это сработало для меня:

root @ kaiser: ~ # vim / etc / ssh / sshd_config

Измените эту строку от «да» до «нет» 28 «StrictModes no

Повторите попытку

sysadmin @ suselinux1: ~> con sysadmin kaiser Добро пожаловать в Ubuntu 12.04.1 LTS (GNU / Linux 3.2.0-25-generic i686)

Документация: https://help.ubuntu.com/

Последний вход: Пт ноя 9 15:40:11 2012 от 10.1.3.25 sysadmin @ kaiser: ~ $ date vie nov 9 17:53:11 CST 2012 sysadmin @ kaiser: ~ $

8
задан 21 July 2014 в 23:50

4 ответа

В соответствии с руководством 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=(ALL:ALL) 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 на всех машинах.

Вы можете определить группы команд с помощью define Cmnd_Aliases и создать «уровни разрешений». Вы можете найти полезные примеры в разделе ПРИМЕР sudoers manual , и вот полезная ссылка о том, как использовать sudoers.

12
ответ дан 18 July 2018 в 07:35

добавить псевдоним команды через visudo:

Cmnd_Alias PASSWD=/usr/bin/passwd Cmnd_Alias SU=/bin/su

добавить ограничения через visudo:

%nopasswdgroup ALL = ALL, !PASSWD, !SU

добавить пользователя в группу, называемую nopasswdgroup:

usermod -aG nopasswdgroup nopasswduser
0
ответ дан 18 July 2018 в 07:35

В соответствии с руководством 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=(ALL:ALL) 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 на всех машинах.

Вы можете определить группы команд с помощью define Cmnd_Aliases и создать «уровни разрешений». Вы можете найти полезные примеры в разделе ПРИМЕР sudoers manual , и вот полезная ссылка о том, как использовать sudoers.

12
ответ дан 24 July 2018 в 18:49
  • 1
    Мне нужно было foo ALL=/usr/bin/*, !/usr/bin/passwd понять, почему это так? – clurect 26 September 2017 в 21:13

добавить псевдоним команды через visudo:

Cmnd_Alias PASSWD=/usr/bin/passwd Cmnd_Alias SU=/bin/su

добавить ограничения через visudo:

%nopasswdgroup ALL = ALL, !PASSWD, !SU

добавить пользователя в группу, называемую nopasswdgroup:

usermod -aG nopasswdgroup nopasswduser
0
ответ дан 24 July 2018 в 18:49

Другие вопросы по тегам:

Похожие вопросы: