2016-05-13 10 views
2

これは私の質問です。シェフがsudoersファイル内の何かを、おそらくはシェフのユーザーが誤ってcookbookを使って壊してしまった場合、サーバーは完全にアクセスできなくなるのではないかと心配しています。シェフを使ってsudoersファイルを管理すべきですか?

私はsudoersファイルを混乱させ、もはやボックスに入ることができないので、私たちが顧客用のプロダクションサーバを完全に失うのは嫌です。

+2

ちょうどcronjobで定期的にrootとして実行するようにChefを設定するだけです(chef_client料理ブックでそれを実行できます)。したがって、あなたが料理本でそれを壊した場合、それを料理本に修正し、次回の実行時にChefがファイルを修正します。 – Tensibai

+0

checkout ['sudo'](https://github.com/chef-cookbooks/sudo)のクックブックを使うと、sudoersファイルを管理する方がはるかに簡単です。いつものように、あなたは '' chefspec'(https://github.com/sethvargo/chefspec)を使って 'sudo'の料理本を使ったあなたの料理本をテストすることもできます – MrRoth

答えて

7

シェフには、この検証者を支援する機能があります。あなたは、このようなあなたのsudoerテンプレートにverifiesを設定することができます。

template '/etc/sudoers' do 
    source 'whatever.erb 
    verify 'visudo -c -f %{path}' 
end 

visudoを構文を拒否した場合、一時ファイルの場所に置かれることはありません飽きないだろうと収束が失敗します。確かに、構文上有効ではあるが役に立たないsudoersがあれば、これは役に立ちません。 /etc/sudoers.d構造を使用することを検討することができます。これは、各ビットを少なくともいくらか分離しておき、誤って迷惑にならないようにするためです。

+0

最近シェフと壊れたsudoersファイルをプッシュしました。恐怖。確認のステップを見てみるといいですね。 – jorfus

+0

この回答に感謝します!残念ながら、これは私のために失敗します([私の質問はこちら](https://stackoverflow.com/questions/47690081/add-visudo-file-in-chef)を参照してください)。検証がどのように機能するようにしましたか? – derHugo

+0

(そして、ソースの後ろに '''をつけることができません)) – derHugo

関連する問題