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

Редактирование файла sudoers для ограничения команд пользователя

Можно ли отредактировать файл sudoers, чтобы пользователь мог использовать sudo для любой команды, кроме указанной? Я верю, что это правда, я считаю, что файл sudoers можно настроить так, чтобы пользователь мог выполнять только заданный список команд.

EDIT: команды, которые я действительно хочу убрать, - это остановка и перезагрузка ... это заставляет меня думать, что существуют специальные системные вызовы для остановки и перезагрузки. Можете ли вы отобрать у пользователя системные вызовы? Если нет, то это потому, что система разрешений unix абстрагируется от системных вызовов, игнорируя это?

Другой способ взглянуть на это состоит в том, что если пользователи имеют в основном неограниченный root-доступ, они могут легко получить полный root-доступ.

Хотя вы могли бы что-то придумать, это будет легко обойти.

SElinux, тем не менее, возможен, хотя для этого нужно многому научиться.

Чтобы сделать то, что вы хотите (сохранить форму пользователя, работающую остановку, перезагрузку и выключение), вам нужно будет изучить материал SElinux, чтобы запретить пользователю совершать эти системные вызовы. В противном случае пользователь просто запустит сначала / bin / sh, а затем / bin / halt, не обращаясь к sudo.

Регистрируйте все, что они делают, через sudo, по-видимому, у вас есть способ донести мысль, чтобы не делать этого снова.

Defaults logfile=/var/log/sudolog 

будут регистрировать все команды, которые они запускают, немного погуглите для получения дополнительной информации.

Да и нет ... Вы можете запретить пользователю запускать определенный файл, поставив перед файлом удар (!), Однако вы не можете помешать пользователю скопировать файл в другое место, а затем запустить его оттуда.

User_Alias    ADMINS = peter, bob, bunny, %operator

ADMINS        ALL    = !/usr/bin/su, !SHELLS

Предоставление доступа к определенным файлам от имени другого пользователя

Если пользователь действительно хочет перезагрузиться, он найдет способ. sudo -s, sudo -i, sudo $EDITOR /etc/sudoers... можно использовать для снятия ваших ограничений.

А в Unix-подобных системах вам разрешено перезагружать систему, пока вы являетесь пользователем root (uid 0). Если вы найдете способ ограничить эти системные вызовы, можно сделать следующее:

user$ echo b | sudo tee /proc/sysrq-trigger

или его разновидность. Или перезагрузитесь, вызвав панику ядра. Или...

Наконец, наличие root-доступа обычно дает вам возможность снимать любые ограничения.

конечно, как root вызовите visudo и запретите пользователю запускать / sbin / halt:

user ALL=(ALL) NOPASSWD: !/sbin/halt

В этом есть риск: часто есть разные способы выполнить одно и то же действие. Например, telnit 6 или init 6 тоже выполняет перезагрузку. Возможно, есть способ принудительно выполнить дамп ядра и перезагрузить его.

Следующая строка должна позволить пользователю «jim» запускать все, кроме / usr / bin / kill и / usr / bin / su.

jim          ALL= !/usr/bin/kill,!/usr/bin/su

Это непроверено и YMMV, но как насчет настройки cmd_list команд, которые вы не хотите запускать, а затем использовать! Cmd_list для указанной группы / пользователя?

У меня нет доступа, чтобы проверить это, и я просто просмотрел страницу руководства в Интернете по адресу Руководство Sudoers поэтому некоторые эксперты поправят меня здесь, если я ошибаюсь