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

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

Người dùng là thành phần quan trọng nhất trong hệ thống Linux. Linux cung cấp các lệnh tích hợp cho quản trị viên cho phép họ quản lý người dùng một cách hiệu quả. Có một cái để tạo người dùng, xóa người dùng và thay đổi quyền của người dùng. Nhưng còn việc liệt kê tất cả những người dùng hiện đang có mặt trên một hệ thống thì sao?





Trong bài viết này, chúng tôi sẽ thảo luận về cách bạn có thể lấy danh sách tất cả người dùng trong Linux, cùng với hướng dẫn ngắn gọn để kiểm tra xem người dùng có tồn tại trên hệ thống hay không.





Cách hiển thị danh sách tất cả người dùng trong Linux

Khi bạn tạo người dùng mới, tên người dùng, mật khẩu và các chi tiết khác được lưu trữ trong các tệp cụ thể trên máy Linux. May mắn thay, Linux cho phép bạn đọc và sửa đổi các tệp như vậy mà không có bất kỳ hạn chế nào. Sử dụng các tệp này, bạn có thể biết thông tin liên quan đến người dùng như tên người dùng của họ, số lượng người dùng và hơn thế nữa.





Sử dụng tệp mật khẩu

Các passwd tệp là một tệp văn bản chứa các bản ghi mật khẩu của tất cả người dùng hiện có trong hệ thống của bạn. Tệp này nằm trong /Vân vân thư mục trong bộ nhớ cục bộ của bạn và chứa các thông tin sau:

  1. Tên người dùng
  2. Mật khẩu được mã hóa
  3. Tên người dùng
  4. ID nhóm của người dùng
  5. Họ và tên
  6. Các /Trang Chủ thư mục của người dùng
  7. Trình bao đăng nhập của người dùng

Kiểu cat / etc / passwd hoặc less / etc / passwd trong thiết bị đầu cuối của bạn để đọc tệp văn bản. Mở / etc / passwd tệp sẽ tạo ra một đầu ra giống như thế này.



root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh

Đầu ra nói trên chứa bảy trường chứa thông tin liên quan đến người dùng. Các trường này được phân tách bằng dấu phân cách --- trong trường hợp này là dấu hai chấm. Mỗi hàng trong đầu ra biểu thị một người dùng duy nhất.

Để có được danh sách tất cả các tên người dùng với sự trợ giúp của passwd tập tin:





awk -F: '{ print }' /etc/passwd

Awk là một tiện ích dòng lệnh cho phép người dùng Linux tạo các chương trình 'một dòng' đơn giản thực hiện các hoạt động nhanh chóng từ thiết bị đầu cuối. Trong đoạn mã nêu trên:

  1. -NS là viết tắt của Field phân cách. Vì ký tự dấu hai chấm là dấu phân cách trong / etc / passwd tệp, chúng tôi chuyển dấu hai chấm làm dấu phân cách trong lệnh awk.
  2. {in $ 1} hướng dẫn hệ thống in trường đầu tiên. Trong trường hợp này, trường đầu tiên là tên người dùng của người dùng.
  3. / etc / passwd tệp chứa dữ liệu liên quan đến người dùng.

Thực hiện lệnh trên sẽ xuất ra tên người dùng của tất cả người dùng. Kể từ khi / etc / passwd tệp chứa người dùng hệ thống, đầu ra cũng sẽ bao gồm tên người dùng của họ.





root
daemon
bin
sys
sync
games
man

Bạn có thể chỉnh sửa lệnh awk một chút để in tên đầy đủ của người dùng. Nhập lệnh sau để hiển thị tên đầy đủ của người dùng trong Linux:

awk -F: '{ print }' /etc/passwd

Vì người dùng hệ thống có cùng tên người dùng và tên đầy đủ, bạn sẽ không nhận thấy bất kỳ sự khác biệt nào trong đầu ra. Chỉ những người dùng mà bạn đã thêm vào hệ thống của mình mới có tên người dùng và tên đầy đủ khác nhau.

Ngoài ra, bạn cũng có thể sử dụng cắt thay vì lệnh awk. Cú pháp của lệnh cut khá giống với lệnh awk.

Để in tên người dùng trong Linux bằng cách sử dụng cut:

cut -d: f1 /etc/passwd

Ở đây, -NS là dấu phân cách, f1 biểu thị trường đầu tiên (tên người dùng) và / etc / passwd là tệp văn bản chứa dữ liệu.

tại sao mức sử dụng đĩa của tôi ở mức 100

Để in tên của người dùng bằng cách sử dụng cut:

cut -d: f5 /etc/passwd

Tương tự, bạn có thể xuất các trường khác từ / etc / passwd tập tin đơn giản bằng cách thay thế f5 với f1-f7 .

Có liên quan: Cách thay đổi mật khẩu Linux của bạn

Liệt kê người dùng bằng lệnh getent

Lệnh getent in nội dung của các tệp văn bản quan trọng đóng vai trò là cơ sở dữ liệu cho hệ thống. Các tệp như / etc / passwd/etc/nsswitch.conf chứa thông tin liên quan đến người dùng và mạng tương ứng và có thể được đọc bằng lệnh getent.

bộ định tuyến ở tầng hầm tín hiệu yếu ở tầng trên

Để in nội dung của / etc / passwd tập tin bằng getent:

getent passwd

Đầu ra sẽ chứa bảy trường khác nhau được phân tách bằng ký tự dấu hai chấm. Mỗi trường được dành riêng cho thông tin cụ thể bao gồm tên người dùng và đường dẫn thư mục chính của người dùng.

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh

Bạn có thể chuỗi lệnh getent với awk hoặc cut để chỉ lấy danh sách tên người dùng.

getent passwd | awk -F: '{print }'
getent passwd | cut -d: -f1

Để in tên đầy đủ của người dùng:

getent passwd | awk -F: '{print }'
getent passwd | cut -d: -f5

Kiểm tra xem người dùng có tồn tại hay không

Trong một số tình huống, bạn có thể muốn kiểm tra xem người dùng có tồn tại trên hệ thống Linux của bạn hay không. Các nắm chặt lệnh có ích khi bạn muốn lấy một mẫu văn bản cụ thể từ một tệp.

Bạn có thể sử dụng bất kỳ lệnh nào sau đây để kiểm tra sự tồn tại của người dùng.

compgen -u | grep username
getent passwd | grep username

Nếu người dùng tồn tại, thông tin đăng nhập được liên kết với họ sẽ được hiển thị trên màn hình. Ngược lại, nếu người dùng không có mặt trong hệ thống thì sẽ xảy ra lỗi.

Để kiểm tra xem người dùng có tồn tại trên hệ thống mà không sử dụng grep hay không:

getent passwd username

Bạn cũng có thể đặt getent hoặc compgen ra lệnh với nắm chặtquăng đi để hiển thị đầu ra tùy chỉnh.

getent passwd | grep -q username && echo 'User found' || echo 'User not found'
compgen -u | grep -q username && echo 'User found' || echo 'User not found'

Lệnh trên sẽ in 'Người dùng được tìm thấy' nếu người dùng tồn tại trên hệ thống và 'Không tìm thấy người dùng' nếu không có.

Đếm số lượng người dùng trên một hệ thống

Để đếm số lượng người dùng tồn tại trên hệ thống Linux:

compgen -u | wc -l
getent passwd | wc -l

Trong các lệnh trên, compgengetent có trách nhiệm hiển thị danh sách chứa tất cả người dùng và các thông tin khác liên quan đến họ. Các wc là viết tắt của đếm từ và được sử dụng để đếm số từ hoặc dòng trong đầu ra. Các -NS cờ biểu thị Dòng .

Xác minh tài khoản người dùng trong Linux

Mọi quản trị viên Linux nên biết cách họ có thể quản lý và quản trị những người dùng khác trên hệ thống. Thành thạo các lệnh Linux cho phép bạn tạo, xóa, kiểm soát và liệt kê những người dùng khác là một cách tuyệt vời để bắt đầu với quản lý người dùng.

Làm quen với môi trường Linux nên là mục tiêu đầu tiên của bạn nếu bạn chỉ là người mới bắt đầu. Có một số điều bạn phải làm ngay sau khi cài đặt bản phân phối Linux đầu tiên của mình. Học một số lệnh cơ bản là một trong số đó và là điều cần thiết để thực hiện các tác vụ tính toán đơn giản trên Linux.

Đăng lại Đăng lại tiếng riu ríu E-mail Cách bắt đầu sử dụng Linux

Quan tâm đến việc sử dụng Linux nhưng không biết bắt đầu từ đâu? Tìm hiểu cách sử dụng Linux, từ việc chọn bản phân phối đến cài đặt ứng dụng.

Đọc tiếp
Chủ đề liên quan
  • Linux
  • Linux
Giới thiệu về tác giả Deepesh Sharma(Đã xuất bản 79 bài báo)

Deepesh là Junior Editor cho Linux tại MUO. Anh ấy viết các hướng dẫn thông tin về Linux, nhằm mục đích cung cấp trải nghiệm thú vị cho tất cả những người mới đến. Không chắc về phim, nhưng nếu bạn muốn nói về công nghệ, anh ấy là người của bạn. Khi rảnh rỗi, bạn có thể bắt gặp anh ấy đọc sách, nghe các thể loại âm nhạc khác nhau hoặc chơi guitar.

Xem thêm từ Deepesh Sharma

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký