Linux

Visudo 沒有給出錯誤但詢問“現在怎麼辦?”

  • September 18, 2014

我正在嘗試使用sudo visudo -f /etc/sudoers.d/abe. 我添加了內容:

# Allow automatic update of abe
matt    ALL=(root) NOPASSWD: python /home/matt/token-abe/setup.py install --force

但是當我嘗試寫作並退出時,我會得到“現在怎麼辦?” 沒有錯誤:

$ sudo visudo -f /etc/sudoers.d/abe
[sudo] password for matt: 
What now? e
What now? 

我正在使用 Debian 7。

您剛剛編輯的文件中有錯誤,這就是 visudo 抱怨的原因。來自http://www.courtesan.com/sudo/man/1.7.10/visudo.man.html

visudo 會在編輯後解析 sudoers 文件,如果出現語法錯誤,則不會保存更改。發現錯誤後,visudo 將列印一條消息,說明發生錯誤的行號,並且使用者將收到“現在怎麼辦?” 迅速的。此時使用者可以輸入’e’重新編輯sudoers文件,‘x’退出而不保存更改,或者’Q’退出並保存更改。‘Q’ 選項應該非常小心地使用,因為如果 visudo 認為存在解析錯誤,sudo 也會如此,並且在錯誤修復之前沒有人能夠再次 sudo。如果在檢測到解析錯誤後鍵入“e”來編輯 sudoers 文件,則游標將放在發生錯誤的行上(如果編輯器支持此功能)。

關於您的錯誤,“python”命令不是缺少完整路徑嗎?我是說:

matt    ALL=(root) NOPASSWD: /usr/bin/python /home/matt/token-abe/setup.py install --force

引用自:https://serverfault.com/questions/629547