Cách liệt kê tất cả các nhóm người dùng trên Linux
Các nhóm người dùng trên Linux giúp bạn xác định một tập hợp các quyền mà sau đó bạn có thể áp đặt cho những người dùng khác. Unix và Linux đi kèm với một số nhóm người dùng được cấu hình sẵn và với tư cách là quản trị viên, thật dễ dàng để tạo các nhóm bổ sung để phân loại và quản lý người dùng hơn nữa.
Nhưng trước khi tạo một nhóm mới, bạn muốn biết thêm về những nhóm hiện có. May mắn thay, có một số cách để liệt kê tất cả các nhóm người dùng có trên Linux và thậm chí bạn có thể xem danh sách các nhóm mà một người dùng cụ thể là thành viên. Bắt đầu nào.
Mục Lục
Sử dụng tệp /etc/group
Các /etc/nhóm tệp chứa thông tin về tất cả các nhóm người dùng cục bộ được định cấu hình trên máy Linux. Với tệp /etc/group, bạn có thể xem tên nhóm, mật khẩu, ID nhóm và thành viên được liên kết với từng nhóm.
Xem nội dung của tệp bằng lệnh cat:
cat /etc/group
Đầu ra có thể gây nhầm lẫn lúc đầu. Tên nhóm ở đâu? Và những “x” và dấu hai chấm trong đầu ra là gì?
Cột đầu tiên (văn bản trước dấu hai chấm đầu tiên) là những gì bạn đang tìm kiếm. Bạn có thể xem phiên bản chỉnh sửa của tệp và chỉ hiển thị tên nhóm bằng lệnh cắt:
cat /etc/group | cut -d: -f1
Danh sách đơn giản này vừa dễ nhìn vừa hoàn hảo để sử dụng trong các tập lệnh.
Bạn cũng có thể đếm tổng số nhóm cục bộ trên máy của mình bằng cách sử dụng wc:
cat /etc/group | wc -l
Để làm cho mọi thứ trở nên thú vị, hãy tạo một nhóm mới bằng cách sử dụng lệnh groupadd và sau đó xem tổng số nhóm người dùng trên hệ thống của bạn. Rõ ràng, số lượng sẽ tăng lên một và bạn sẽ có thể thấy tên nhóm được liệt kê trong đầu ra.
Liệt kê các nhóm bằng lệnh getent
getent, viết tắt của “lấy các mục”, là một lệnh Linux để xem nội dung của các tệp thông tin hệ thống, còn được gọi là cơ sở dữ liệu, trên Linux. /etc/nhóm, /etc/passwdVà /etc/shadow tệp là những ví dụ tốt về cơ sở dữ liệu như vậy.
Sử dụng lệnh getent để xem thông tin nhóm người dùng trên Linux rất đơn giản. Tất cả những gì bạn cần làm là gõ nhận được theo sau là tệp bạn muốn xem. Trong trường hợp này, đó là tệp nhóm.
getent group
Đầu ra của “nhóm nhận được” sẽ hơi khác so với con mèo/etc/nhóm yêu cầu. Điều này là do getent lấy thông tin nhóm từ các cơ sở dữ liệu tương tự khác trên hệ thống của bạn (ví dụ: LDAP).
Sử dụng lệnh cắt để phân tích cú pháp đầu ra và chỉ hiển thị tên nhóm:
getent group | cut -d: -f1
Lệnh getent rất linh hoạt. Bạn có thể liệt kê tên của tất cả người dùng trên Linux bằng cách lấy tất cả các mục nhập từ /etc/passwd tệp và sau đó phân tích cú pháp đầu ra cho tên người dùng.
Xem danh sách nhóm cho một người dùng cụ thể bằng cách sử dụng các nhóm
Thật khó để khớp trực quan tên người dùng với các nhóm của họ bằng các phương pháp trước đó. Nếu bạn chỉ muốn liệt kê các nhóm mà một người dùng cụ thể là thành viên, hãy cân nhắc sử dụng lệnh groups để thay thế.
Cú pháp cơ bản của lệnh là:
groups username
Nếu bạn không chỉ định tên người dùng, đầu ra sẽ hiển thị tất cả các nhóm cho người dùng hiện tại. Nhưng để rõ ràng, tốt nhất bạn nên cung cấp tên người dùng làm đối số.
Để có danh sách các nhóm cho người dùng có tên “người kiểm tra”, hãy chạy:
groups testuser
Nhóm Đơn giản hóa Kiểm soát Truy cập Người dùng trên Linux
Về mặt kỹ thuật, người dùng root là chủ sở hữu của toàn bộ hệ thống và có các quyền mà không người dùng nào khác sở hữu. Nhóm là một cách để siêu người dùng phân loại người dùng, cấp quyền cho họ và áp đặt các hạn chế để ngăn họ thực hiện các hoạt động không mong muốn.
Thay vì cấp quyền cho từng người dùng, bạn có thể tạo một nhóm và thêm tất cả người dùng vào nhóm đó. Sau đó, tất cả những gì bạn cần làm là quản lý các quyền cho nhóm nói trên và các quy tắc sẽ tự động được áp đặt cho các thành viên. Đây là một trong nhiều cách để quản lý người dùng trên Linux và các hệ điều hành liên quan đến Unix khác.