Ubah gid dari grup tertentu


34

Saya ingin mengubah id grup dari grup tertentu. Ada begitu banyak solusi untuk mengubah gid file atau direktori. Tapi bukan itu yang saya inginkan. Apakah ada cara untuk melakukan itu?

Jawaban:


42

GID adalah pengidentifikasi utama grup. Sejauh menyangkut sistem, GID yang berbeda adalah kelompok yang berbeda. Jadi untuk mengubah GID, Anda harus memodifikasi semua tempat di mana GID digunakan.

Anda harus menghindari memperlakukan GID sebagai signifikan dan menggunakan nama grup sebagai gantinya; Anda dapat mengubah nama grup dengan satu perintah (di Linux:) groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME.

Namun, jika Anda benar-benar ingin mengubah GID, ini caranya:

  • Pertama, Anda mungkin perlu keluar pengguna di grup dan membunuh proses yang menjadikan grup itu sebagai grup mereka yang efektif, nyata, atau disimpan.
  • Ubah entri dalam database grup. Di Linux, jalankan groupmod -g NEWGID GROUPNAME. Pada sistem lain, gunakan alat administrasi sistem itu, atau vigrjika tersedia, atau edit /etc/groupsebagaimana berlaku.
  • Ubah grup semua file di sistem Anda yang termasuk grup lama.

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • chgrp membersihkan flag suid dan sgid, mengembalikannya.

  • Jika Anda memiliki arsip yang menggunakan GID lama, bangun kembali.
  • Jika Anda memiliki file konfigurasi atau skrip yang merujuk GID lama, perbarui.
  • Mulai ulang semua proses yang harus menggunakan GID baru.

2
Sarankan menggunakan chgrp -h ...alih-alih chgrp .... Tanpa -h, target symlink yang relevan akan memiliki grup yang diubah.
Mark Plotnick

3
groupmodambil nama sebagai argumen utama bagi saya ...groupmod -g NEWGID GROUPNAME
Matt

29

Cara termudah adalah menggunakan groupmod -g <NEW_GID> <groupname>

Cara lain adalah mengedit /etc/groupsecara langsung. Bidang ketiga di setiap kolom adalah gid.

Jika kelompok berubah adalah kelompok utama pengguna, /etc/passwdperlu disesuaikan, juga: usermod -g <NEW_GID> <username>.


Apakah ini juga akan mempengaruhi gid file juga? Maksud saya, gid file dan gid grup akan berubah pada saat yang sama?
mibzer

1
Tidak. Ini hanya akan mengubah id grup. File / Direktori menyimpan gid (yang sekarang tidak disebutkan namanya) dan perlu diubah secara terpisah.
jofel

Oke terima kasih. Jadi jika saya ingin mengubah (file) gid ke gid baru, saya harus menjalankan perintah lain. Apakah itu benar ? Itu akan lebih baik jika ada cara untuk mengubah kedua file froup dan gid file terkait pada saat yang sama.
mibzer

Saya telah menambahkan perintah lain untuk jawaban saya. Tidak masalah jika sementara gid digunakan yang tidak ada di / etc / group. Setiap pengguna dalam grup harus masuk kembali untuk mendapatkan gid baru.
jofel

0

find / path -group foo -print0 | xargs -0 bilah chgrp


seperti yang saya katakan itu akan mengubah gid file. Tapi bukan itu yang saya maksud. Saya ingin mengubah gid grup bukan file.
mibzer

ok, saya bingung, lalu 'vi / etc / group' :)
jirib
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.