Cách liệt kê người dùng trong Linux

How List Users Linux



Linux là một hệ điều hành nhiều người dùng. Để giữ cho hệ thống hoạt động hiệu quả, việc quản lý người dùng thích hợp là bắt buộc. Đối với một quản trị viên hệ thống, biết tất cả người dùng là cần thiết để quản lý người dùng và quyền.

Hướng dẫn này trình bày cách liệt kê người dùng trong Linux.







Danh sách người dùng

Hệ thống lưu trữ danh sách người dùng trong các tệp và cơ sở dữ liệu cụ thể. Chúng ta có thể truy cập chúng bằng nhiều công cụ khác nhau. Chúng tôi cũng có thể lọc đầu ra để thu thập thông tin cụ thể.



Liệt kê người dùng từ / etc / passwd
Tệp / etc / passwd là một cơ sở dữ liệu dựa trên văn bản thuần túy chứa thông tin về tất cả người dùng trong hệ thống. Tệp được sở hữu bởi root với quyền đối với tệp 644. Để được giải thích chuyên sâu về quyền đối với tệp, hãy xem hướng dẫn này về quyền và quyền sở hữu tệp Linux.



Chúng tôi có thể kiểm tra nội dung của tệp / etc / passwd để có danh sách toàn diện về tất cả người dùng trong hệ thống.





$ cat / etc / passwd | sắp xếp | ít hơn

Mỗi dòng trong tệp biểu thị một tên người dùng duy nhất và thông tin liên quan của nó. Thông tin được phân tách thành bảy trường, phân tách bằng dấu hai chấm. Dưới đây là tóm tắt nhanh về các trường.



  • Trường 1: Tên người dùng của người dùng.
  • Trường 2: Nó mô tả nếu mật khẩu người dùng được mã hóa. Nếu giá trị là x, nó có nghĩa là mật khẩu được lưu trữ tại tệp văn bản / etc / shadow. Đó là một tệp được hệ thống bảo vệ yêu cầu đặc quyền sudo để truy cập.
  • Trường 3: UID (ID người dùng) của người dùng.
  • Trường 4: GID (ID nhóm) của người dùng.
  • Trường 5: Tên người dùng đầy đủ (GECOS).
  • Trường 6: Thư mục chính dành riêng cho người dùng.
  • Trường 7: Vỏ đăng nhập của người dùng. Theo mặc định, giá trị này sẽ được đặt thành / bin / bash.

Nếu thông tin bổ sung không cần thiết vào lúc này, chúng tôi có thể bỏ qua chúng trong đầu ra.

$ cat / etc / passwd | awk -F: '{print $ 1}' | loại

$ cat / etc / passwd | cắt -d: -f1 | loại

Liệt kê người dùng bằng getent
Thuật ngữ getent là một dạng viết tắt để lấy các mục nhập từ cơ sở dữ liệu quản trị. Như nó gợi ý, getent có thể hoạt động với nhiều cơ sở dữ liệu quản trị khác nhau. Kiểm tra tất cả các cơ sở dữ liệu quản trị được hỗ trợ.

$ getent --help

Chúng tôi quan tâm đến cơ sở dữ liệu mật khẩu vì nó chứa thông tin về tất cả người dùng trong hệ thống. Kiểm tra passwd cơ sở dữ liệu với getent.

$ getent passwd | loại

Đầu ra tương tự như nội dung của / etc / passwd. Lưu ý rằng lệnh getent này sẽ hiển thị người dùng từ cả cơ sở dữ liệu passwd và LDAP nếu hệ thống được định cấu hình để sử dụng LDAP cho xác thực người dùng. Để biết cách sử dụng chuyên sâu hơn, hãy xem hướng dẫn này về lệnh getent Linux.

Chúng tôi có thể xóa tất cả thông tin bổ sung khỏi đầu ra, chỉ giữ lại tên người dùng.

$ getent passwd | awk -F: '{print $ 1}' | loại

$ getent passwd | cắt -d: -f1 | loại

Danh sách người dùng của một nhóm
Trong Linux, nhóm là đơn vị tổ chức để tổ chức và quản lý tài khoản người dùng. Nó giúp quản lý các hệ thống khác nhau và các quyền đối với tệp dễ dàng hơn.

Để liệt kê tất cả người dùng từ một nhóm người dùng cụ thể, chúng ta có thể sử dụng getent.

nhóm $ getent

Sử dụng danh sách người dùng

Bây giờ chúng ta biết cách liệt kê tất cả người dùng trong hệ thống. Dưới đây là một số kịch bản để áp dụng kiến ​​thức này.

Kiểm tra sự tồn tại của người dùng
Từ danh sách người dùng, chúng tôi có thể kiểm tra xem người dùng có tồn tại trong hệ thống Linux hay không. Công cụ getent có thể kiểm tra xem người dùng có tồn tại trong hệ thống hay không.

$ getent passwd

Một phương pháp khác (mặc dù không tốt) là sử dụng grep. Chúng tôi chỉ có thể lọc danh sách người dùng bằng grep. Vì mỗi người dùng có mục nhập duy nhất của riêng mình nên nó sẽ không tạo ra bất kỳ va chạm nào.

$ getent passwd | grep

Số lượng tài khoản người dùng
Như chúng ta đã thấy cho đến nay, tất cả các phương pháp đều báo cáo một người dùng duy nhất ở mỗi dòng của đầu ra. Bằng cách đếm số dòng, chúng tôi có thể kiểm tra xem hiện có bao nhiêu người dùng trong hệ thống.

Để đếm số dòng, chúng tôi sẽ sử dụng wc dụng cụ. Đưa đầu ra getent vào lệnh wc.

$ getent passwd | wc -l

Liệt kê những người dùng được kết nối
Nếu nhiều người dùng đã đăng nhập, chúng tôi có thể kiểm tra danh sách những người dùng được kết nối bằng cách sử dụng ai chỉ huy.

$ ai

Có ba cột thông tin khác nhau trong đầu ra.

  • Cột 1: Tên người dùng được kết nối.
  • Cột 2: Loại kết nối với hệ thống.
  • Cột 3: Thời gian và ngày bắt đầu của phiên.

Suy nghĩ cuối cùng

Trong hướng dẫn này, chúng tôi đã trình bày cách liệt kê và lọc người dùng trong hệ thống. Nó cũng giới thiệu một số cách sử dụng tiềm năng của danh sách người dùng. Các phương pháp này hoạt động bất kể bạn đang sử dụng bản phân phối Linux nào.

Quản lý người dùng là một phần quan trọng của hệ sinh thái Linux. Để tìm hiểu thêm, hãy xem hướng dẫn chuyên sâu này về cách liệt kê và quản lý người dùng trong Linux .

Chúc bạn tin học vui vẻ!