1

Я хочу запретить пользователям с доступом к sudoer использовать sudo для выполнения passwd (и, таким образом, изменить пароль root).

Это возможно? Если так, как это может быть достигнуто?

3 ответа3

5

Вы в принципе не можете запретить пользователям выполнять определенную команду, если им все еще разрешено выполнять все другие команды - они могут скопировать passwd в really-not-passwd-i-promise и выполнить это.

Если вы хотите помешать sudoers изменить пароль пользователя root или пароль другого пользователя, вы также не можете это предотвратить; они могут вручную редактировать /etc/shadow если у них есть привилегии root с использованием sudo.

(Этого можно достичь, например, используя Kerberos или LDAP для аутентификации - таким образом, никто не сможет изменить пароль другого пользователя, - но ничто не может помешать sudoers просто нарушить конфигурацию или что-то в этом роде.)

По сути, не давайте полных прав sudo людям, которым вы не доверяете. Запретить одну команду и разрешить все остальные нельзя.

0

Очень трудно удержать пользователя root ни от чего, но я верю, что вы можете сделать это с помощью AppArmor.

Проблема в том, как бы вы настроили его, чтобы могли произойти законные изменения пароля?

Уловка может состоять в том, чтобы настроить профиль AppArmor для sudo который наследуется всеми его дочерними элементами . Это не повлияет на пользователей, использующих passwd от себя (для изменения собственного пароля), и не повлияет на пользователей, которые вводят root через su .

Тем не менее, я подозреваю, что вы могли бы обойти это, копируя, перемещая или переименовывая двоичный файл sudo , так что вы, вероятно, захотите заблокировать доступ на запись passwd для всех корневых процессов, а затем только когда-либо изменить его, используя live CD.

Конечно, вы также должны защитить сам AppArmor от изменений. :)

Лучшее решение, вероятно, слишком дать sudo доступ только для определенных команд, а затем только для команд, которые не изменяют файловую систему.

0

что по этому поводу: отредактируйте файл /etc/sudoers, как показано ниже: %wheel ALL=(ALL) ALL,!/usr/bin/* /etc/shadow,!/usr/bin/* /etc/sudoers\ ,!/usr/bin/* /usr/bin/su,!/usr/bin/su,!/usr/sbin/visudo то нет никакой команды, доступной для этих файлов, и sudo su тоже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .