(Catatan: groups
Perintah, meskipun masih berguna, sebagian besar digantikan oleh perintah id .)
Seorang pengguna memiliki grup utama yang secara tradisional didefinisikan dalam file
/etc/passwd
file yang dengannya ia login, tetapi hari ini mungkin memiliki sumber lain. Dia juga dapat menjadi anggota kelompok tambahan, yang dikenal sebagai kelompok sekunder atau tambahan, secara tradisional ditentukan dalam file /etc/groups
, tetapi yang hari ini juga dapat berasal dari atau tersirat oleh sumber tambahan (seperti NIS, LDAP, SAMBA dll).
Grup primer dan tambahan didefinisikan pada saat login dan tetap terkini . Namun, pengguna dapat setiap saat mengubah grup utama aktif saat ini
dengan menggunakan newgrp
perintah.
Proses login menetapkan kelompok primer dan tambahan. Untuk yang selanjutnya, ia biasanya memanggil fungsi libc di
grup , yang mengkompilasi daftar data kelompok tambahan dan meneruskannya ke
fungsi setgroup , yang menetapkannya dalam konteks proses.
Sumber informasi initgroups
adalah:
digunakan oleh Perpustakaan C GNU dan aplikasi lain tertentu untuk menentukan sumber dari mana untuk mendapatkan informasi layanan nama dalam berbagai kategori, dan dalam urutan apa. Setiap kategori informasi diidentifikasi dengan nama basis data.
The groups
perintah menunjukkan kelompok sebagai saat ini diterapkan untuk pengguna Anda, dan daftar akan mulai dengan kelompok utama saat ini diikuti oleh kelompok-kelompok tambahan dari waktu login. Setiap perubahan pada sumber data dari setelah waktu login tidak tercermin dalam daftar yang ditampilkan.
The groups username
perintah meminta Linux untuk menghitung kelompok-kelompok untuk user tersebut, yang akan melakukan menggunakan terutama file /etc/password
dan /etc/groups
kemudian sumber tambahan. Ini akan mencerminkan situasi saat ini dari file sistem dan mungkin tidak sama dengan grup saat ini yang masih berlaku sejak saat login.
The groups username
perintah dapat memberikan hasil yang berbeda ketika tidak menggunakan semua sumber yang proses login yang digunakan untuk menghitung kelompok pelengkap, yang adalah apa yang tampaknya terjadi dalam kasus Anda. Sumber-sumber ini mungkin tidak dapat diakses dari login Anda atau mungkin tidak dikonsultasikan dengan perintah.
Menggunakan id username
perintah dapat memberikan hasil yang lebih baik, meskipun juga tidak dijamin selengkap proses login. The id
perintah lebih baru daripada, dan dimaksudkan untuk menjadi lebih tepat daripada, yang lama groups
perintah.
Sementara groups
perintah memberikan hasil yang tepat dan benar, Anda telah menunjukkan dengan baik bahwa groups username
perintah tidak dapat diandalkan untuk melakukan hal yang sama.
Tanpa memeriksa kode sumber dari groups
perintah, saya akan menebak bahwa implementasi groups username
perintah dalam analisis distribusi Linux Anda /etc/groups
, yang dalam kasus Anda tidak mengandung apa-apa, tetapi tidak digunakan /etc/nsswitch.conf
, dari mana datang semua kelompok tambahan Anda. Karena itu hanya tercantum nama grup utama
jacob
,.
Untuk informasi lebih lanjut, lihat: