2015-10-27 13 views
21

documentationにはlineinfileモジュールを使用して/etc/sudoersを編集する例があります。可能:sudoersのリストを維持するためのベストプラクティス

- lineinfile: "dest=/etc/sudoers state=present regexp='^%wheel' line='%wheel ALL=(ALL) NOPASSWD: ALL'" 

少しハックを感じます。

userモジュールにこれを処理するものがあると仮定しましたが、オプションがないようです。

/etc/sudoersにユーザーを追加したり削除したりするベストプラクティスは何ですか。

答えて

40

その行は実際にはsudoersにユーザーを追加するものではなく、wheelグループがすべてのコマンドに対してパスワードなしのsudoを持つことができるようにするだけです。

/etc/sudoersにユーザーを追加する場合は、ユーザーを必要なグループに追加してから、これらのグループにsudoへの適切なアクセス権を付与することをお勧めします。これはAnabilitiesも使用していないときにも当てはまります。

user moduleでは、グループの排他的なリストを指定したり、指定したグループをユーザーが既に持っている現在のグループに単に追加することができます。これは、ユーザーがグループに複数回存在するように定義することはできないため、自然に冪等である。

例の演劇は次のようになります:

- hosts: all 
    vars: 
    sudoers: 
     - user1 
     - user2 
     - user3 
    tasks: 
    - name: Make sure we have a 'wheel' group 
     group: 
     name: wheel 
     state: present 

    - name: Allow 'wheel' group to have passwordless sudo 
     lineinfile: 
     dest: /etc/sudoers 
     state: present 
     regexp: '^%wheel' 
     line: '%wheel ALL=(ALL) NOPASSWD: ALL' 
     validate: visudo -cf %s 

    - name: Add sudoers users to wheel group 
     user: 
     name: "{{ item }}" 
     groups: wheel 
     append: yes 
     with_items: "{{ sudoers }}" 
+14

'検証を:visudoを-cf%S'実行することによって、あなたは、混乱の何かアップしないことが保証されます' lineinfile'タスクの属性として最初に検証コマンドを実行します。 – xenithorb

関連する問題