Sudoers:別名已定義“」

Sudoers:別名已定義“」

我在中定義了以下文件/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/*

第二行的垃圾每次運行都會改變。可能是什麼問題?

PS 我了解路徑遍歷並對其添加了修復,但讓我們保持這個範例簡單。

答案1

如果 sudoers 檔案包含兩次,則可能會發生這種情況,如果 /etc/sudoers 包含兩行具有相同含義的行,則可能會發生這種情況,例如:

    @includedir /etc/sudoers.d
    #includedir /etc/sudoers.d

現在, /etc/sudoers.d/ 中的所有檔案將被讀取兩次,並將導致上述警告。

相關內容