Varolan bir gruba varolan bir kullanıcı nasıl eklenir?

Apache kullanıcısını eklemek istiyorum (www-data) için audio grup. Adam sayfasını okudum. useradd ama herhangi bir şans sahip değilim. Xubuntu 11.10 çalıştırıyorum. İşte yaptığım şey:

$ sudo useradd -G audio www-datauseradd: user 'www-data' already exists

Eğer dışarıda bırakırsam -G seçenek, bash, aşağıdakiler için yardım bilgilerini yazdırır useradd:

$ sudo useradd  audio www-dataUsage: useradd [options] LOGINOptions: -b, --base-dir BASE_DIR       base directory for the home directory...

Bu işi yapmak için hangi seçenekleri kullanmam gerektiği man sayfasından bana açık değil.

Bu useradd komut yeni bir kullanıcı eklemeye çalışacaktır. Kullanıcınız zaten var olduğundan, istediğiniz şey bu değildir.

Bunun yerine: Varolan bir kullanıcıyı değiştirmek için, söz konusu kullanıcıyı yeni bir gruba eklemek gibi usermod komut.

Bunu dene:

sudo usermod -a -G groupName userName
  • Bu -a (ekleme) anahtarı çok önemlidir. Aksi takdirde, kullanıcı listede olmayan tüm gruplardan kaldırılır.

  • Bu -G switch, kullanıcıyı atamak için ek grupların (virgülle ayrılmış) bir listesini alır.

Genel olarak (GUI için veya zaten çalışan işlemler için vb.), kullanan oturumu kapatıp tekrar oturum açmanız gerekecek yeni gruplarının eklendiğini görmek için. Geçerli kabuk oturumu için şunları kullanabilirsiniz newgrp:

newgrp groupName
  • newgrp grubu geçerli kabuk oturumuna ekler.

Bir gruba kullanıcı ekleme:

sudo adduser user group

Bir kullanıcıyı gruptan kaldırma:

sudo deluser user group

Varolan bir kullanıcıya ekledikten sonra:

usermod -a -G group user  

Yapmanız gerekebilir çıkış ve giriş grup izinlerini almak için /etc/group.

Normalde kullanırım

sudo gpasswd -a myuser mygroup

Bunu bir cevap olarak gönderiyorum çünkü yorum yapmak için yeterli itibarım yok. @dpendolino'nun belirttiği gibi, bu komutun etkilerinin devam etmesi için:

sudo usermod -a -G groupName userName

...tekrar/giriş çıkış gerekiyor.

Ancak, yeni grup üyeliğinizi kullanmaya başlamak için bir kısayola ihtiyacınız varsa hemen (ve doğru var sudo ayrıcalıklar) Bu geçici çözümü buldum:

$ sudo su -# su [userName]$ groups

Açıklama:

  • sudo su - size bir kök kabuğu verecek
  • su [userName] sizi kullanıcınızla birlikte bir kabuğa döndürür
  • groups şimdi çalıştırdığınızda, eklediğiniz grubu gösterecektir. usermod -aG komut

Benim durumumda kullanıcıma 'docker' grubunu eklemeye çalışıyordum

Önce:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

Sonra:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker
sudo usermod -a -G groupName userName

gayet iyi çalışacak, ama mecburdum. yeniden başlat tamamen, sadece çıkış yapın ve tekrar giriş yapın işi yapmadı...

Ubuntu beri farklı oturum açma root etkin değil, kullanıcıların sudo grup, belirli kısıtlı komutlar için ayrıcalıkları yükseltebilir. Herhangi bir kısıtlı komut ile önceden eklenmelidir sudo ayrıcalığı arttırmak için.

sudo usermod -a -G grup kullanıcı

mevcut kullanıcıyı ekleyecektir user adlı ek bir gruba group. Kullanıcının birincil grubu değişmeden kalır.

Permanantely bir grup için bir kullanıcı eklemek için bu komutu çalıştırın :

sudo usermod -a -G <groupname> <username>

Ardından oturumu kapatın ve tekrar oturum açın (veya gerekirse yeniden başlatın).

Açıklama:

Bu usermod komut değiştirecektir /etc/group dosya belirtilen kullanıcı adını o grupla ilgili satırda listelemek için kullanılır. Eğer kaçarsan grep <groupname> /etc/group çıktıda kullanıcı adınızı görmelisiniz.

Linux'ta her işlem bir kullanıcıya ve gruplara atanır ve tüm alt işlemler üst işlemin kullanıcı ve gruplarını devralır. Bu nedenle, bu değişikliğin etkili olması ve propogate olması için oturumu kapatıp tekrar oturum açmanız gerekir (bu noktada /etc/group okunur ve kullanılır). Wayland'da, tam bir yeniden başlatmanın gerekli olduğunu buldum.

Komutu çalıştırırsanız groups, geçerli işlemin beklenen gruplara sahip olup olmadığını görebilirsiniz.