Bagaimana cara menambahkan pengguna yang ada ke grup yang ada?


669

Saya ingin menambahkan pengguna Apache ( www-data) ke audiogrup. Saya sudah membaca halaman manualnya useradd, tetapi saya tidak beruntung. Saya menjalankan xubuntu 11.10. Inilah yang saya lakukan:

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

Jika saya meninggalkan -Gopsi, bash, cetak info bantuan untuk useradd:

$ sudo useradd  audio www-data
Usage: useradd [options] LOGIN
Options: -b, --base-dir BASE_DIR       base directory for the home directory...

Tidak jelas bagi saya dari halaman manual opsi apa yang harus saya gunakan untuk membuat ini bekerja.

Jawaban:


1040

The useraddperintah akan mencoba untuk menambahkan user baru. Karena pengguna Anda sudah ada, ini bukan yang Anda inginkan.

Alih-alih: Untuk memodifikasi pengguna yang ada, seperti menambahkan pengguna itu ke grup baru, gunakan usermodperintah.

Coba ini:

sudo usermod -a -G groupName userName

Pengguna harus keluar dan masuk kembali untuk melihat grup baru mereka ditambahkan.

  • The -a(append) switch adalah penting. Jika tidak, pengguna akan dihapus dari grup apa pun, tidak dalam daftar.

  • The -Gberalih mengambil daftar (dipisahkan koma) dari kelompok tambahan untuk menetapkan pengguna untuk.


71
sudo usermod -a -G [group-name] [user-name]: Hanya quickie bagi mereka yang hanya melirik jawabannya setelah membaca tajuk utama
Programster

36
Saya pikir cara yang disukai sekarang adalah sudo adduser user group. Ini adalah sintaksis yang lebih sederhana dan bersih. Lihat respons dari @Bai.
ctbrown

3
@wilhil:: man usermod" -a, --append - Tambahkan pengguna ke grup tambahan. Gunakan hanya dengan opsi -G .; -G, --groups GROUP1 [, GROUP2, ... [, GROUPN] ]] [...] Jika pengguna saat ini adalah anggota grup yang tidak terdaftar, pengguna akan dihapus dari grup. Perilaku ini dapat diubah melalui opsi -a, yang menambahkan pengguna ke suplemen tambahan saat ini daftar grup. "
Adam Michalik

18
Apakah ada cara untuk menyiasati bagian "logout dan kembali"? Beberapa jenis perintah pembaruan grup, mungkin?
con-f-use

14
@ con-f-use, jika Anda dapat menjalankannya sudo login -f YOURUSERNAME, ia akan memulai sesi shell baru. Gunakan idperintah untuk memverifikasi bahwa sesi baru berada di kelompok yang benar. Namun, ini bukan "global" - ini tidak berlaku untuk terminal yang sudah terbuka. Jadi, sungguh, logout adalah pilihan terbaik, jika memungkinkan
Aaron McDaid

222

Menambahkan pengguna ke grup:

sudo adduser user group

Menghapus pengguna dari grup:

sudo deluser user group

3
tidak persis apa pertanyaan ini ditanyakan
Tejendra

11
Komentar @ Tejendra tampaknya mengandaikan bahwa menggunakan useradd diinginkan / wajib untuk menjawab pertanyaan OP; Mungkin jawaban ini hanya kata-kata yang hilang untuk menunjukkan bahwa adduser / deluser adalah alternatif yang lebih baik.
bijak

12
Bagi saya antarmuka yang lebih sederhana lebih baik, itu sebabnya saya suka yang ini.
Betlista

4
Ini adalah persis pertanyaan yang diajukan. @knocte, ya, saya pikir ini khusus untuk Debian
Auspex

3
@ Auspex Saya dapat mengkonfirmasi bahwa itu tidak berfungsi pada Red Hat.
Stibu

54

Setelah menambahkan ke pengguna yang ada:

usermod -a -G group user  

Anda mungkin harus keluar dan masuk untuk mendapatkan izin grup /etc/group.


21
Silakan menjadikannya bagian "perlu logout dan masuk" tebal.
Jin Kwon

FYI: Saya pikir idperintah itu harus menunjukkan Anda telah ditambahkan ke grup tanpa perlu keluar. id myuser
ficuscr

5
Keluar dan masuk kembali diperlukan untuk saya di Ubuntu 14.10.
A.Danischewski

26

Saya biasanya menggunakan

sudo gpasswd -a myuser mygroup

3
usermod tidak tersedia di sistem saya ubuntu 14.04. Ini bekerja dengan baik!
Drew

Ini bekerja sangat baik pada Debian Stretch, di mana usermodtidak diinstal.
Josh Habdas

8

Saya memposting ini sebagai jawaban karena saya tidak memiliki reputasi yang cukup untuk berkomentar. Seperti @ dpendolino sebutkan, agar efek dari perintah ini tetap ada:

sudo usermod -a -G groupName userName

... Anda harus keluar / masuk lagi.

Namun, jika Anda memerlukan jalan pintas untuk mulai menggunakan keanggotaan grup baru Anda segera (dan Anda memiliki hak sudo yang benar ) Saya telah menemukan solusi ini:

$ sudo su -
# su [userName]
$ groups

Penjelasan:

  • sudo su - akan memberi Anda shell root
  • su [userName] mengembalikan Anda ke shell dengan pengguna Anda
  • groupssaat dijalankan sekarang akan menunjukkan grup yang Anda tambahkan dengan usermod -aGperintah

Dalam kasus saya, saya mencoba menambahkan grup 'buruh pelabuhan' ke pengguna saya

Sebelum:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

Setelah:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker

5

Di Ubuntu, karena masuk sebagai roottidak diaktifkan , pengguna dalam sudogrup dapat meningkatkan hak istimewa untuk perintah terbatas tertentu. Setiap perintah yang dibatasi harus diawali dengan sudountuk meningkatkan hak istimewa.

sudo usermod -a -G group user

akan menambahkan pengguna yang ada userke grup tambahan bernama group. Grup utama pengguna akan tetap tidak berubah.


1
sudo usermod -a -G groupName userName

akan berfungsi dengan baik, tapi saya harus reboot sepenuhnya, cukup logout dan masuk lagi tidak melakukan pekerjaan ...

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.