(Ghi chú: groups
Lệnh, mặc dù vẫn hữu ích, nhưng hầu hết được thay thế bởi lệnh id .)
Một người dùng có một nhóm chính được xác định theo truyền thống trong tệp
/etc/passwd
tệp mà anh ta đăng nhập, nhưng ngày nay có thể có các nguồn khác. Anh ta cũng có thể là thành viên của các nhóm bổ sung, được gọi là nhóm thứ cấp hoặc nhóm bổ sung, theo truyền thống được chỉ định trong tệp /etc/groups
, nhưng ngày nay cũng có thể đến từ hoặc được ngụ ý bởi các nguồn bổ sung (như NIS, LDAP, SAMBA, v.v.).
Các nhóm chính và bổ sung được xác định tại thời điểm đăng nhập và vẫn còn hiện hành . Tuy nhiên, người dùng có thể bất cứ lúc nào thay đổi nhóm chính hoạt động hiện tại của mình
bằng cách sử dụng newgrp
lệnh.
Quá trình đăng nhập đặt các nhóm chính và bổ sung. Để sau này, nó thường gọi các nhóm initc hàm libc
, nó biên dịch danh sách dữ liệu nhóm bổ sung và chuyển nó đến
hàm setgroups , thiết lập nó trong bối cảnh của quá trình.
Các nguồn thông tin cho initgroups
là:
được Thư viện GNU C và một số ứng dụng khác sử dụng để xác định các nguồn để lấy thông tin dịch vụ tên trong một loạt các danh mục và theo thứ tự nào. Mỗi loại thông tin được xác định bởi một tên cơ sở dữ liệu.
Các groups
lệnh show các nhóm như hiện nay áp dụng cho người sử dụng của bạn, và danh sách sẽ bắt đầu với các nhóm chính hiện tại tiếp theo là nhóm bổ sung từ thời điểm đăng nhập. Mọi thay đổi về nguồn dữ liệu từ sau thời gian đăng nhập sẽ không được phản ánh trong danh sách được hiển thị.
Các groups username
lệnh được hỏi Linux để tính toán các nhóm cho người dùng đó, mà nó sẽ làm sử dụng chủ yếu các tập tin /etc/password
và /etc/groups
sau đó là nguồn bổ sung. Điều này sẽ phản ánh tình hình hiện tại của các tệp hệ thống và có thể không bằng các nhóm hiện tại vẫn còn hiệu lực kể từ thời điểm đăng nhập.
Các groups username
lệnh có thể đưa ra một kết quả khác nhau khi nó không sử dụng tất cả các nguồn mà quá trình đăng nhập sử dụng để tính toán các nhóm bổ sung của bạn, mà là những gì có vẻ như đã xảy ra trong trường hợp của bạn. Những nguồn này có thể không truy cập được từ thông tin đăng nhập của bạn hoặc có thể không được tư vấn bởi lệnh.
Sử dụng id username
lệnh có thể cho kết quả tốt hơn, mặc dù cũng không được đảm bảo hoàn thành như quy trình đăng nhập. Các id
lệnh gần đây hơn, và được dự định là chính xác hơn, người già groups
lệnh.
Mặc dù groups
lệnh cho kết quả chính xác và chính xác, bạn đã chứng minh rõ rằng groups username
lệnh không thể phụ thuộc vào việc thực hiện tương tự.
Nếu không kiểm tra mã nguồn của groups
lệnh, tôi đoán rằng việc triển khai groups username
lệnh trong các phân tích phân phối Linux của bạn /etc/groups
, trong trường hợp của bạn không có gì, nhưng không sử dụng /etc/nsswitch.conf
, từ đó xuất hiện tất cả các nhóm bổ sung của bạn. Do đó, chỉ được liệt kê tên nhóm chính ,
jacob
.
Để biết thêm thông tin xem: