Tôi có thể có một danh sách các tên nhóm của Hệ thống và các gid tương ứng của họ không?


14

Tôi biết có những tên nhóm như "Nhân viên" và "Quản trị viên", nhưng đó có phải là những tên duy nhất không? Tôi nghi ngờ rằng người dùng root cũng nên được chỉ định trong một nhóm. Sử dụng lệnh dscacheutil -q usercho tôi biết gid của root - 0. Và nếu tài khoản người dùng là quản trị viên, thì đó có phải là trong cả hai nhóm "Quản trị viên" và "Nhân viên" không?

Bằng cách chạy lệnh ls -la /Users, tôi nhận được đầu ra sau:

Nicholass-MacBook:~ Ee$ ls -la /Users
total 32
drwxr-xr-x  12 root     admin    408 Nov  3 15:11 .
drwxr-xr-x@ 35 root     wheel   1258 Oct 29 20:21 ..
-rw-r--r--@  1 root     admin  12292 Oct 27 09:02 .DS_Store
-rw-r--r--   1 root     wheel      0 Aug 25 16:58 .localized
drwxrwx---   5 root     admin    170 Nov  3 08:00 Deleted Users
drwxr-xr-x+ 21 Ee       staff    714 Nov  3 08:06 Ee
drwx------+ 84 root     admin   2856 Oct 26 06:49 Ee (Deleted)
drwxr-xr-x+ 11 EeJ      staff    374 Nov  3 15:07 EeJ
drwxr-xr-x+ 14 900      admin    476 Oct 24  2012 Ee******** (Deleted)
drwxr-xr-x   3 root     admin    102 Oct 27 06:50 Old Ee (frm Snow Leopard)
drwxr-xr-x+ 11 ParAcnt  staff    374 Nov  3 15:11 ParAcnt
drwxrwxrwt   6 root     wheel    204 Nov  1 18:18 Shared

Câu trả lời:


21

Lệnh dscacheutil -q groupsẽ xuất tất cả các nhóm với tên, số ID và danh sách thành viên của chúng. Được cảnh báo, khi tôi nói nó sẽ xuất ra tất cả các nhóm, ý tôi là tất cả các nhóm, bao gồm cả những người chết trong hệ thống tích hợp không bao giờ có ý định nhìn thấy. Tôi chỉ nói rằng, đừng sợ hãi vì có rất nhiều nhóm cho một hệ thống người dùng.

rootvì siêu người dùng ở trong một nhóm và cũng là thành viên của mọi nhóm khác. Bất kỳ tài khoản người dùng có thể là thành viên của nhiều nhóm. Trên hệ thống của tôi, thành viên duy nhất của staffroot; quản trị viên là tất cả trong adminnhóm. wheellà một tên nhóm khác mà bạn thường thấy đối với một số tệp hệ thống; đó là tên nhóm phổ biến trên các hệ thống Linux để gán cho các tệp để quản trị viên có thể chỉnh sửa chúng mà không cần sử dụng mật khẩu của họ trongsudo .

Cũng cần lưu ý rằng Mac OS X hỗ trợ danh sách kiểm soát truy cập cung cấp quyền kiểm soát chi tiết hơn đối với quyền truy cập tệp so với quyền Unix truyền thống; IIRC +trong danh sách quyền của tệp cho biết có các quyền mở rộng như vậy được liên kết với tệp.


13

Phương pháp thay thế cho danh sách groupsvà của họ gid:

Danh sách được sắp xếp theo tên nhóm:

dscl . list /Groups PrimaryGroupID

Danh sách được sắp xếp theo nhóm gid:

dscl . list /Groups PrimaryGroupID | tr -s ' ' | sort -n -t ' ' -k2,2

Liệt kê các nhóm với các thành viên:

dscl . list /Groups GroupMembership

Lưu ý: không phải dscacheutilvà cũng không dscldanh sách thành viên của nhóm staffkhác hơn root. Sử dụng dsmemberutilđể xác nhận một thành viên thuộc nhóm staff.

Ví dụ người dùng có uid 501:

dsmemberutil checkmembership -u 501 -g 20

1
Wow, một tập hợp tốt đẹp của các lệnh hữu ích!
Yongwei Wu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.