🐧 Как ограничить аргументы команда с sudo на Linux |

🐧 Как ограничить аргументы команда с sudo на Linux

Мануал

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

В предыдущей статье мы узнали, как выполнять команды в каталоге от имени root с sudo.

В этом руководстве мы рассмотрим, как запретить командные аргументы с sudo.

То есть – мы разрешаем пользователю выполнять команды с sudo, но без аргументов.

Введение

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

Давайте рассмотрим команду “ls” в качестве примера.

Команда ls используется для просмотра содержимого каталога, верно? Да.

Команда ls поставляется с множеством опций и флагов командной строки.

Например, вы можете использовать флаг -a в команде ls, чтобы перечислить все содержимое (т.е. включая скрытые файлы) в каталоге.

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

Позвольте нам показать вам, как это сделать в следующих разделах.

🔐 Добавление изюминки в сеанс sudo с помощью файла lecture на Linux или Unix

Запрет командных аргументов с Sudo

Отредактируйте файл /etc/sudoers от имени пользователя root:

visudo

Добавьте следующую строку:

user1   ALL=(root)      /usr/bin/ls ""

Обратите внимание на двойные кавычки в конце команды ls в приведенной выше строке.

Двойные кавычки запрещают пользователю использовать аргументы данной команды (т.е. команды ls).

Согласно приведенной выше строке, пользователь user1 может выполнить команду ls от имени root, но не может использовать опции/флаги команды ls.

Вы можете использовать другую команду по своему выбору.

Сохраните файл и закройте его.

Теперь выйдите из сессии root и войдите под именем user1 и попробуйте запустить команду ls с любыми опциями как root через sudo из сессии user1:

sudo -u root ls -a

Вы столкнетесь со следующей ошибкой:

Sorry, user user1 is not allowed to execute '/bin/ls -a' as root on itsecforu.ru

Однако вы сможете выполнить команду ls без аргументов:

sudo -u root ls

Запрет командных аргументов с Sudo для всех пользователей

В приведенном выше примере было показано, как запретить пользователю выполнять команду с аргументами от имени пользователя root.

Что если вы хотите применить это правило ко всем пользователям?

Очень просто!

Просто добавьте следующую строку в файл /etc/sudoers:

ALL   ALL=(root)      /usr/bin/ls ""

Теперь все пользователи этой машины Linux не могут выполнить команду ls с ее флагами.

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

Или удалите всю строку.

За более подробной информацией обратитесь к man-страницам.

man sudoers

🐧 Как настроить запрос пароля sudo

Заключение

В этом руководстве мы узнали, как разрешить пользователю выполнять команду с помощью sudo, но запретить ему добавлять какие-либо аргументы к команде.

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

см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий