Вопрос: Как запретить данному пользователю запускать определенную команду.
Этот метод использует список контроля доступа файловой системы (ACL) для предотвращения нежелательного доступа.
Внимание: средство sudo не подходит для этой цели. В частности, «вычитание» исполняемого файла из допустимой предустановки ALL не работает должным образом.
В приведенном ниже примере пользователь john не может создавать каталоги с помощью команды mkdir. Шаги:
1. Найдите абсолютный путь к команде, которой нужно управлять:
# which mkdir /bin/mkdir
2. Отобразите текущий ACL для этой программы:
# getfacl /bin/mkdir # file: bin/mkdir # owner: root # group: root user::rwx group::r-x other::r-x
Пользователь, группа и другие записи соответствуют традиционным правам на доступ к файлам, управляемым командой chmod.
3. Добавьте правило контроля доступа для пользователя john:
# /bin/setfacl -m u:john:--- /bin/mkdir
4. Просмотр обновленного контроля доступа:
# getfacl /bin/mkdir getfacl: Removing leading '/' from absolute path names # file: bin/mkdir # owner: root # group: root user::rwx user:john:--- group::r-x mask::rwx other::r-x
5. Проверьте настройки:
# su - john $ mkdir -bash: /bin/mkdir: Permission denied
Подумайте о том, чтобы добавить отслеживание выполнения с помощью инструмента audctl для усиления этой защиты.