Ще одна перевага використання, visudo -f
як згадується в деяких відповідях, - це відповідна опція -c
або --check
те, що підтверджує, що у вас немає недійсної інформації у файлі sudoers.d або будь-якому іншому файлі, який ви можете ввести у sudoers.d. Це дійсно зручно у випадках, згаданих з автоматизованими інструментами, як можна запустити, наприклад
sudo visudo -c -q -f /home/myuser/mysudoers && \
sudo chmod 600 /home/myuser/mysudoers && \
sudo cp /home/myuser/mysudoers /etc/sudoers.d/mysudoers
Це мовчки перевіряє файл (немає результату через -q), і лише якщо це НЕ повертає помилку (вихід 1 означає недійсний файл судорів), тоді він скопіює файл у sudoers.d, таким чином ви зможете створити файл і працюйте над ним, не встигаючи правильно вперше (використання sudo visudo -f /etc/sudoers.d/myfile
має бути успішним, або він відкидає вміст, якщо ви не виправите його).
Також слово обережності щодо цих тверджень з інших відповідей.
Мій досвід вважає, що правила щодо файлів у цьому каталозі більш вільні, ніж для / etc / sudoers. Сюди входить:
Помилки у файлі не спричинили збій судо. Однак файл було проігноровано. Правила дозволу видаються менш суворими. Я дозволяю застосованій групі прочитати файл. Я не вірю, що це можливо з / etc / sudo.
Файли в /etc/sudoers.d повинні дотримуватися того ж синтаксису, що і / etc / sudoers, тому що під кришками система просто об'єднує всі файли з останнім у "виграші", якщо є кілька записів для одного і того ж особлива обстановка.
Якщо дозволи у файлах /etc/sudoers.d/ дозволу невірні (для запису в усьому світі), то вони ігноруються, це може спричинити занедбаність недійсних файлів sudo
. d файл з правильними дозволами.
Ви можете дозволити файлам sudoers бути читаними у всьому світі, якщо ви випадково дозволите "іншим" дозвіл на запис, який вам потрібно, щоб sudo як інший користувач, або з кореневого терміналу, запустіть цю команду. Це також може порушитися, якщо файл належить комусь, крім root: root.
sudo chmod 644 /etc/sudoers.d/mysudoers
sudo chown root:root /etc/sudoers.d/mysudoers
Я щойно підтвердив, що якщо я запускаюсь, chmod o+w /etc/sudoers.d/vagrant
я більше не можу користуватися судом як бродячий користувач, він запросить мене на пароль і потім вийде з ладу.
Коли я побіг sudo -l
переглядати застосовані дозволи команд як іншого дійсного користувача sudo, мені також надійшло попередження про дозволи файлів. Це та сама команда, яку я використовував для підтвердження того, що "бродячий" користувач втратив sudo, коли я застосував o+w
дозволи до файлу, що дав цьому дозволу користувач sudo.