Как разрешить пользователю выполнять команды с sudo, но без командных аргументов.
В предыдущей статье мы узнали, как выполнять команды в каталоге от имени root с sudo.
В этом руководстве мы рассмотрим, как запретить командные аргументы с sudo.
То есть – мы разрешаем пользователю выполнять команды с sudo, но без аргументов.
Введение
Как вы уже знаете, каждая команда имеет различные опции для выполнения определенного действия.
Давайте рассмотрим команду “ls” в качестве примера.
Команда ls используется для просмотра содержимого каталога, верно? Да.
Команда ls поставляется с множеством опций и флагов командной строки.
Например, вы можете использовать флаг -a в команде ls, чтобы перечислить все содержимое (т.е. включая скрытые файлы) в каталоге.
В этом кратком руководстве мы рассмотрим, как разрешить пользователю запускать команду ls через sudo, но только без опций и флагов командной строки.
Позвольте нам показать вам, как это сделать в следующих разделах.
🔐 Добавление изюминки в сеанс sudo с помощью файла lecture на Linux или Unix
Запрет командных аргументов с Sudo
Отредактируйте файл /etc/sudoers от имени пользователя root:
Добавьте следующую строку:
user1 ALL=(root) /usr/bin/ls ""
Обратите внимание на двойные кавычки в конце команды ls в приведенной выше строке.
Двойные кавычки запрещают пользователю использовать аргументы данной команды (т.е. команды ls).
Согласно приведенной выше строке, пользователь user1 может выполнить команду ls от имени root, но не может использовать опции/флаги команды ls.
Вы можете использовать другую команду по своему выбору.
Сохраните файл и закройте его.
Теперь выйдите из сессии root и войдите под именем user1 и попробуйте запустить команду ls с любыми опциями как root через sudo из сессии user1:
Вы столкнетесь со следующей ошибкой:
Sorry, user user1 is not allowed to execute '/bin/ls -a' as root on itsecforu.ru
Однако вы сможете выполнить команду ls без аргументов:
Запрет командных аргументов с Sudo для всех пользователей
В приведенном выше примере было показано, как запретить пользователю выполнять команду с аргументами от имени пользователя root.
Что если вы хотите применить это правило ко всем пользователям?
Очень просто!
Просто добавьте следующую строку в файл /etc/sudoers:
ALL ALL=(root) /usr/bin/ls ""
Теперь все пользователи этой машины Linux не могут выполнить команду ls с ее флагами.
Чтобы вернуться к настройкам по умолчанию, просто удалите команду вместе с двойными кавычками.
Или удалите всю строку.
За более подробной информацией обратитесь к man-страницам.
🐧 Как настроить запрос пароля sudo
Заключение
В этом руководстве мы узнали, как разрешить пользователю выполнять команду с помощью sudo, но запретить ему добавлять какие-либо аргументы к команде.
Таким образом мы можем ограничить пользователей от неправильного использования любых аргументов командной строки.
см. также:
- 👥 Как настроить sudoreplay на Ubuntu и воспроизвести сеанс sudo
- 🐧 Как принудительно заставить вводить пароль sudo на Linux
- 🐧 Запуск команд от имени другого пользователя через Sudo в системах Linux
- 🐧 Как отключить доступ ‘su’ для пользователей Sudo
- 🐧 Как восстановить привилегии Sudo для пользователя Ubuntu/ Debian
- 🐧 Добавление, удаление и предоставление Sudo привилегий пользователям в Fedora
- 🐧 Как включить запись логов ввода-вывода sudo
- 👥 Как разрешить только определенные команды с помощью sudo на Linux