Cách liệt kê tất cả và quản lý người dùng trong Ubuntu

Tác giả NetworkEngineer, T.Mười 22, 2021, 10:04:38 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách liệt kê tất cả và quản lý người dùng trong Ubuntu


Quản trị Linux có thể dễ dàng tương tác với hệ thống và quản lý tất cả người dùng bằng các lệnh hữu ích trong hệ thống Linux.

Ubuntu là bản phân phối Linux được sử dụng rộng rãi nhất cung cấp nhiều tính năng hữu ích hơn cho quản trị hệ thống để liệt kê tất cả người dùng và quản lý công việc hàng ngày của họ. Do đó, quản trị có thể dễ dàng cấp quyền cho người dùng trên một tập tin hoặc thư mục và chỉ định quyền hạn chế cho mỗi người dùng để bảo mật dữ liệu hệ thống của bạn.

Chúng ta sẽ khám phá trong bài viết này cách liệt kê tất cả người dùng trong hệ thống Ubuntu Linux bằng cách sử dụng môi trường dòng lệnh. Tất cả các lệnh được thực hiện trên Ubuntu 20.04 LTS tiêu điểm trong bài viết này. Hãy cùng chúng ta đi sâu vào chi tiết.

1. Liệt kê tất cả người dùng trong bản phân phối Ubuntu 20.04 LTS.

Có hai phương pháp sau có sẵn để liệt kê tất cả người dùng trong hệ thống Ubuntu:

  • Liệt kê tất cả người dùng bằng cách hiển thị nội dung tập tin /etc/passwd
  • Liệt kê tất cả người dùng bằng cách sử dụng Lệnh getent

1.1. Phương pháp 1: Liệt kê tất cả người dùng bằng cách hiển thị nội dung tập tin /etc/passwd.

Tất cả thông tin chi tiết của người dùng cục bộ được lưu trữ trong tập tin '/etc/passwd'. Mỗi dòng của tập tin này chứa thông tin đăng nhập về một người dùng cục bộ. Sử dụng hai lệnh cat và less sau, người dùng có thể xem nội dung của tập tin '/etc/passwd':

Để hiển thị nội dung /etc/passwd bằng lệnh 'cat', hãy sử dụng cú pháp sau:

Mã nguồn [Chọn]
$ cat /etc/passwd

Tương tự, bạn có thể xem nội dung tập tin '/etc/passwd' bằng lệnh 'less'.

Mã nguồn [Chọn]
$ less /etc/passwd

Trong tập tin '/etc/passwd', mỗi dòng bao gồm các trường được phân tách bằng dấu hai chấm. Các hiển thị thông tin quan trọng sau của mỗi người dùng:

  • Tên người dùng đại diện cho tên đăng nhập.
  • Trường này đại diện cho mật khẩu được mã hóa (x đại diện cho mật khẩu được lưu trữ trong tập tin '/etc/passwd').
  • UID đại diện cho số nhận dạng người dùng
  • GID được sử dụng để đại diện cho số ID nhóm của Người dùng
  • Tên đầy đủ của người dùng (GECOS)
  • Thư mục chính hoặc thư mục chính của người dùng.
  • Nó đại diện cho 'Login shell' được đặt mặc định thành /bin/bash.


Chỉ hiển thị tên người dùng bằng các lệnh Awk và Cut.

Đôi khi, bạn chỉ yêu cầu in trường đầu tiên hoặc tên người dùng. Trong trường hợp này, hai lệnh hữu ích, 'awk' và 'cut', giúp bạn hiển thị trường đầu tiên, có nghĩa là tên người dùng trên cửa sổ dòng lệnh.

Trong hệ thống Ubuntu Linux, 'Awk' là một tiện ích thao tác văn bản mạnh mẽ có thể dễ dàng lấy trường đầu tiên duy nhất từ tập tin /etc/passwd. Cú pháp của lệnh 'awk' để hiển thị trường đầu tiên được đưa ra dưới đây:

Mã nguồn [Chọn]
$ awk -F: '{ print $1}' /etc/passwd

Bạn cũng có thể sử dụng lệnh 'cut' cho mục đích tương tự như sau:

Mã nguồn [Chọn]
$ cut -d: -f1 /etc/passwd

Hai lệnh trên sẽ chỉ hiển thị tất cả tên người dùng trên cửa sổ dòng lệnh của bạn.

1.2. Phương pháp 2: Liệt kê tất cả người dùng Ubuntu bằng lệnh getent.

Lệnh getent sử dụng Linux giúp bạn thu thập các mục nhập từ cơ sở dữ liệu quản trị bằng cách sử dụng các phím tìm kiếm được chỉ định.

Trong hệ thống Ubuntu, lệnh getent thu thập và hiển thị các mục nhập từ cơ sở dữ liệu được cấu hình trong tập tin '/etc/nsswitch.conf'. Người dùng có thể truy vấn để liệt kê tất cả người dùng bằng cách sử dụng cơ sở dữ liệu mật khẩu. Vì vậy, để in danh sách người dùng Ubuntu, hãy sử dụng lệnh 'getent' theo cách sau:

Mã nguồn [Chọn]
$ getent passed

Bạn cũng có thể sử dụng các tham số 'awk' và 'cut' cùng với lệnh getent để chỉ hiển thị trường đầu tiên như sau:

Mã nguồn [Chọn]
$ getent passwd | awk -F: '{print $ 1}'

Ngoài ra, để hiển thị cùng một đầu ra, bạn có thể sử dụng lệnh cắt như sau:

Mã nguồn [Chọn]
$ getent passwd | cut -d: -f1

Tìm kiếm Người dùng Linux hiện có bằng lệnh getent.

Sử dụng lệnh getent, bạn cũng có thể tìm thấy người dùng có tồn tại trên hệ thống Ubuntu Linux của mình hay không. Để xem sự tồn tại của người dùng Linux, hãy sử dụng lệnh getent cùng với grep như sau:

Mã nguồn [Chọn]
$ getent passwd | grep user-name
Ví dụ: chúng ta muốn tìm kiếm tên người dùng 'samreena' có tồn tại trên hệ thống của chúng tôi hay không. Ở trên sẽ chuyển thành dạng sau:

Mã nguồn [Chọn]
$ getent passwd | grep Samreena

Nếu người dùng được chỉ định tồn tại trên hệ thống Ubuntu của bạn thì nó sẽ hiển thị thông tin đăng nhập của người dùng này. Ngược lại, nếu không có người dùng nào có tên này thì nó sẽ không hiển thị đầu ra.

Bạn cũng có thể kiểm tra người dùng có tồn tại hay không mà không cần sử dụng lệnh grep như sau:

Mã nguồn [Chọn]
$ getent passwd user_name
$ getent passwd Samreena


Hiển thị tổng số tài khoản của người dùng Linux.

Nếu bạn muốn tìm kiếm bao nhiêu tài khoản có sẵn trên hệ thống Ubuntu của mình, bạn có thể sử dụng 'getent passwd' theo sau là lệnh 'wc' như sau:

Mã nguồn [Chọn]
$ getent passwd | wc –l

2. Làm thế nào để phân biệt giữa Người dùng thông thường và Người dùng hệ thống?

Một người dùng hệ thống thường tạo ra những người dùng bình thường.
Người dùng hệ thống tạo khi bạn cài đặt Ubuntu mới hoặc hệ điều hành Linux khác.
Người dùng hệ thống là người dùng root.

Bạn cũng có thể tạo người dùng hệ thống để sử dụng các ứng dụng cụ thể. Trong khi người dùng bình thường là những người được tạo bởi người dùng có quyền sudo hoặc người dùng root. Vì vậy, mỗi người dùng bình thường và người dùng hệ thống có tài khoản đăng nhập, thư mục chính và số ID người dùng (UID) tự động chỉ định giữa phạm vi tối thiểu (UID_MIN) và tối đa (UID_MAX) bằng cách sử dụng tập tin '/etc/login.defs'.

Kiểm tra giới hạn Tối thiểu (UID_MIN) và Tối đa (UID_MAX)

Sử dụng lệnh sau, bạn có thể kiểm tra phạm vi giá trị cho người dùng bình thường giữa UID_MIN và UID_MAX:

Mã nguồn [Chọn]
$ grep -E '^ UID_MIN | ^ UID_MAX' /etc/login.defs

Kết quả trên cho thấy những người dùng bình thường có UID ở bất kỳ đâu từ 1000 đến 60000.

Liệt kê người dùng bình thường trong Ubuntu.

UID_MIN và UID_MAX giúp chúng tôi liệt kê những người dùng bình thường trong hệ thống của mình. Vì vậy, phạm vi UID cho phép bạn truy vấn danh sách người dùng bình thường trên hệ thống Linux của bạn như sau:

Mã nguồn [Chọn]
$ getent passwd {1000..60000}

Trong bài viết này, bạn đã học cách liệt kê tất cả người dùng Ubuntu hoặc Linux bằng ứng dụng dòng lệnh. Chúng ta đã điều tra cách tìm kiếm người dùng cụ thể và sự khác biệt giữa người dùng bình thường và người dùng hệ thống. Hơn nữa, chúng ta đã thảo luận về cách liệt kê bình thường bằng cách sử dụng các phạm vi UID. Các lệnh trên cũng có thể áp dụng cho các bản phân phối Linux khác như CentOS, Debian và LinuxMint để liệt kê người dùng.