Cara Mendaftar Semua Pengguna Dalam Grup di Linux
Diterbitkan: 2022-08-29Di Linux, file memiliki tiga set izin. Satu set adalah untuk grup file. Sebelum Anda mengalokasikan file ke grup, Anda mungkin ingin memeriksa siapa anggota grup tersebut.
Izin File dan Direktori
File dan direktori di Linux memiliki satu set izin untuk pemiliknya, set lain untuk grup tempat file dialokasikan, dan izin untuk semua orang yang tidak termasuk dalam salah satu dari dua kategori sebelumnya.
Setiap set izin menentukan apakah anggota kategori tersebut dapat membaca, menulis, atau mengeksekusi file. Dalam kasus direktori, tindakan eksekusi sama dengan kemampuan untuk melakukan cd
ke direktori.
Grup default untuk file atau direktori adalah grup default pemiliknya. Itu biasanya orang yang membuatnya. Izin grup digunakan untuk memungkinkan kumpulan pengguna memiliki akses terkontrol ke file dan direktori anggota lain dari grup itu.
Misalnya, Anda mungkin memiliki tim pengembang, tim dokumentasi, tim peneliti, dan sebagainya. Anggota dari setiap tim dapat ditambahkan ke grup dengan nama yang sesuai, untuk membantu kolaborasi. Pengguna dapat berada di banyak grup sekaligus.
Ini adalah skema yang sederhana namun kuat. Tetapi jika file Anda sensitif, Anda mungkin merasa lebih senang memeriksa siapa anggota grup tersebut, sebelum Anda membagikan pekerjaan Anda kepada mereka. Ada berbagai cara untuk melakukan ini. Tapi perhatikan. Dua metode yang paling sering direkomendasikan bermasalah.
TERKAIT: Cara Menggunakan Perintah chgrp di Linux
File /etc/groups
File “/etc/group” berisi tanda titik dua “ :
” daftar grup dan anggota grup yang dipisahkan. Setiap baris memiliki empat bidang.
- Name : Nama unik grup.
- Kata sandi : Tidak digunakan. Ini akan selalu menahan "x."
- ID Grup : Pengidentifikasi grup unik.
- Pengguna : Daftar anggota grup yang dipisahkan koma. Daftar ini biasanya kosong untuk akun sistem dan daemon.
Untuk membuang konten file ke jendela terminal, Anda dapat menggunakan cat
, tetapi lebih mudah untuk menggulir konten file dengan less
.
kurang /etc/grup
Sebagian besar entri di bagian atas daftar tidak memiliki anggota, meskipun grup "adm" memiliki dua, dan grup "cdrom" memiliki satu.
Jika kami ingin menemukan grup tempat pengguna tertentu berada, kami dapat menggunakan grep
untuk mencari entri dengan nama akun pengguna mereka. Ini bukan tugas kita. Kami ingin melihat semua orang yang merupakan anggota grup, bukan grup yang dimiliki oleh satu orang. Tapi itu instruktif bagi kita untuk melihat.
grep "dave" /etc/group
Entri yang berisi string "dave" terdaftar untuk kami. Dan terselip di antara mereka adalah tanda bahwa segala sesuatunya mungkin tidak sesederhana yang kita pikirkan.
Saat pengguna ditambahkan ke Linux, tindakan default adalah menempatkan mereka dalam grup dengan nama yang sama dengan akun pengguna mereka. Ini adalah kelompok utama mereka. Grup lain yang mereka tambahkan dikenal sebagai grup sekunder .
Masalahnya adalah pengguna tidak terdaftar sebagai anggota grup utama mereka . Itu sebabnya grup "dave" tidak menampilkan anggota, meskipun pengguna "dave" adalah anggota grup itu.
Tentu saja, administrator sistem dapat mengubah grup utama pengguna mana pun ke grup lain mana pun. Itu berarti pengguna dapat menjadi anggota grup mana pun tetapi mereka tidak akan terdaftar seperti itu di file “/etc/group”. Itu satu masalah.
Masalah kedua adalah bahwa file “/etc/group” bukanlah satu-satunya sumber kebenaran. Instalasi Linux modern dapat menyimpan informasi pengguna dan grup dengan baik di lebih banyak tempat daripada "/etc/passwd" dan "/etc/group", terutama dalam situasi perusahaan di mana layanan seperti Lightweight Directory Access Protocol disebarkan. Dengan hanya melihat di satu tempat, Anda mungkin tidak melihat gambaran besarnya.
Dalam skenario pengujian kami, kami membuat empat grup untuk departemen pengembangan. Mereka:
- reteam : Tim peneliti.
- devteam : Tim pengembangan.
- pvqteam : Tim verifikasi dan kualitas produk.
- docteam : Tim dokumentasi.
Kami menambahkan orang ke tim ini. Beberapa orang berada di lebih dari satu tim. Jika kita membuka file “/etc/group” dalam waktu yang less
singkat dan scroll ke bagian bawah file, kita akan melihat grup dan anggota grup baru. Setidaknya, sebanyak yang diketahui oleh file “/etc/group”.
Jika kita ingin mengekstrak satu grup, kita dapat mencari menggunakan grep
. Tanda sisipan “ ^
” mewakili awal dari sebuah baris.
grep "^devteam" /etc/group
Ini mengekstrak entri "devteam" dari file dan mencantumkan semua anggota grup. Atau apakah itu?
Perintah getent
Perintah getent
memeriksa beberapa database untuk informasi grup pengguna, bukan hanya "/etc/group." Kami akan menggunakan getent
untuk menunjukkan kepada kami grup pengguna.
grup getent
Menggunakan getent
dengan opsi group
menghasilkan—pada mesin uji ini—hasil yang sama seperti menggunakan file “/etc/group”. Itu karena kami tidak menggunakan LDAP atau layanan penamaan terpusat lainnya. Jadi tidak ada sumber lain untuk dirujuk oleh getent
.
Maka tidak mengherankan jika hasilnya sama dengan yang ada di file “/etc/group”. Mungkin apa yang kita lihat sebenarnya adalah realitas situasi. Mungkin semuanya mudah dan—di komputer ini—apa yang Anda lihat adalah apa yang Anda dapatkan? Mari kita simpan penilaian tentang itu.
Perintah getent
dapat melihat satu grup untuk kita. Kita akan melihat grup "devteam".
tim pengembang grup getent
Kami mendapatkan hasil yang sama persis seperti sebelumnya. Ada cara untuk menggali lebih dalam sekalipun.
TERKAIT: Cara Mendaftar Pengguna di Linux
Perintah tutupnya
Perintah lid
adalah bagian dari koleksi alat libuser
. Itu sudah diinstal pada komputer uji Fedora 36 kami tetapi harus diinstal pada Ubuntu 22.04 dan Manjaro 21.
Juga, perintahnya disebut lid
di Fedora dan Manjaro, tetapi di Ubuntu, Anda perlu menggunakan libuser-lid
.
Untuk menginstal perintah di Ubuntu, ketik:
sudo apt install libuser
Di Manjaro, libuser
diinstal dari AUR, jadi Anda harus menggunakan pembantu AUR favorit Anda. Kami menggunakan yay
.
ya libuser
Anda dapat menggunakan libuser-lid
untuk menampilkan informasi grup tentang grup atau pengguna. Untuk menunjukkan grup tempat seseorang berada, berikan nama akun pengguna mereka di baris perintah. Di Fedora dan Manjaro ingatlah untuk menggunakan lid
alih-alih libuser-lid
.
sudo libuser-lib dave
Untuk melihat anggota grup, gunakan opsi -g
(grup) bersama dengan nama grup.
sudo libuser-lid -g devteam
Lihatlah, seorang pengguna bernama "francis" telah muncul sebagai anggota daftar. Ini pertama kalinya kami melihatnya. Dia tidak terdaftar di "/etc/group" dan getent
juga tidak menemukannya.
Mari kita lihat beberapa pengguna dengan perintah groups
.
grup abigail
kelompok hayden
kelompok francis
- Pengguna "abigail" ada di grup yang disebut "abigail" dan dua grup lainnya, "resteam" dan "devteam."
- Pengguna "hayden" berada dalam grup yang disebut "hayden" dan dua grup lainnya, "pvqteam" dan "docteam."
- Pengguna "francis" berada dalam satu grup, grup "devteam". Perlu dicatat bahwa mereka tidak berada dalam kelompok bernama "francis."
Kita tahu bahwa setiap pengguna harus menjadi anggota grup utama dan bahwa secara default grup utama memiliki GID dan nama yang cocok dengan UID dan nama akun pengguna. Tampaknya ada sesuatu yang berbeda tentang pengguna "francis."
Mari gunakan perintah id
dan lihat apa yang UID dan GID katakan kepada kita.
id abigail
id francis
Pengguna "abigail" memiliki UID 1002, dan GID 1002. Mereka ada dalam tiga kelompok, salah satunya disebut "abigail." Ini memiliki GID 1002. Ini adalah grup utama default mereka.
Pengguna "francis" memiliki GID 1019, yang cocok dengan GID grup "devteam". Pengguna ini telah diberi grup utama baru, atau grup "devteam" ditetapkan sebagai grup utama mereka saat pengguna ini ditambahkan ke sistem.
Apapun itu, hanya libuser-lid
mendeteksi mereka dan melaporkan kehadiran mereka di grup "devteam".
Setan dalam Detailnya
Jadi, penting untuk melihat detail aslinya.
Grup adalah cara yang bagus untuk menyiapkan kolaborasi, selama Anda tahu dengan siapa Anda membukanya.
TERKAIT: Cara Mengubah Data Pengguna Dengan chfn dan usermod di Linux