Я определил следующий файл в/etc/sudoers.d/50-apps
Cmnd_Alias APPS=/usr/bin/systemctl start app-*, /usr/bin/systemctl stop app-*,\
/etc/init.d/app1, /etc/init.d/app2
Cmnd_Alias LOGS=/usr/bin/less /var/log/*, /bin/tail -f /var/log/*, /bin/tail /var/log/*,\
/bin/ls /var/log/*
%developers ALL= NOPASSWD: SETENV: APPS, LOGS
%testers ALL= NOPASSWD: SETENV: LOGS
Файл работает как и ожидалось, проверен visudo
и блокирует нежелательные команды. Но каждый раз, когда я выполняю команду с sudo, я получаю это сообщение перед фактическим выводом команды:
john@appserver1:~$ sudo ls /var/log/mysql
/etc/sudoers.d/50-apps:2:51: Alias "" already defined
/etc/init.d/app1, /etc/init.d/app2
^
/etc/sudoers.d/50-apps:5:40: Alias "�h6�U" already defined
/bin/ls /var/log/*
Мусор во второй строке меняется каждый запуск. В чем может быть проблема?
P.S. Я знаю о обходе пути и добавил исправления, но давайте не будем усложнять пример.
решение1
Это может произойти, если файлы sudoers включены дважды, что может произойти, если /etc/sudoers содержит две строки с одинаковым значением, например:
@includedir /etc/sudoers.d
#includedir /etc/sudoers.d
Теперь все файлы в /etc/sudoers.d/ будут прочитаны дважды и вызовут предупреждение, указанное выше.