Bagaimana saya bisa mengubah grup default pengguna di Linux?

41

Menjadi orang baru dalam administrasi Linux, saya sedikit bingung tentang perintah berikut:

useradd
usermod
groupadd
groupmod

Saya baru saja selesai membaca buku administrasi pengguna di buku pegangan Linux / Unix Administrator, tetapi beberapa hal masih agak kabur.

Pada dasarnya useraddtampaknya cukup lurus ke depan:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

Saya dapat menambahkan "David Hilbert" dengan nama pengguna hilbert, mengatur direktori, shell, dan grup default-nya. Dan saya pikir itu -gadalah grup utama / default dan grup -Glainnya.

Jadi ini pertanyaan saya berikutnya:

  1. Akankah perintah ini tetap berfungsi jika kelompok facultydan famoustidak ada? Apakah itu hanya akan membuatnya?
  2. Jika tidak, perintah apa yang saya gunakan untuk membuat grup baru?
  3. Jika saya menghapus pengguna hilbertdan tidak ada pengguna lain dalam grup itu, apakah mereka masih ada? Haruskah saya menghapusnya?
  4. Setelah saya menjalankan useraddperintah di atas, bagaimana saya menghapus David dari famousgrup, dan menugaskan kembali grup utamanya hilbertyang belum ada?
cwd
sumber

Jawaban:

27

The usermodperintah akan memungkinkan Anda untuk mengubah kelompok utama pengguna, kelompok tambahan atau sejumlah atribut lainnya. The -gsaklar kontrol kelompok utama.

Untuk pertanyaan Anda yang lain ...

  1. Jika Anda menentukan grup,, groupnameyang tidak ada selama useraddtahap, Anda akan menerima kesalahan - useradd: nama grup grup tidak dikenal

  2. The groupaddPerintah menciptakan kelompok baru.

  3. Grup akan tetap ada jika Anda menghapus semua pengguna yang ada di dalamnya. Anda tidak harus menghapus grup yang kosong.

  4. Buat hilbertgrup melalui groupadd hilbert. Kemudian pindahkan grup utama David menggunakan usermod -g hilbert hilbert. (Harap perhatikan bahwa yang pertama hilbertadalah nama grup dan yang kedua hilbertadalah nama pengguna. Ini penting dalam kasus, di mana Anda memindahkan pengguna ke grup dengan nama yang berbeda)

Anda mungkin sedikit menyulitkan di sini. Dalam banyak distribusi Linux, yang sederhana useradd hilbertakan membuat pengguna hilbertdan grup dengan nama yang sama dengan yang utama. Saya akan menambahkan kelompok tambahan yang ditentukan bersama menggunakan -Gsaklar.

putih
sumber
1
Terima kasih. jika saya melakukan itu usermod -g hilbert hilbertakan menghapus grup lain hilbert? Jika demikian, bagaimana saya menjaga grup lain itu? Jika tidak, wow saya akan menghapusnya dari grup lain?
cwd
Cobalah dan lihat lingkungan khusus Anda.
ewwhite
@Mick jawaban mendapat dukungan saya karena dia menunjukkan bahwa Anda perlu menggunakan -a dengan -G (jika tidak, grup mana pun yang Anda tinggalkan akan dihapus )
Jeff
9

Anda perlu membaca man usermodyang menjelaskan apa yang terjadi dengan berbagai opsi:

usermod -g hilder hilder

akan mengganti grup login Anda dari 'fakultas' ke 'hilder', selama grup 'hilder' ada. Jika tidak ada maka Anda harus membuatnya dengan groupadd terlebih dahulu.

Saat Anda menggunakan -Gopsi, Anda juga harus menggunakan -aopsi untuk menambahkan grup baru ke daftar grup tambahan saat ini yang dimiliki pengguna 'hilder'. Tanpa -aopsi, Anda akan mengganti grup tambahan saat ini dengan set grup baru. Karena itu gunakan ini dengan hati-hati.

Mick
sumber
5

Untuk mengubah grup utama pengguna di Linux:

  • usermod -g new_group user_name
  • hentikan semua sesi aktif user_name

Untuk menguji perubahan Anda, jalankan iddan lihat nilaigid=

Jika perintah berjalan tanpa kesalahan tetapi gid tidak berubah Anda telah melewatkan bagian tebal dari langkah 2.

ndemou
sumber
1

jawaban # 1 baik, Anda masih dapat memilih untuk mengeluarkan yang berikut untuk menambahkan grup baru:

# nano /etc/group

Kelemahan dari pengeditan /etc/groupsecara langsung adalah Anda harus membuat GID (nomor ID grup) yang tidak digunakan.

Berikut ini akan memungkinkan Anda untuk mengubah grup utama pengguna. # nano /etc/passwd

Anda menemukan garis pengguna, dan mengubah GID (nomor grup, mencarinya /etc/group), perlu diingat bahwa sintaksnya adalah sebagai berikut:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

Tidak ada downside saya bisa memikirkan untuk pendekatan ini (asalkan Anda tahu GID), itu adalah apa yang sering saya gunakan untuk pengguna lokal, terutama karena saya menggunakan banyak sistem UNIX yang berbeda dengan berbeda usermod, adduserdan useraddopsi perintah.

Ini sedikit lebih manual, namun berhasil. Perhatikan bahwa Anda dapat menggunakan viiso nanountuk mengedit file, jika Anda tahu vi.

Nikolai Alexandrov Georgiev
sumber
0

Untuk mengubah secara permanen grup utama pengguna, jalankan:

  • usermod -g perintah nama pengguna groupname

Atau Anda bisa menggunakannya newgrpuntuk lingkungan kecil dan situasi sementara.

Buat bob pengguna baru dan grup baru dodo.

useradd bob

Jadi di RedHat / Centos kita memiliki UID = (ID_number) bob; GID = (ID_number) bob sebagai grup utama secara default

groupadd dodo

Tambahkan bob pengguna ke dodogrup:

usermod -aG dodo bob -make sure to use "a"

Penggunaan selanjutnya newgrpuntuk mengubah kepemilikan:

newgrp dodo

Hati-hati dengan akun Anda untuk memiliki kata sandi dan menjadi anggota grup utama di masa depan. Dan newgrp membuka shell baru; selama pengguna tetap berada di shell itu, grup utama tidak akan berubah. Untuk mengganti grup utama kembali ke yang asli, Anda bisa meninggalkan shell baru dengan menjalankan perintah keluar.

Dragos Alexe
sumber