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.

Sparky1
sumber

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.

dpendolino
sumber
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
Bai
sumber
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.

Amos Folarin
sumber
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
enzotib
sumber
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
bluemorpho
sumber
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.

Debra Butcher McCusker
sumber
1
sudo usermod -a -G groupName userName

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

alex
sumber