Bagaimana cara menambahkan pengguna yang ada ke grup yang ada?

Saya ingin menambahkan pengguna Apache (www-data) ke audio kelompok. Saya telah membaca halaman manual untuk useradd, tapi aku tidak beruntung. Saya menjalankan xubuntu 11.10. Inilah yang saya lakukan:

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

Jika saya meninggalkan keluar -G option, bash, mencetak info bantuan untuk useradd:

$ sudo useradd  audio www-dataUsage: useradd [options] LOGINOptions: -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 berfungsi.

The useradd perintah akan mencoba menambahkan pengguna baru. Karena pengguna Anda sudah ada, ini bukan yang anda inginkan.

Sebagai gantinya: untuk memodifikasi pengguna yang ada, seperti menambahkan pengguna itu ke grup baru, gunakan usermod perintah.

Coba ini:

sudo usermod -a -G groupName userName
  • The -a (tambahkan) switch sangat penting. Jika tidak, pengguna akan dihapus dari grup mana pun, bukan dalam daftar.

  • The -G switch mengambil daftar grup tambahan (dipisahkan koma) untuk menetapkan pengguna.

Secara umum (untuk GUI, atau untuk proses yang sudah berjalan, dll.), pengguna harus keluar dan masuk kembali untuk melihat grup baru mereka ditambahkan. Untuk sesi shell saat ini, Anda dapat menggunakan newgrp:

newgrp groupName
  • newgrp menambahkan grup ke sesi shell saat ini.

Menambahkan pengguna ke grup:

sudo adduser user group

Menghapus pengguna dari grup:

sudo deluser user group

Setelah menambahkan ke pengguna yang ada:

usermod -a -G group user  

Anda mungkin perlu logout dan login untuk mendapatkan izin grup dari /etc/group.

Saya biasanya menggunakan

sudo gpasswd -a myuser mygroup

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

sudo usermod -a -G groupName userName

...Anda harus logout / login lagi.

Namun, jika Anda memerlukan jalan pintas untuk mulai menggunakan keanggotaan grup baru Anda segera (dan Anda memiliki yang benar sudo hak istimewa) saya telah menemukan ini bekerja-sekitar:

$ sudo su -# su [userName]$ groups

Penjelasan:

  • sudo su - akan memberi Anda cangkang akar
  • su [userName] mengembalikan Anda ke shell dengan pengguna Anda
  • groups ketika run sekarang akan menampilkan kelompok Anda Menambahkan dengan usermod -aG perintah

Dalam kasus saya, saya mencoba menambahkan grup 'docker' ke pengguna saya

Sebelum:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

Setelah:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker
sudo usermod -a -G groupName userName

akan bekerja dengan baik, tapi aku harus reboot sepenuhnya, hanya log out dan login lagi tidak melakukan pekerjaan...

Pada Ubuntu, sejak login sebagai root tidak diaktifkan, pengguna di sudo grup dapat meningkatkan hak istimewa untuk perintah terbatas tertentu. Setiap perintah terbatas harus diawali dengan sudo untuk meningkatkan privilege.

sudo usermod -a -G grup pengguna

akan menambahkan pengguna yang ada user untuk kelompok tambahan bernama group. Grup utama pengguna akan tetap tidak berubah.

Untuk menambahkan pengguna secara permanen ke grup, jalankan perintah ini:

sudo usermod -a -G <groupname> <username>

Kemudian keluar dan masuk lagi (atau reboot jika perlu).

Penjelasan:

The usermod perintah akan memodifikasi /etc/group berkas untuk mencantumkan nama pengguna yang ditentukan di baris yang relevan dengan grup itu. Jika Anda menjalankan grep <groupname> /etc/group, Anda akan melihat nama pengguna Anda di output.

Di Linux, setiap proses ditugaskan ke pengguna dan grup, dan setiap proses anak mewarisi pengguna dan grup dari proses induk. Jadi, agar perubahan ini berlaku dan mendorong, Anda harus keluar dan masuk lagi (pada titik mana /etc/group dibaca dan digunakan). Di Wayland, saya telah menemukan bahwa reboot penuh diperlukan.

Jika Anda menjalankan perintah groups, Anda dapat melihat apakah proses saat ini memiliki grup yang diharapkan atau tidak.