Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Cách xem danh sách tất cả user trong Linux

Trong bài này mình sẽ hướng dẫn cách xem danh sách tất cả user trong Linux, qua đó bạn có thể biết có bao nhiêu user đang có trên hệ thống của mình.

Đã bao giờ bạn muốn liệt kê tất cả người dùng trong hệ thống Linux của mình, hoặc đếm số lượng người dùng trong hệ thống chưa? Chúng ta đã có các 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ất cả người dùng trong Linux là gì? Hãy cùng mình tìm hiểu ngay nhé.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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:

danh sach user linux JPG

Mỗi hàng sẽ có 7 phần được ngăn cách nhau bởi dấu hai chấm. Ý nghĩa cụ thể như sau:

  1. Tên tài khoản.
  2. Mật khẩu đã được mã hóa (x có nghĩa là mật khẩu được lưu trong file /etc/shadow).
  3. Số ID người dùng (UID).
  4. Số ID nhóm của người dùng (GID).
  5. Tên đầy đủ của người dùng (GECOS).
  6. Thư mục chính của người dùng.
  7. 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:

ket qua danh sach user JPG

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 danh sách tất cả userr Linux, hãy nhập lệnh sau

getent passwd

Kết quả:

danh sach user linux JPG

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ất cả user có trong hệ thống Linux rồi. Nhưng nếu bây giờ bạn có một cái tên và bạn muốn kiểm tra nó có tồn tại trong danh sách user đó không thì làm thế nào? Rất đơn giản, ta sẽ kết 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 tồn tại thì nó sẽ trả về một hàng với 7 thông tin như hai phần trên mình đã giới thiệu, 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 hệ thống thì chạy lệnh sau:

getent passwd | wc -l

Kết quả trả về là một con số, đó 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 tài khoản cuong nhưng kết quả trả về là rất nhiều, bởi vì số còn lại chính là những tài khoản mặc định đã có trên 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_MINUID_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ừ kết quả ở trên thì chúng ta có thể thấy rằng tất cả người dùng bình thường phải có UID từ 1000 đến 60000.

Sau khi biết hai giá trị này rồi thì ta dễ dàng viết lệnh lấy danh sách tất cả user bình 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:

nguoi dung linux JPG

Như vậy là mình đã hướng dẫn xong cách xem danh sách người dùng trên hệ thống Linux. Qua bài này bạn đã biết cách sử dụng lệnh gatent và kết hợp với passwd để lấy danh sách 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é.

Cùng chuyên mục:

Cách dùng lệnh Users trong Linux để xem user đang online

Cách dùng lệnh Users trong Linux để xem user đang online

Nếu bạn đang là quản trị viên thì việc quản lý thông tin / xem…

Cách sử dụng lệnh Wall trong Linux

Cách sử dụng lệnh Wall trong Linux

Wall là một công cụ dòng lệnh giúp hiển thị thông báo đến tất cả…

Cách dùng lệnh Whereis trong Linux

Cách dùng lệnh Whereis trong Linux

Whereis là một tiện ích dòng lệnh command line, nó cho phép bạn tìm ..

Cách sử dụng lệnh Which trong Linux

Cách sử dụng lệnh Which trong Linux

Linux dùng lệnh which để xác định vị trí file thực thi của lệnh mà…

Cách sử dụng lệnh whoami trong Linux

Cách sử dụng lệnh whoami trong Linux

Giống như tên gọi của nó, lệnh whoami in tên người dùng đang chạy ...

Cách dùng lệnh zcat trong Linux

Cách dùng lệnh zcat trong Linux

Mặc dù tính năng nén file rất hữu ích vì nó giúp ta tiết kiệm…

Hiểu rõ hơn về chmod 777 trong Linux

Hiểu rõ hơn về chmod 777 trong Linux

Bạn đang xây dựng một website và sử dụng tính năng upload ...

Cách sử dụng lệnh tail trong Linux

Cách sử dụng lệnh tail trong Linux

Mặc định thì lệnh tail sẽ hiển thị 10 dòng cuối cùng của file, thông…

Cách sử dụng lệnh Head trong Linux

Cách sử dụng lệnh Head trong Linux

Trong quá trình quản trị dữ liệu trên Linux đôi khi bạn muốn xem nhanh…

Cách sử dụng lệnh Whatis trong Linux

Cách sử dụng lệnh Whatis trong Linux

Trong bài này chúng ta sẽ tìm hiểu lệnh whatis trong ...

Cách sử dụng lệnh kill trong Linux

Cách sử dụng lệnh kill trong Linux

Linux là một hệ điều hành rất nhanh nhưng không phải lúc nào nó không…

Cách dùng lệnh who trong Linux

Cách dùng lệnh who trong Linux

Who là một công cụ dòng lệnh command-line, được ...

Cách dùng lệnh basename trong Linux

Cách dùng lệnh basename trong Linux

basename là một tiện ích dòng lệnh (command line) dùng để lấy ...

Cách sử dụng lệnh gzip trên Linux

Cách sử dụng lệnh gzip trên Linux

Gzip là một trong những thuật toán nén file phổ biến nhất, nó cho phép…

Cách dùng lệnh wait trong Linux

Cách dùng lệnh wait trong Linux

Wait là lệnh dùng để đợi một thời gian cho tới khi công việc nào…

Cách dùng lệnh ping trong Linux

Cách dùng lệnh ping trong Linux

Lệnh ping là một trong những công cụ được sử dụng nhiều nhất để khắc…

Cách dùng lệnh sleep trong Linux

Cách dùng lệnh sleep trong Linux

sleep là một tiện ích command line cho phép lập trình viên ..

Các ví dụ học Bash Script trong Linux cơ bản nhất

Các ví dụ học Bash Script trong Linux cơ bản nhất

Bash Script đuọc xem là mã code lập trình trên Linux ...

Vòng lặp until trong Shell Script

Vòng lặp until trong Shell Script

Vòng lặp while trong Shell Script

Vòng lặp while trong Shell Script

Trong Linux script, vòng lặp while được sử dụng trong ...

Top