Cara Mendaftar Semua Pengguna Dalam Grup di Linux

Diterbitkan: 2022-08-29
Laptop Linux menampilkan prompt bash
fatmawati achmad zaenuri/Shutterstock.com

Di 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 

Menggunakan cat untuk melihat isi file /etc/group

Sebagian besar entri di bagian atas daftar tidak memiliki anggota, meskipun grup "adm" memiliki dua, dan grup "cdrom" memiliki satu.

Bagian pertama dari file /etc/groups di penampil file yang lebih sedikit

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 

Daftar grup yang pengguna dave adalah anggotanya

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”.

Bagian bawah file /etc/group di penampil file yang lebih sedikit

Jika kita ingin mengekstrak satu grup, kita dapat mencari menggunakan grep . Tanda sisipan “ ^ ” mewakili awal dari sebuah baris.

 grep "^devteam" /etc/group 

Menggunakan grep untuk mengekstrak anggota untuk satu grup

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 untuk mendaftar semua grup yang ditentukan

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 .

Output dari getent group menunjukkan grup dan anggota

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 

Menggunakan grup getent untuk mengekstrak detail satu grup

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 

Menginstal libuser di Ubuntu

Di Manjaro, libuser diinstal dari AUR, jadi Anda harus menggunakan pembantu AUR favorit Anda. Kami menggunakan yay .

 ya libuser 

Menginstal libuser di Manjaro

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 

Menggunakan libuser-lid untuk menunjukkan grup bahwa pengguna dave adalah anggotanya

Untuk melihat anggota grup, gunakan opsi -g (grup) bersama dengan nama grup.

 sudo libuser-lid -g devteam 

menggunakan libuser-lid untuk membuat daftar anggota grup 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 

Menggunakan perintah grup pada pilihan pengguna

  • 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."
Tambahkan Pengguna ke Grup (atau Grup Kedua) di Linux
TERKAIT Tambahkan 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 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 

Menggunakan perintah id pada pengguna abigail dan 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