2016-04-13 11 views
1

Bunun çok garip geldiğini biliyorum. Ancak, mevcut kitabı doğru bir şekilde kurduktan sonra mevcut kullanıcıyı silmem gerekiyor.Geçerli sudoer'ı sesli olarak nasıl silebilirim?

Bir sunucuyu güncelleyen ve kullanıcıları ve yöneticileri düzgün şekilde yapılandıran bir çalışma kitabım var. root olmak için verilen kullanıcıyı kullanıyorum ve ana sudoer'ım admin'u kurdum. o root veya admin açık olmaması gerekir

benim başucu kitabının sonunda ansible_ssh_user silmeniz gerekir?

şu çözüm döndürür

--- 
- hosts: all 
    become: yes 
    become_user: root 


    tasks: 
    - include_vars: secrets.yml 

    - name: add admin user 
     user: name={{ ADMIN_USERNAME }} password={{ ADMIN_PASSWORD | password_hash('sha512') }} shell=/bin/bash 

    - name: delete current sudoer if not admin or root 
     user: name={{ ansible_ssh_user }} state=absent remove=yes 
     when: ({{ ansible_ssh_user }}!={{ ADMIN_USERNAME }}) or ({{ ansible_ssh_user }}!={{ ADMIN_USERNAME }}) 

çalışmaz:

userdel: user admin is currently used by process 23537 
+0

Eğer elde (veya neyin yanlış gittiğini) ne hata sağlayabilir çalışacak? – user2599522

+0

Gerçekten Ansible özgü olduğunu sanmıyorum; Şu anda giriş yaptıkları sırada bir kullanıcıyı silme konusunda daha fazla sorun var, bu da Linux'ta mümkün olduğunu düşünmüyorum (ancak https://unix.stackexchange.com muhtemelen bilgi için en iyi kaynak olacaktır). Düşünebildiğim tek şey, "bu kullanıcıyı silen bir root cron işi kurmak, ve eğer kullanıcı yoksa, cron işini kaldırır" gibi çılgın şeylerdir. –

+0

@XiongChiamiov veya yönetici adı ile mevcut sudoer yeniden adlandırılabilir? –

cevap

0

sizin için iş yok bir asynchronous shell command çalışan deneyebilirsiniz. Teoride yılında

- name: delete user 
    command: sleep 10 && deluser foo 
    async: 0 
    poll: 0 
    ignore_errors: true 

bu

+0

aynı hata: userdel: kullanıcı pi şu anda 20646 komutunu kullanıyorum komutunu kullanıyorum: 'komut: bash -lc" uyku 10s && deluser {{ansible_ssh_user}} "' –

İlgili konular