Perl
如何使用 REX 配置管理分發 sudoers 文件
嘗試將 sudoers 文件推送到其他機器時,rexcm 任務/命令會卡住。
問題是(在我看來),sudoers 文件在寫入時歸 rex 使用者所有,並且設置了“其他”權限,導致“sudo”失敗的原因(導致在雷克斯文件):
mySrv:/etc# ls -l sudoers.d/ -rw-rw-r-- 1 rexuser rexuser 72 Jul 25 07:49 sudoersFile
我試圖從原始碼和模板分發文件。
file "/etc/sudoers.d/sudoersFile", #source => "files/sudoers.d/sudoersFile", owner=>"root", group=>"root", mode => "600", content => template("templates/sudoers.d/sudoersFile.tpl"), on_change => sub{ say "file sudoersFile transfered"; }; };
**問題:**使用 rex 配置管理分發 sudoers 文件的正確方法是什麼(或:是否有)?
更新/解決方法:(
感謝來自#rex@freenode 的“xq”)
- 將文件複製到遠端系統上的臨時位置(與上面的程式碼相同,但路徑不同)
- 將文件移動/複製到“/etc”(“mv”的 rex 命令是“rename”,放在同一任務定義的末尾)
rename("$tmpDir/sudoers.d/sudoersFile", "/etc/sudoers.d/sudoersFile");
…缺點:您必須手動提供“on_change”事件
只是用問題中提到的解決方法來回答問題,因為一年中沒有新的啟示:
(感謝來自#rex@freenode 的“xq”)
- 將文件複製到遠端系統上的臨時位置(與上面的程式碼相同,但路徑不同)
- 將文件移動/複製到“/etc”(“mv”的 rex/perl 命令是“rename”,放在同一任務定義的末尾)
rename("$tmpDir/sudoers.d/sudoersFile", "/etc/sudoers.d/sudoersFile");
…缺點:您必須手動提供“on_change”事件