Выполняя новую установку сервера Ubuntu 16.04.1, я пытался включить файл /etc/sudoers.d/
дать пользовательские полномочия пользователя root для определенной команды.
Я добавил файл /etc/sudoers.d/servicetest
со следующим содержанием:
servicetest ALL = (root) NOPASSWD: /bin/systemctl status *
Файл /etc/sudoers
оставлен нетронутым. Это содержит #includedir /etc/sudoers.d
как последняя строка. Эта установка, к сожалению, не работает при выполнении соответствующей команды с sudo как пользователь servicetest
, Меня все еще просят относительно пароля. Однако, если я перемещаю содержание файла /etc/sudoers.d/servicetest
в конец /etc/sudoers
, все работает как ожидалось.
Какова могла быть причина этой проблемы? Как я могу вложить файлы /etc/sudoers.d/
работа?
Проблема не была, как отвечено IanC, вызванный полномочиями файла (sudo
счастливо принимает файл, принадлежавший root:root 0644
, как я могу подтвердить теперь, хотя это должно, конечно, быть root:root 0440
из соображений безопасности!), но новой строкой в конце файла, которому предшествовала строка стиля окон, заканчивающаяся (\r\n
).
sudo
только принимает \n
как окончания строки.
По-видимому, файлы, которые включены в /etc/sudoers
файл, должны иметь 0440 полномочий из соображений безопасности. Тот путь только базируется, может отредактировать файл, и только владелец и члены группы владельца могут считать его, делая его менее вероятно, что файл будет использоваться в качестве попытки нарастить полномочия.
можно проверить требования к включенному файлу на /etc/sudoers.d/README
, но два других требования - то, что имя файла не должно запускаться с .
(скрытые файлы) или заканчиваться ~
(конвенция для файлов резервных копий).
Кредиты к @steeldriver для подтверждения теории и нахождения /etc/sudoers.d/README
файл!
В моем CentOS 7 система не распознала бы файл, если бы это имело точку на свое имя. Например:
/etc/sudoers.d/user.perms # This file doesn't work
/etc/sudoers.d/userperms # This file does
Я столкнулся с той же проблемой с @Guillermo Prandi в Ubuntu 20.04.
Если я создам файл с расширением .conf
, он не будет работать. Но если .conf
удалить, все работает хорошо.
Я сомневаюсь, что файл 99-snapd.conf
работает нормально.
Как /etc/sudoers.d/README
, там сказано, «что не заканчиваются на «~» или содержат «.» характер . "
@IanC написал, что "имя файла не должно начинаться с . (скрытые файлы)", но я предполагаю, что это могло быть обновлено в новой версии.