Bir kullanıcıyı gruptan nasıl kaldırabilirim?


343

Debian’daki bir kullanıcıyı gruptan çıkarmak için hangi komutu kullanmalıyım?

Bir gruba kullanıcı eklerken, şu şekilde yapılabilir:

usermod -a -G group user

Ancak, kullanıcıyı gruptan çıkarmak için benzer bir komut (bir grubu ve kullanıcıyı argüman olarak kabul etmek) bulamadım. Alabileceğim en yakın şey:

usermod -G all,existing,groups,except,for,group user

usermod OPTION group userOPTION ile usermodkullanıcıyı gruptan kaldırmak için (veya benzer bir program) bir seçenek var mı gibi bir komut var mı ?


1
Buraya gelen Fedora kullanıcıları için, adam usermod, -G seçeneğinde, mevcut tüm grupların saklanmak istediğini listeleyen bir grubu silmenin bir yolu olduğunu ortaya koyuyor. Fedora ile -R seçeneği yok; Lekensteyn'in kaçınmaya çalıştığı yaklaşımı kullanmalısınız.
Stephen

Yanıtlar:


404

Kullanabilirsiniz gpasswd:

# gpasswd -d user group

daha sonra yeni grup yapılandırması bir sonraki oturum açmada, en azından Debian'da atanacaktır. Kullanıcı oturum açtıysa, komutun etkileri hemen görülmez.


9
Mükemmel teşekkürler! gpasswd -a user groupkullanıcıyı gruba eklemek için, özellikle bir yazım hatası yapmış ve -aseçenek bırakılmışsa , daha hoş görünüyor .
Lekensteyn

1
Benim için çalışmıyor. İki mesaj alıyorum: a) Kullanıcıyı gruptan kaldırmak. b) gpasswd: kullanıcı bir grubun üyesi değil. Daha sonra çalışan "üyeler grubu" hiçbir değişiklik göstermez.
geoidesic

1
@geoidesic etkisini görmek için oturumu kapatıp tekrar giriş yapmanız gerekiyor
Wasif Hossain

1
Değişikliğin tekrar giriş yapmak zorunda kalmadan etkili olmasını sağlamanın bir yolu var mı?
Andy Fusniak

2
@geoidesic Bu hataları Centos 7'de aldım. Eğer kullanıcıyı varsayılan gruplarından çıkarmaya çalışıyorsanız, bunu anladım. Varsayılan grubu değiştirmeyi usermod -g user userdeneyin , sonra bunları kaldırmayı deneyin.
PanPipes

175

Debian'da, her ikisini de argüman olarak iletirseniz, adduserpakette deluserbir kullanıcıyı bir gruptan kaldıran bir program bulunur:

deluser user group

Dağıtım yoksa adduser, düzenleyebilir /etc/groupve /etc/gshadowmanuel.

vigr
vigr -s

10
Ben gibi programların bilmiyordu vigrve vipw.
Manpages'in

3
Alternatif olarak, değiştirdikten sonra düzenlemek yerine güncellemek için /etc/groupçalıştırın . grpconv/etc/gshadow
Cyrille

sudo deluser jenkins admin/ usr / sbin / deluser: Kullanıcıyı birincil gruplarından çıkaramazsınız.
Jonathan

@JonathanLeaders Her kullanıcının en az bir grupta olması gerekir. Kullanıcının birincil grubunu değiştirmek için usermodveya vipwdüğmesini kullanın . Bu soru ek gruplar hakkındaydı.
Gilles

Güzel. adduser $user $groupBunun yerine daha basit bir komut da var usermod -x -y -z -....
35'te

65
usermod -G "" username

tüm ikincil / tamamlayıcı grupları kullanıcı adından kaldırır ve bunları yalnızca birincil gruplarının bir üyesi olarak bırakır. bu Solaris 5.9'da çalıştı.


5
CentOS 6.4'te test edilmiştir; Eserleri.
aggregate1166877

1
Ubuntu 12.04'te de çalışır.
aggregate1166877

Ve bu, ikincil grupları, listelenmemiş tüm gruplar hariç, herhangi bir grup listesine zorlamak için en iyi yol gibi görünüyor .
adaçayı

CentOS 7'de test edildi ve çalışıyor. Teşekkürler!
Zor

14

Bu “eski okul” yaklaşımıdır ...

Çoğu * nix sistemi grup bilgisini düz bir metin dosyasında tutar /etc/group;

  • Her satır alanları içerir

    • grup ismi
    • parola
    • GID ve
    • Kullanıcı listesi

    :karakteriyle sınırlandırılmış .

  • user_list alanı, virgülle ayrılmış kullanıcı adlarının bir listesidir.

Şimdi, adlı thisuser bir gruptan adlandırılmış bir kullanıcıyı silmek istediğinizi varsayalım thatgroup. Yedekleme ile başlayın /etc/group, ardından dosyayı düzenlemek ve referansı satır girişinden kaldırmak için tercihinizin editörünü su ayrıcalıklarıyla kullanın , örn./etc/groupthisuserthatgroup

orijinal çizgi şöyle bir şey:

thatgroup:x:1274:someuser,thisuser,anotheruser

düzenlemeden sonra şöyle bırakılmalıdır:

thatgroup:x:1274:someuser,anotheruser

Diğer tüm cevaplarda olduğu gibi, bu durum kullanıcının mevcut oturumlarını, eğer varsa (yani, eğer kullanıcı oturum açmışsa) etkilemeyecektir. Değişiklik, kullanıcı bir sonraki oturum açışında etkili olacaktır.


1
vigr/etc/groupelle düzenleme için zaten bahsedilmişti . Manuel sayfalarım kullanıcı adlarının virgüllerle değil virgüllerle ayrıldığını söylüyor. Yeniden başlatma gerekli değildir, yalnızca yeniden giriş yapmanız (veya kullanmanız newgrp) gerekir.
Lekensteyn

Herhangi bir Debian kullanıcısı olmayanlara bu kıyılara vuran ipuçlarını arayanlara yardımcı olmak için ... OP'nin sorusunun kapsamına göre Debian için bu yeterli olabilir, ancak bunu bir * BSD işletim sistemi için kullanıyorsanız, düz metin dosyasını değiştirmeniz gerekecektir. burada belirtildiği gibi, daha sonra bu listeyi kullanıma sokmak için bir pwd_mkdb -p /etc/master.passwd dosyasını yayınlayın.
danno

3

SUSE dağıtımlarında aşağıdaki komutu kullanabilirsiniz (ve görünüşe göre başkaları yoktur ).

usermod -R grubu  kullanıcı_adı

groupkullanıcıyı kaldırmak istediğiniz grup ve gruptan kaldırmak istediğiniz kullanıcı nerede user_name? Örneğin,

usermod -R root imnottheroot

1
Hangi paket senin usermod ikili sağlar? Shadow-utils-4.1.4.3'teki mayın -R seçeneğini sağlamadığı için sürümü öğrenmek istiyorum.
myroslav

3
Gölgem 4.1.5.1-5 paketinin (Arch Linux) bir -Rseçeneği var ama bunun başka bir anlamı var. Sanırım Linux değil.
Lekensteyn

3
Bunun işe yarayacağından emin değilim. -RManpage şöyle diyor : "-R, --root CHROOT_DIR CHROOT_DIR dizinindeki değişiklikleri uygulayın ve CHROOT_DIR dizinindeki yapılandırma dosyalarını kullanın."
MikeKusold

2
Bulabileceğim tek şey bulabildiğim şeyler bu kahin manikürüydü, ama bu hala aynı şey değil, bu yüzden bu cevap belki de kaldırılmalıdır.
kyrias

sudo usermod -R admin jenkinsusermod: geçersiz chroot yolu 'admin'
Jonathan

1

Düşünmek:

  • Kullanıcı adı: abc2
  • grup ismi: newgroup11

  • Görev: Kullanıcıyı abc2gruptan kaldırmanewgroup11

[root@home1 ~]# groups abc2
abc2 : abc2
[root@home1 ~]# usermod -G newgroup11 abc2
[root@home1 ~]# groups abc2
abc2 : abc2 newgroup11
[root@home1 ~]# usermod -G newgroup11 abc2
[root@home1 ~]# usermod -G abc2 abc2
[root@home1 ~]# groups abc2
abc2 : abc2

** Yanlış yaparsam lütfen beni düzeltin. **


1
Bu "işe yarar", ancak yalnızca tek bir ikincil grubunuz olduğu için. usermod -G newgroup11 abc2sizi ikincil gruba koyacağım newgroup11. Birincil grup olduğundan abc2, her iki grupta da sona erersiniz. ikincil gruplardan çıkarılmasıyla usermod -g abc2 abc2sonuçlandı çünkü artık bahsedilmiyor. Yani üç veya daha fazla farklı grup için bu yöntem işe yaramaz. Daha iyi bir komut için diğer cevaplara bakınız . newgroup11gpasswd
Lekensteyn

1

-A seçeneği olmadan usermod komutunu çalıştırarak kullanıcıyı gruptan kaldırabilirsiniz. Örnek, "usermod -G group1 username" komutunu çalıştırarak kullanıcıyı gruba1 ekler ve bulunduğu diğer gruplardan kaldırır. Unutmayın, virgülle ayrılmış olarak grup adlarını listeleyerek kullanıcıyı çeşitli gruplarda tutabileceğinizi unutmayın.


1
Bu bilgi zaten birçok kez sunulmuştur.
Scott

0

Usermod öğesini, kaldır seçeneği bulunmayan bir dağıtımda (Fedora gibi) kullanmaya devam etmek için, user = bob ve group = deletethisgroup.

usermod -G `cat /etc/group |  grep bob | grep -v deletethisgroup | cut -d ':' -f 1 | tr '\n' ',' | sed 's/,$//'` bob

Borular (1) kullanıcının ait olduğu tüm grup girişlerini alır, (2) kaldırılması gereken girişi çıkar, (3) ilk sütunu (grup adı) döndürür, newline'ı virgül ile değiştirir ve izleyen virgülleri kaldırır.

Elbette, bunları kullanıcı ve grubun parametre olarak silinmesini gerektiren bir bash betiğine koyabilirsiniz. awk, ucu kısaltmak için kullanılabilir, ancak grep, cut, tr ve sed 'e yapıştırmak istedim.


Buna göre adam sayfasında , gpasswd -d bob deletethisgroupde mevcuttur. Kullanmamanın bir nedeni var mı?
Lekensteyn 27.03.2016

Herkes grup şifresi kurmak istemez. Sadece belirli bir dağıtımda soru tarafından referans verilen komutu kullanarak bir çözüm öneriyorum. Fedora / RHEL / Centos’ta gpasswd -d ile, şifreye erişimi varsa, kaldırılan kullanıcı hala gruba katılabilir. Aslında, buna izin vermemek yerine grup erişimini arttırır.
Stephen

Yardımcı programın adlandırıldığını, gpasswdçünkü bunun yakından ilişkili olduğunu /etc/passwd, ancak bunun yerine grupları yönettiğini anladım . passwdYalnızca parolaları denetleyen düz komutun aksine, gpasswdbir grubun üyeliğini yönetmek için de kullanılabilir. Kök veya grup yöneticisi iseniz grup şifresi gerekmez.
Lekensteyn

Gpasswd kılavuzunu okudun mu? Fedora / RHEL / CentOS için, el kitabını okursanız, "/ etc / group ve / etc / gshadow komutlarını kullanmak için" komutunun kullanıldığı belirtilir. Aslında / etc / passwd üzerinde etkisi yoktur. El kitabı ayrıca, "Grup şifreleri, doğasında bulunan bir güvenlik sorunudur, çünkü birden fazla kişinin şifreyi bilmesine izin verilir." Aslında bir grubun üyeliğini yönetmez, grubu şifreyle HERHANGİ bir kullanıcıya açar. Zaten grubun ÜYE iseniz bir grup şifresi gerekmez.
Stephen

Yakından ilişkili benzer adlandırma ve amaçlar anlamında, / etc / passwd dosyasının aslında gpasswd tarafından yönetildiğini ima etmedim. İlk yorumumdaki "man sayfası" nın Fedora 13 için gpasswd manual sayfasına işaret ettiğini unutmayın. Kullanarak gpasswd $groupbahsettiğiniz güvenlik sorununa neden olan grup şifresini ayarlayabilirsiniz. Bununla birlikte , bir parolanız olamaz ve gpasswd -d $user $groupbir kullanıcıyı ilk yorumda ve kabul edilen yanıtta açıklanan şekilde silmek için kullanamazsınız . Bu komutun bir grup parolası istemediğini, ne dediğini ya da gerektirmediğini unutmayın.
Lekensteyn

0

Diyelim ki kullanıcı adı = öğrenci ve grup adı = araştırma , bu nedenle studentkullanıcıyı researchgruptan çıkarmak için aşağıdakileri yapmanız gerekir:

gpasswd -d student research

Neden 6 yıl önce burada olan bir şeyi tekrar ediyorum? Kabul edilmiş cevap olarak işaretlendi!
Betlista

-1
pw groupmod "groupname|gid" -d "username|uid"

Her ne sebeple olursa olsun CSH kullanıyorsanız bir çözüm.


-1

Bir kullanıcıyı gruptan kaldırmak için gpasswd, bu IMO için en iyi yardımcı programdır.

Komut Örneği:

sudo gpasswd -d group user

* Yardım Bilgisi *

Usage: gpasswd [option] GROUP

Options:
  -a, --add USER                add USER to GROUP
  -d, --delete USER             remove USER from GROUP
  -h, --help                    display this help message and exit
  -Q, --root CHROOT_DIR         directory to chroot into
  -r, --delete-password         remove the GROUP's password
  -R, --restrict                restrict access to GROUP to its members
  -M, --members USER,...        set the list of members of GROUP
  -A, --administrators ADMIN,...
                                set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined.

1
Grup ve kullanıcı argümanları değiştirildi. Ayrıca, bu tam olarak ne kabul edilen cevap önerdi, bu yazı gerçekten yararlı değil mi?
Lekensteyn
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.