Perintah mana yang harus saya gunakan untuk menghapus pengguna dari grup di Debian?
Saat menambahkan pengguna ke grup, itu dapat dilakukan dengan:
usermod -a -G group user
Namun, saya tidak dapat menemukan perintah serupa (menerima grup dan pengguna sebagai argumen) untuk menghapus pengguna dari grup. Yang paling dekat yang bisa saya dapatkan adalah:
usermod -G all,existing,groups,except,for,group user
Apakah ada perintah seperti usermod OPTION group user
dengan OPSI pilihan untuk membuat usermod
(atau program serupa) menghapus pengguna dari grup?
Jawaban:
Anda bisa menggunakan
gpasswd
:maka konfigurasi grup baru akan diberikan pada login berikutnya, setidaknya pada Debian. Jika pengguna masuk, efek dari perintah tidak segera terlihat.
sumber
gpasswd -a user group
untuk menambahkan pengguna ke grup tampaknya juga lebih baik, terutama jika kesalahan ketik telah dibuat dan-a
opsi akan dihapus.usermod -g user user
lalu cobalah untuk menghapusnya.Pada Debian,
adduser
paket berisideluser
program yang menghapus pengguna dari grup jika Anda melewatkan keduanya sebagai argumen:Jika distribusi Anda tidak memiliki
adduser
, Anda dapat mengedit/etc/group
dan/etc/gshadow
secara manual.sumber
vigr
danvipw
. Sangat berguna seandainya manpage terlalu jauh :)/etc/group
jalankangrpconv
untuk memperbarui/etc/gshadow
daripada mengeditnya.sudo deluser jenkins admin
/ usr / sbin / deluser: Anda tidak boleh menghapus pengguna dari grup utama mereka.usermod
atauvipw
untuk mengubah grup utama pengguna. Pertanyaan ini tentang kelompok pelengkap.adduser $user $group
perintah yang lebih sederhana, bukanusermod -x -y -z -...
.menghapus semua grup sekunder / tambahan dari nama pengguna , menjadikannya sebagai anggota hanya grup utama mereka. ini bekerja di Solaris 5.9
sumber
Ini adalah pendekatan "sekolah lama" ...
Kebanyakan sistem * nix mengelola informasi grup menjadi file teks biasa
/etc/group
, di manasetiap baris berisi bidang
dibatasi oleh
:
karakter.Sekarang anggaplah Anda ingin menghapus pengguna bernama
thisuser
dari grup bernamathatgroup
. Mulailah dengan mencadangkan/etc/group
, lalu gunakan editor preferensi Anda dengan hak istimewa untuk mengedit file/etc/group
dan menghapusthisuser
referensi darithatgroup
entri baris, misalnya,baris asli adalah sesuatu seperti ini:
thatgroup:x:1274:someuser,thisuser,anotheruser
setelah pengeditan harus dibiarkan seperti ini:
thatgroup:x:1274:someuser,anotheruser
Seperti dengan semua jawaban lain, ini tidak akan memengaruhi sesi pengguna saat ini, jika ada (yaitu, jika pengguna saat ini masuk). Perubahan akan mulai berlaku saat pengguna masuk berikutnya.
sumber
vigr
sudah disebutkan untuk mengedit/etc/group
secara manual. Halaman manual saya mengatakan bahwa nama pengguna dipisahkan oleh koma, bukan oleh titik dua. Boot ulang tidak perlu, Anda hanya perlu login ulang (atau menggunakannewgrp
).Anda dapat menggunakan perintah di bawah ini pada distribusi SUSE (dan, tampaknya, tidak ada yang lain ).
di mana
group
grup yang ingin Anda hapus pengguna danuser_name
pengguna yang ingin Anda hapus dari grup. Sebagai contoh,sumber
-R
opsi, tetapi itu berarti sesuatu yang lain. Itu bukan Linux kurasa.-R
: "-R, --root CHROOT_DIR Terapkan perubahan pada direktori CHROOT_DIR dan gunakan file konfigurasi dari direktori CHROOT_DIR."sudo usermod -R admin jenkins
usermod: chroot path chroot 'admin'Mempertimbangkan:
abc2
nama grup:
newgroup11
Tugas: Menghapus pengguna
abc2
dari grupnewgroup11
** Mohon perbaiki saya jika saya salah. **
sumber
usermod -G newgroup11 abc2
akan menempatkan Anda dalam grup sekundernewgroup11
. Karena grup utama adalahabc2
, Anda akan berakhir di kedua grup.usermod -g abc2 abc2
mengakibatkannewgroup11
dikeluarkan dari kelompok sekunder karena tidak disebutkan lagi. Jadi untuk tiga atau lebih kelompok yang berbeda, metode ini tidak akan berfungsi. Lihat jawaban lain yang melibatkangpasswd
perintah yang lebih baik.Anda dapat menghapus pengguna dari grup dengan menjalankan perintah usermod tanpa opsi -a. Contoh, dengan mengeksekusi "usermod -G group1 username" akan menambahkan pengguna ke group1, dan akan menghapusnya dari grup lain mana pun. Ingat, Anda dapat menjaga pengguna dalam berbagai grup dengan mendaftarkan nama grup, dipisahkan dengan koma.
sumber
Untuk terus menggunakan usermod di distro (seperti Fedora) yang tidak memiliki opsi hapus, di mana user = bob dan group = deletethisgroup, perintahnya adalah:
Pipa-pipa (1) mendapatkan semua entri grup milik pengguna, (2) mengambil yang perlu dihapus, (3) mengembalikan kolom pertama (nama grup), menggantikan baris baru dengan koma, dan menghilangkan trailing koma.
Tentu saja, Anda bisa meletakkan semua itu dalam skrip bash yang membuat pengguna dan grup dihapus sebagai parameter. awk dapat digunakan untuk mempersingkat akhir tetapi saya ingin tetap berpegang pada grep, cut, tr dan sed.
sumber
gpasswd -d bob deletethisgroup
tersedia juga. Adakah alasan mengapa Anda tidak menggunakannya?gpasswd
karena terkait erat dengan/etc/passwd
, tetapi sebaliknya mengelola grup. Berbeda denganpasswd
perintah biasa yang hanya mengendalikan kata sandi,gpasswd
juga dapat digunakan untuk mengelola keanggotaan grup. Kata sandi grup tidak diperlukan jika Anda root atau administrator grup.gpasswd $group
Anda dapat mengatur kata sandi grup yang menyebabkan masalah keamanan yang Anda sebutkan. Namun Anda juga tidak dapat memiliki kata sandi dan menggunakangpasswd -d $user $group
untuk menghapus pengguna seperti yang dijelaskan dalam komentar pertama dan jawaban yang diterima. Perhatikan bahwa perintah ini tidak meminta kata sandi grup atau memodifikasi atau mengharuskannya.Misalkan username = student dan groupname = riset , maka untuk menghapus
student
pengguna dariresearch
grup itu perlu dilakukan hal berikut:sumber
Solusi jika Anda menggunakan CSH, untuk alasan apa pun.
sumber
Untuk menghapus pengguna dari grup gpasswd adalah utilitas terbaik untuk IMO ini.
Contoh Perintah:
* Info Bantuan *
sumber