Bài viết này được đăng tại
freetuts.net
Bạn đang đọc: Cách xem danh sách tất cả user trong Linux – Freetuts
, không được copy dưới mọi hình thức.
Đã khi nào bạn muốn liệt kê tổng thể người dùng trong mạng lưới hệ thống Linux của mình, hoặc đếm số lượng người dùng trong mạng lưới hệ thống chưa ? Chúng ta đã có những lệnh tạo người dùng, xóa người dùng, liệt kê người dùng đã đăng nhập, nhưng lệnh liệt kê tổng thể người dùng trong Linux là gì ? Hãy cùng mình khám phá ngay nhé .
Tóm Tắt
1. Lấy danh sách User trong Linux bằng file /etc/passwd
Trong Linux, thông tin người dùng được lưu trữ trong file /etc/passwd
. Mỗi dòng trong file này đại diện cho thông tin đăng nhập của một user. Để mở file này thì bạn có thể sử dụng lệnh cat hoặc less.
less /etc/passwd
Kết quả như sau:
Bài viết này được đăng tại [ không tính tiền tuts. net ]
Mỗi hàng sẽ có 7 phần được ngăn cách nhau bởi dấu hai chấm. Ý nghĩa đơn cử như sau :
- Tên tài khoản.
- Mật khẩu đã được mã hóa (x có nghĩa là mật khẩu được lưu trong file /etc/shadow).
- Số ID người dùng (UID).
- Số ID nhóm của người dùng (GID).
- Tên đầy đủ của người dùng (GECOS).
- Thư mục chính của người dùng.
- Shell đăng nhập (mặc định là /bin/bash).
Nếu bạn muốn chỉ hiện thị thông tin username thì sử dụng lệnh cut hoặc awk. Nếu bạn chưa biết những lệnh này thì đừng quá lo lắng, bởi qua chương tiếp theo chúng ta sẽ học nó.
awk
awk -F: '{ print $1}' /etc/passwd
cut
cut -d: -f1 /etc/passwd
Kết quả như sau :
2. Lấy danh sách user trên Linux bằng lệnh getent
Lệnh getent sẽ hiển thị các mục từ cơ sở dữ liệu được cấu hình trong file /etc/nsswitch.conf
, bao gồm cả passwd database, có thể được sử dụng để truy vấn danh sách tất cả người dùng.
Để lấy list tổng thể userr Linux, hãy nhập lệnh sau
getent passwd
Kết quả :
Như bạn thấy, kết quả không khác gì so với cách 1.
Nếu bạn đang sử dụng LDAP để xác thực người dùng, getent sẽ hiển thị tất cả người dùng Linux kể cả file /etc/passwd
và cơ sở dữ liệu LDAP
.
Bạn cũng có thể sử dụng awk hoặc cut để in danh sách thông tin của mỗi người dùng đăng nhập.
getent passwd | awk -F: '{ print $1}'
getent passwd | cut -d: -f1
3. Kiểm tra một người dùng có tồn trại trong hệ thống Linux không?
Bây giờ thì bạn đã biết cách xem tổng thể user có trong mạng lưới hệ thống Linux rồi. Nhưng nếu giờ đây bạn có một cái tên và bạn muốn kiểm tra nó có sống sót trong list user đó không thì làm thế nào ? Rất đơn thuần, ta sẽ tích hợp lệnh grep để lọc tìm theo tên .
Ví dụ: Mình muốn kiểm ta user có tên là Jack có trong hệ thống không thì chạy lệnh sau:
getent passwd | grep jack
Nếu người dùng sống sót thì nó sẽ trả về một hàng với 7 thông tin như hai phần trên mình đã ra mắt, còn không thì nó không trả gì về cả .
Hoặc bạn không cần lệnh grep cũng được .
getent passwd jack
Kết quả vẫn như trên .
Nếu bạn muốn đếm tổng số user trên mạng lưới hệ thống thì chạy lệnh sau :
getent passwd | wc -l
Kết quả trả về là một số lượng, đó chính là tổng số user đang có trên máy tính Linux của bạn .
4. Phân biệt người dùng hệ thống và người dùng bình thường
Như bạn thấy ở trên, mình chỉ có một thông tin tài khoản cuong nhưng hiệu quả trả về là rất nhiều, chính bới số còn lại chính là những thông tin tài khoản mặc định đã có trên mạng lưới hệ thống .
Vậy người dùng hệ thống chính là những tài khoản được tạo ra khi bạn cài đặt Linux (trong đó có cả tài khoản root), còn người dùng bình thường là do chính tài khoản root hoặc một người dùng khác có quyền sudo.
Mỗi người dùng sẽ có một ID và ta gọi nó là UID. Nếu lúc tạo user bằng lệnh useradd mà bạn không gắn UID thì nó sẽ lấy ID mặc định theo giá trị UID_MIN
và UID_MAX
nằm trong file /etc/login.defs
.
Để xem giá trị của UID_MIN và UID_MAX thì bạn chạy lệnh sau :
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
Kết quả
UID_MIN 1000 UID_MAX 60000
Từ tác dụng ở trên thì tất cả chúng ta hoàn toàn có thể thấy rằng tổng thể người dùng thông thường phải có UID từ 1000 đến 60000 .
Sau khi biết hai giá trị này rồi thì ta thuận tiện viết lệnh lấy list tổng thể user thông thường như sau :
getent passwd {1000..60000}
Kết quả trả về trên máy tính của mình như sau:
Như vậy là mình đã hướng dẫn xong cách xem list người dùng trên mạng lưới hệ thống Linux. Qua bài này bạn đã biết cách sử dụng lệnh gatent và tích hợp với passwd để lấy list người dùng .
Qua bài này bạn cần phải biết rằng thông tin người dùng sẽ nằm trong file /etc/passwd
nhé.
Source: https://final-blade.com
Category: Kiến thức Internet