Linux

通過 ansible 上傳 sudoers.d 文件會出現語法錯誤,但在 vi 中打開和保存可以修復它

  • October 29, 2019

好吧,我知道問題標題很糟糕,但情況本身也是如此。

我想做的是:

  1. 在本地創建一個帶有 sudoers 配置的文件
  2. 使用 Ansible 通過模板模組上傳該文件
  3. 使用模板模組的驗證功能確保配置有效

到現在為止還挺好。現在出現了奇怪的部分:該validate: 'visudo -cf %s'文件的驗證 ( ) 會引發錯誤。當我註釋掉驗證行時,文件被上傳,但手動驗證 ( visudo -cf /etc/sudoers.d/foo_bar) 也失敗了。使用 vi 打開文件,保存 ( :wq) 而不做任何更改,然後再次執行驗證成功。

我目前的工作論文:WTF?!

但是已經很晚了,我很累。如果有人有建議,請告訴我。一旦我有新資訊,我會更新這個問題,一旦我找到解決方案,我會清理它。

您的文件可能缺少文件結尾換行符。sudo期望,並且visudo將無法驗證缺少它的文件。在 Vi 中打開一個文件並保存它會在必要時在末尾添加一個換行符,從sudo的角度修復文件。

引用自:https://unix.stackexchange.com/questions/549379