Table of Contents
sudo
В Debian 10
apt install sudo
Поставил Пользователь Корень CentOS, и увидел, что это хорошо. И решил создал Пользователь Корень другого пользователя
useradd username
И дал он пароль ему
passwd username
А потом, прищурив глаз, посмотрел Корень на пользователя с паролем и добавил его в группу колесо
usermod -aG wheel username # Debian usermod -aG sudo username # Ubuntu usermod -aG sudo username
И сказал Пользователь Корень, новоиспеченному пользователю:
'- Теперь у тебя есть sudo, ебись как хочешь!'
P.S. Чтобы пользователь Ubuntu попал в группу для ебли, отправляем его так
usermod -aG sudo username
в Debian 9 в фале /etc/sudoers
прописать пользователя, которому надо sudo
username ALL=(ALL:ALL) ALL
Вдруг пригодится
перенаправление echo
можно так
echo 'deb blah ... blah' | sudo tee --append /etc/apt/sources.list
либо так
sudo sh -c "echo 'something' >> /etc/privilegedfile"
Если набрали команду без sudo, а потом оказалось, что она необходима, наберите просто:
sudo !!
Проверка конфига sudo с помощью visudo
Основной метод работы visudo – интерактивный: запуск команды открывает редактор файла /etc/sudoers
. Второй метод – тоже весьма полезен! Файлы не редактируется, а только происходит проверка синтаксиса.
Запуск visudo с опцией -c
выдает отчёт о главном конфиге – /etc/sudoers
и всех других файлах, которые он может подгружать из /etc/sudoers.d
:
sudo visudo -c
/etc/sudoers: parsed OK /etc/sudoers.d/README: parsed OK
Запуск команды sudo без ввода пароля
Предположим, что есть такой пользователь (например ansible), которому нужна такая фича.
Для реализации будем редактировать файл /etc/sudoers
, но не обычным редактором, а специальным – visudo
. Но для начала, все же сделаем бекап препарируемого файла.
cp /etc/sudoers{,.origin}
Далее запускаем visudo:
visudo
И в самом конце фала (дабы избежать переопределены других директив этой), указываем пользователя (в этом случае nevvad), который может в sudo без пароля:
nevvad ALL=(ALL) NOPASSWD:ALL
Далее, жмем Ctrl+s, чтобы сохранить /etc/sudoers
и Ctrl+x чтобы его закрыть.
Но лучшим решение, дать пользователю дать разрешение не на все, а только на определенные нужды, например на перезапуск сервера nginx:
nevvad ALL = NOPASSWD: /bin/systemctl restart nginx.service
Принудительная аутентификация по паролю Sudo
Когда пользователь вводит команду с привилегиями sudo, пароль sudo запоминается на короткий период времени. По умолчанию пароль запоминается на 15 минут. В течение этого времени пользователям не нужно вводить пароль для последующих команд, которые запускаются после первой команды sudo, даже если им требуются повышение привилегий.
Принудительная аутентификация Sudo для всех пользователей
Редактируем /etc/sudoers
, запускаем:
sudo visudo
Находим строку Defaults env_reset
, и приводим ее к виду:
Defaults env_reset, timestamp_timeout=0
Перезапускаем сеанс. С этого момента все пользователи должны будут вводить, каждый раз, когда перед командой стоит префикс sudo.
Принудительная аутентификация Sudo для конкретных пользователей
Вместо того, чтобы принуждать всех пользователей постоянно вводить пароль, мы можем указать только определенных пользователей, которые будут обязаны вводить пароль для каждой команды sudo. Для этого, добавим содержимое в каталог /etc/sudoers.d/
.
cd /etc/sudoers.d/ # Создаем файл конфигурации sudo visudo -f nevvad
И добавляем в него следующею строку:
Defaults timestamp_timeout=0