Bir kullanıcının Linux'taki varsayılan grubunu nasıl değiştirebilirim?


41

Linux yönetiminde yeniyim, şu komutlar konusunda biraz kafam karıştı:

useradd
usermod
groupadd
groupmod

Linux / Unix Yöneticisinin el kitabındaki kullanıcı yönetimi kitabını okumayı yeni bitirdim, ancak bazı şeyler hala biraz bulanık.

Temelde useraddyeterince yalındır görünüyor:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

hilbertVarsayılan dizini, kabuğunu ve gruplarını ayarlayarak "David Hilbert" kullanıcı adını ekleyebilirim . Ve bence bu -gonun birincil / varsayılan grubu ve -Gdiğer grupları.

Yani bunlar benim sonraki sorularım:

  1. Gruplar var facultyve olmasaydı bu komut hala işe yarar famousmıydı? Sadece onları yaratır mıydı?
  2. Değilse, yeni gruplar oluşturmak için hangi komutu kullanırım?
  3. Kullanıcıyı kaldırırsam hilbertve bu gruplarda başka kullanıcı yoksa, yine de var olur mu? Onları çıkarmalı mıyım?
  4. useraddYukarıdaki komutu çalıştırdıktan sonra David'i famousgruptan nasıl çıkarabilirim ve hilberthenüz mevcut olmayan ana grubunu yeniden atayım ?

Yanıtlar:


27

usermodKomut, bir kullanıcının birincil grubu, ek grup veya diğer birkaç özellik değiştirmeye izin verecektir. -gAnahtar birincil grubu kontrol eder.

Diğer sorularınız için ...

  1. Bir grup belirtirseniz groupname, bu useraddaşamada bulunmayan , bir hata alırsınız - useradd: unknown group groupname

  2. groupaddKomut yeni grupları oluşturur.

  3. İçinde bulunan tüm kullanıcıları kaldırırsanız grup kalacaktır. Boş grubu çıkarmak zorunda değilsiniz.

  4. hilbertYoluyla grubu oluşturun groupadd hilbert. Ardından David'in birincil grubunu kullanarak hareket ettirin usermod -g hilbert hilbert. (Birincinin hilbertgrup adı, ikincisinin hilbertkullanıcı adı olduğunu lütfen unutmayın . Bu, kullanıcıyı farklı bir ada sahip bir gruba taşıdığınız durumlarda önemlidir)

Buradaki işleri biraz zorlaştırıyor olabilirsiniz. Çoğu Linux dağıtımında, basit bir useradd hilbertkullanıcı hilbertve birincil olarak aynı isimde bir grup oluşturulur. -GDüğmeyi kullanarak birlikte belirtilen ek grupları ekleyeceğim .


1
Teşekkürler. yaparsam usermod -g hilbert hilbertbu hilbert'in diğer gruplarını kaldıracak mı? Öyleyse, bu diğer grupları nasıl korurum? Olmazsa, vay onu diğer gruplarından nasıl kaldırabilirim?
cwd

Test edin ve kendi ortamınıza bakın.
yine beyaz

@ MIck'ın cevabı benim puanımı alıyor çünkü -G'yi -a ile kullanmanız gerektiğine işaret ediyor (aksi halde bırakacağınız herhangi bir grup kaldırılacak )
Jeff

9

man usermodÇeşitli seçeneklerde neler olduğunu açıklayanı okumanız gerekir :

usermod -g hilder hilder

“hilder” grubu var olduğu sürece oturum açma grubunuzu “fakülte” den “hilder” a değiştirecektir. Eğer yoksa, o zaman önce groupadd ile oluşturmanız gerekir.

Eğer kullandığınız zaman -Gseçeneğini de kullanmalısınız -akullanıcının 'Hilder' ait olduğunu ilave gruplar mevcut listeye yeni gruplar ekleme özelliğine. Bu -aseçenek olmadan mevcut ek grupları yeni bir grup setiyle değiştireceksiniz. Bu nedenle bunu dikkatli kullanın.


5

Bir kullanıcının Linux'taki birincil grubunu değiştirmek için:

  • usermod -g new_group user_name
  • tüm kullanıcı_adı aktif oturumlarını sonlandır

Yaptığınız değişiklikleri test etmek idiçin değerine bakın.gid=

Komut hatasız çalışıyorsa ancak gid değişmediyse, adım 2'nin kalın kısmını kaçırdınız.


1

answer # 1 iyidir, yine de yeni bir grup eklemek için aşağıdakileri de yayınlamayı seçebilirsiniz:

# nano /etc/group

/etc/groupDoğrudan düzenlemenin dezavantajı, kullanılmamış bir GID (grup kimliği numarası) ile gelmeniz gerekmesidir.

Aşağıdakiler, kullanıcının birincil grubunu değiştirmenize izin verecektir. # nano /etc/passwd

Kullanıcının satırını bulup GID'yi değiştirirsiniz (grup numarası, içine bak /etc/group), sözdiziminin aşağıdaki gibi olduğunu unutmayın:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

Bu yaklaşıma aklınıza gelebilecek hiçbir dezavantajı (Eğer GID'yi biliyorum şartıyla) vardır, ben sık sık ben farklı olan birçok farklı UNIX sistemleri kullanan başlıca nedeni, yerel kullanıcılar için kullandığınız bir usermod, adduserve useraddkomut seçenekleri.

Biraz daha manuel, ancak işi de var. Biliyorsanız, dosyaları düzenlemek için viiso kullanabileceğinizi unutmayın .nanovi


0

Kullanıcının birincil grubunu kalıcı olarak değiştirmek için aşağıdakileri yürütün:

  • usermod -g groupname kullanıcı adı komutu

Ya da newgrpküçük çevre ve geçici durum için kullanabilirsiniz .

Yeni bir kullanıcı bob ve yeni bir grup oluşturun dodo.

useradd bob

Yani RedHat / Centos'ta UID = (ID_number) bob; GID = (ID_number) varsayılan olarak birincil grup olarak bob

groupadd dodo

Kullanıcı dodogrubunu gruba ekle :

usermod -aG dodo bob -make sure to use "a"

newgrpMülkiyeti değiştirmek için sonraki kullanım :

newgrp dodo

Parolanıza sahip olmak ve gelecekteki birincil grubun üyesi olmak için hesabınıza dikkat edin. Ve newgrp yeni bir kabuk açar; Kullanıcı bu kabukta kaldığı sürece, birincil grup değişmez. Birincil grubu tekrar orijinale geçirmek için, exit komutunu çalıştırarak yeni kabuğu kaldırabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.