Своё правило кладут отдельным файлом в /etc/sudoers.d: его видно, его легко убрать, основной /etc/sudoers не трогается.
У файла три требования. Имя — без точки и без ~ в конце: файлы вроде labops.conf sudo пропускает молча. Владелец — root:root. Права — 0440. Новый файл visudo -f создаёт с правами 0640, поэтому после сохранения нужен chmod:
sudo visudo -c проверяет всю конфигурацию: /etc/sudoers и каждый подключённый файл, вместе с правами. На файл с правами 0640 он печатает bad permissions, should be mode 0440.
Строку с ошибкой sudo на этой машине пропускает и печатает ошибку при каждом вызове; старые версии sudo от такой ошибки отказываются работать совсем. Поэтому файлы sudoers правят только через visudo, а на сервере держат открытым второй терминал с sudo -i.
Ты создал файл правила через sudo tee. Что сделаешь?
$ sudo visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/90-student: parsed OK
/etc/sudoers.d/README: parsed OK
/etc/sudoers.d/ops: bad permissions, should be mode 0440
-
Тогда перестанут действовать все файлы каталога, и
90-studentтоже. Ошибка — в правах одного файла. -
visudo -cпроверяет и права: наopsон напечаталbad permissionsи завершился с ошибкой. Файл должен быть0440. -
Файлы с точкой в имени sudo пропускает: ошибка пропадёт вместе с правилом. Чинят права самого файла.
tee создал файл с обычными правами, а sudo требует 0440. chmod 0440 чинит именно это, и повторная sudo visudo -c напечатает parsed OK для всех файлов.
Главное в шаге
-
Файл правила в
/etc/sudoers.d: имя без точки, root:root, права0440. -
visudo -cпроверяет всю конфигурацию вместе с правами файлов, но не смысл правил.