Di Linux, file memiliki tiga set izin. Satu set adalah untuk grup file. Sebelum mengalokasikan file ke grup, Anda mungkin ingin memeriksa siapa anggota grup tersebut.
File and Directory Permissions
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 rangkaian izin menentukan apakah anggota kategori tersebut dapat membaca, menulis, atau menjalankan file. Dalam kasus direktori, tindakan eksekusi sama dengan kemampuan untuk 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 tersebut.
Misalnya, Anda mungkin memiliki tim pengembang, tim dokumentasi, tim peneliti, dan sebagainya . Anggota 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 adalah problematis.
File /etc/groups
File “/etc/group” berisi daftar grup dan anggota grup yang dipisahkan titik dua “:”. Setiap baris memiliki empat bidang.
- Name: Nama unik grup.
- Password: Tidak digunakan. Ini akan selalu menyimpan "x."
- Group ID: Pengidentifikasi grup unik.
- Users: 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 isi file dengan less.
less /etc/ group
Sebagian besar entri di bagian atas daftar tidak memiliki anggota, meskipun grup "adm" memiliki dua, dan grup "cdrom" memiliki satu.
Jika kita ingin menemukan grup tempat pengguna tertentu berada, kita 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. Tetapi penting bagi kita untuk melihat.
grep "namauser" /etc/group
Entri yang berisi string "dave" terdaftar untuk kita. Dan terselip di antara mereka adalah tanda bahwa segala sesuatunya mungkin tidak sesederhana yang kita kira.
Ketika pengguna ditambahkan ke Linux, tindakan default adalah menempatkan mereka dalam grup dengan nama yang sama dengan akun pengguna mereka. Ini adalah grup utama mereka. Grup lain tempat mereka ditambahkan 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 mungkin 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 Protokol Akses Direktori Ringan diterapkan. Dengan hanya melihat di satu tempat, Anda mungkin tidak melihat gambaran besarnya.
Dalam skenario pengujian kami, kami membuat empat grup untuk departemen pengembangan. Mereka adalah:
- resteam: 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” lebih sedikit dan menggulir ke bagian bawah file, kita akan melihat grup dan anggota grup baru. Setidaknya, sebanyak anggota file “/etc/group” tahu tentang.
Jika kita ingin mengekstrak satu grup, kita dapat mencari menggunakan grep. Tanda sisipan “^” mewakili awal baris.
grep "^devteam" /etc/group
Ini mengekstrak entri "devteam" dari file dan mencantumkan semua anggota grup. Atau bukan?
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.
getent group
Menggunakan getent dengan opsi grup 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 getent untuk merujuk ke.
. Maka tidak mengherankan, bahwa hasilnya sama dengan yang berasal dari file “/etc/group”. Mungkin apa yang kita lihat sebenarnya adalah kenyataan dari situasi tersebut. Mungkin semuanya mudah dan—di komputer ini—apa yang Anda lihat adalah apa yang Anda dapatkan? Mari kita menilai itu.
Perintah getent dapat melihat satu grup untuk kita. Kami akan melihat grup "devteam".
getent grup devteam
Kami mendapatkan hasil yang sama persis seperti sebelumnya. Ada cara untuk menggali lebih dalam.
Perintah tutup
Perintah tutup adalah bagian dari kumpulan alat libuser. Itu sudah diinstal pada komputer uji Fedora 36 kami tetapi harus diinstal pada Ubuntu 22.04 dan Manjaro 21 one.
Juga, perintahnya disebut tutup pada Fedora dan Manjaro, tetapi di Ubuntu, Anda perlu menggunakan libuser-lid.
Untuk menginstal perintah di Ubuntu, ketik:
sudo apt install libuser
On Manjaro, libuser diinstal dari AUR, jadi Anda harus menggunakan pembantu AUR favorit Anda. Kami menggunakan yay.
yay 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 tutup sebagai ganti libuser-lid.
sudo libuser-lib dave
Untuk melihat anggota grup, gunakan opsi -g (grup) bersama dengan nama grup.
sudo libuser-lid -g devteam
Lo dan 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 grup.
groups abigail
groups hayden
groups francis
Pengguna "abigail" ada di grup yang disebut "abigail" dan dua lainnya grup, "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 grup bernama “francis.”TERKAITMenambahkan Pengguna ke Grup (atau Grup Kedua) di Linux
Kita tahu bahwa setiap pengguna harus menjadi anggota grup utama dan bahwa secara default grup utama memiliki GID dan nama yang cocok dengan UID pengguna dan nama akun. Tampaknya ada sesuatu yang berbeda tentang pengguna "francis."
Mari kita gunakan perintah id dan lihat apa yang UID dan GID katakan kepada kita.
id abigailid francis
User "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.
Apa pun itu, hanya libuser-lid yang mendeteksi mereka dan melaporkan kehadiran mereka di " devteam” group.
Jadi penting untuk melihat detail aslinya.
Groups adalah cara yang bagus untuk mengatur kolaborasi, selama Anda tahu dengan siapa Anda membukanya.
Itulah berita seputar
Cara Mendaftar Semua Pengguna Dalam Grup di Linux, semoga bermanfaat.
Disadur dari HowToGeek.com.