Bayangkan folder proyek yang harus bisa diakses lima orang: memberi permission satu per satu untuk tiap nama login melelahkan dan rapuh. Linux menyelesaikannya dengan group: kumpulan nama login yang menerima permission secara bersama-sama. Sebuah akun selalu memiliki tepat satu group primer dan boleh menjadi anggota group lain sebanyak yang diperlukan. Pada Chapter ini kita membongkar format /etc/group, mengelola keanggotaan dengan groupadd dan usermod -aG, lalu mempraktikkan berbagi file antar anggota group.
Kenapa Linux Membutuhkan Group #
Permission file di Linux mengenal tiga kelas akses: owner, group, dan sisanya (other). Kelas group adalah pintu memberi akses ke banyak user sekaligus: satukan penerima akses dalam satu group, pindahkan group pada file atau folder bersama, lalu beri permission sekali saja. Ketika tim bertambah atau berkurang, kita cukup mengubah keanggotaan group tanpa menyentuh permission file.
Pola ini dipakai di mana-mana: anggota group sudo boleh menjalankan perintah sebagai root, anggota shadow boleh membaca /etc/shadow. Kekuasaan diberikan lewat keanggotaan, bukan satu per satu.
Group Primer dan Group Sekunder #
Setiap user memiliki tepat satu group primer di field keempat /etc/passwd — group aktif saat login yang menentukan group file buatan user tersebut. User juga boleh menjadi anggota group sekunder (supplementary); daftarnya justru tersimpan di /etc/group, bukan di /etc/passwd.
Perintah id -nG menampilkan semua keanggotaan group kita dalam bentuk nama:
id -nGOutput yang Dihasilkan:
zOutput hanya berisi z karena akun ini belum dimasukkan ke group tambahan mana pun. Di mesin pembaca, daftar seperti ini biasanya lebih panjang — akun desktop umumnya juga anggota sudo, audio, atau video.
Format File /etc/group #
Sama seperti /etc/passwd, file /etc/group adalah basis data teks: satu baris per group. Dua contohnya:
grep '^root:' /etc/group
grep '^sudo:' /etc/groupOutput yang Dihasilkan:
root:x:0:
sudo:x:27:Setiap baris terdiri dari empat field yang dipisahkan tanda titik dua:
| Posisi | Field | Nilai untuk sudo | Maknanya |
|---|---|---|---|
| 1 | nama group | sudo | nama yang dirujuk permission |
| 2 | password | x | penanda hash di /etc/gshadow |
| 3 | GID | 27 | nomor identitas group |
| 4 | daftar anggota | (kosong) | nama user anggota, dipisah koma |
Field keempat bisa kosong seperti pada root:x:0:. Sebagai contoh tampilan, group audio beranggotakan Budi dan Siti tercatat begini:
audio:x:29:budi,sitiKeanggotaan sekunder sepenuhnya dicatat dari sisi group, tanpa menyentuh /etc/passwd. Detail formatnya ada di group(5)
.
Mengatur Keanggotaan dengan groupadd dan usermod #
Membuat group baru adalah pekerjaan groupadd; menambah anggota memakai usermod -aG. Keduanya butuh akses root:
sudo groupadd tim-dev
sudo usermod -aG tim-dev budiPerintah pertama menambah baris baru di /etc/group. Perintah kedua menyisipkan budi ke daftar anggota tim-dev: -a (append) menambah tanpa mengganggu keanggotaan lama, G menunjuk daftar group sekunder.
Sebagai pelengkap, newgrp tim-dev membuka shell baru dengan group primer sementara tim-dev — file yang dibuat di shell tersebut memakai group itu tanpa mengubah /etc/passwd. Perintah ini hanya diizinkan bila kita anggota group-nya. Opsi lengkap usermod ada di usermod(8)
.
Praktik Berbagi File Antar Anggota Group #
Resepnya tiga langkah: buat folder, pindahkan group-nya ke group bersama, lalu beri permission tulis untuk kelas group. Kita simulasikan dua langkah pertama di fixture lokal — di komputer pembaca, ganti z dengan group bersama seperti tim-dev:
mkdir -p latihan/proyek-bersama
printf 'daftar tugas tim\n' > latihan/proyek-bersama/tugas.txt
chgrp z latihan/proyek-bersama/tugas.txt
stat -c '%U:%G %n' latihan/proyek-bersama/tugas.txtOutput yang Dihasilkan:
z:z latihan/proyek-bersama/tugas.txtMari kita bedah empat baris tersebut:
- Baris 1 membuat folder kerja tim
latihan/proyek-bersama. - Baris 2 membuat berkas bersama
tugas.txtdi dalamnya. - Baris 3 mengubah group file ke
z;chgrpdiizinkan karena kita pemilik file sekaligus anggota groupz. - Baris 4 menampilkan pemilik dan group file — hasilnya
z:z.
Batasnya terasa ketika target group bukan milik kita — memindahkan file ke group root langsung ditolak:
mkdir -p latihan/proyek-bersama
printf 'daftar tugas tim\n' > latihan/proyek-bersama/tugas.txt
chgrp root latihan/proyek-bersama/tugas.txt 2>&1Output yang Dihasilkan:
chgrp: changing group of 'latihan/proyek-bersama/tugas.txt': Operation not permittedPesan Operation not permitted lahir dari aturan kernel: user biasa hanya boleh mengalihkan group file ke group tempatnya menjadi anggota — dan akun ini bukan anggota root. Mengubah kepemilikan ke group lain, apalagi mengganti pemilik file dengan chown, membutuhkan root melalui sudo.
Field GID berisi angka 27, 0, atau 1001 — siapa yang membaca angka itu, dan bagaimana namanya bisa tampil di layar? Jawabannya ada pada cara kernel mengenal identitas, dibahas pada Chapter User dan Group Identifiers
.