User Tools

Site Tools


sudo

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
sudo.txt · Last modified: 2023/04/06 10:28 (external edit)