Вопрос или проблема
Как root, разрешил пользователю ubuntu использовать sudo
sudo usermod -a -G sudo ubuntu
но не могу найти никаких записей об этом в файле sudoers – также /etc/sudoers.d/ пуст:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"`
Defaults use_pty
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
@includedir /etc/sudoers.d
Файл passwd содержит запись:
ubuntu:x:1000:1000:SomeUser,roomNumber,phoneNumber,:/home/ubuntu:/bin/bash
Например, я хотел бы убрать необходимость ввода пароля, изменив запись в файле sudoers:
ubuntu ALL=(ALL) NOPASSWD:ALL
Разве не должна быть запись в файле sudoers или в каком-то файле в /etc/sudoers.d/? Явно чего-то не хватает!
Любые идеи будут очень признательны.
%sudo ALL=(ALL:ALL) ALL
Вот ваша запись. Участники группы “sudo” могут выполнять любые программы от имени любого пользователя и группы по своему желанию. А ваша команда usermod
добавила пользователя ubuntu
в группу sudo
.
Формат файла sudoers описан в man sudoers
, кстати.
Ответ или решение
Проблема, с которой вы столкнулись, связана с тем, как sudo обрабатывает разрешения для пользователей. В случае, описанном вами, пользователь «ubuntu» имеет возможность использовать sudo благодаря членству в группе «sudo». Давайте рассмотрим это подробно.
Понимание Содержимого Файла sudoers
Файл /etc/sudoers
, а также файлы в директории /etc/sudoers.d
, управляют тем, кто имеет право выполнять команды через sudo. В вашем случае, строка:
%sudo ALL=(ALL:ALL) ALL
означает, что все пользователи, которые являются членами группы «sudo», могут выполнять любые команды от имени любого пользователя и любой группы на этом компьютере, вводя свой пароль.
Почему Пользователь "ubuntu" Может Использовать Sudo?
После выполнения команды:
sudo usermod -a -G sudo ubuntu
вы добавили пользователя «ubuntu» в группу «sudo». Это автоматом дало этому пользователю все права, предоставленные членам группы «sudo» через соответствующую строку в файле sudoers.
Поскольку запасные файлы в /etc/sudoers.d/
пусты, все правила предоставления прав для sudo содержатся непосредственно в основном файле /etc/sudoers
.
Изменение Прав Для Пользователя Без Ввода Пароля
Если вы хотите, чтобы пользователь «ubuntu» мог использовать sudo без необходимости ввода пароля, вам нужно добавить следующую строку в файл sudoers. Однако, помните, что вносить изменения в этот файл следует с осторожностью, используя редактор, такой как visudo
, который проверяет синтаксис перед сохранением.
-
Откройте файл sudoers с помощью команды:
sudo visudo
-
Добавьте следующую строку в конце файла:
ubuntu ALL=(ALL) NOPASSWD:ALL
Это правило позволяет пользователю «ubuntu» выполнять любые команды без ввода пароля.
Заключение
Таким образом, отсутствие явной записи для пользователя в файле sudoers — это нормально в рамках системы управления правами sudo, где роли могут быть связаны с группами пользователей. В вашем случае, добавление пользователя в группу «sudo» автоматом обеспечило ему необходимые привилегии. Если вы нуждаетесь в настройке без пароля, работайте осторожно с файлом sudoers через visudo
, чтобы предотвратить нарушения в системе безопасности.
Надеюсь, это объяснение помогло вам лучше понять, как работает система sudo, и как вы можете настроить её под ваши нужды. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь спрашивать.