CodeGym /Các khóa học /Docker SELF /Quản lý người dùng: các lệnh adduser, usermod, passwd

Quản lý người dùng: các lệnh adduser, usermod, passwd

Docker SELF
Mức độ , Bài học
Có sẵn

Quản lý người dùng: các lệnh adduser, usermod, passwd

1. Tại sao việc hiểu quản lý người dùng lại quan trọng?

Hôm nay tụi mình sẽ tìm hiểu sâu về quản lý người dùng, bởi vì đây là một phần quan trọng của việc quản trị Linux. Tạo người dùng, cấu hình môi trường cho họ và quản lý mật khẩu của họ – tất cả những thứ này sẽ trở thành bộ công cụ quan trọng cho công việc của bạn. Nào bắt đầu thôi!

Thường thì trong Linux, sẽ có rất nhiều người dùng làm việc trên cùng một server. Hệ thống cung cấp cho mỗi người những quyền nhất định để bảo vệ dữ liệu và tránh sự hỗn loạn. Bạn cần biết cách thêm người dùng mới (ví dụ như các lập trình viên trong nhóm của bạn), cấu hình môi trường của họ (ví dụ thay đổi shell) và khi cần thiết, giới hạn quyền truy cập.


2. Tạo người dùng bằng adduser

Linux cung cấp lệnh adduser, đây là một biến thể thân thiện hơn của lệnh useradd. Nó cho phép tạo người dùng mới một cách dễ dàng và nhanh chóng:

Cú pháp chính

adduser tên_người_dùng

Điều gì xảy ra khi tạo người dùng?

  1. Một mục mới được tạo trong tệp /etc/passwd cho người dùng.
  2. Thư mục chính được tạo (ví dụ: /home/tên_người_dùng).
  3. Các thiết lập cơ bản được định cấu hình (ví dụ: shell mặc định).
  4. Bạn sẽ được yêu cầu nhập mật khẩu và các thông tin bổ sung (ví dụ: tên, số điện thoại — nhưng các dữ liệu này không bắt buộc).

Ví dụ

Chúng ta hãy tạo một người dùng mới với tên dev_user:

sudo adduser dev_user

Sau khi nhập lệnh này, bạn sẽ được yêu cầu:

  1. Đặt mật khẩu cho người dùng.
  2. Nhập thông tin bổ sung, có thể bỏ qua bằng cách nhấn Enter.

Kiểm tra

Để đảm bảo người dùng đã được tạo, bạn có thể kiểm tra tệp /etc/passwd:

cat /etc/passwd | grep dev_user

Bạn sẽ thấy một dòng chứa thông tin về người dùng dev_user.


3. Cấu hình người dùng bằng usermod

Khi người dùng đã được tạo, có thể sẽ cần thay đổi các thông số của họ. Ví dụ, đổi tên, chỉ định shell khác hoặc thêm vào nhóm.

Thay đổi tên người dùng

Trước tiên, hãy đảm bảo rằng người dùng chưa đăng nhập vào hệ thống. Sau đó thực hiện lệnh:

sudo usermod -l ten_moi ten_cu

Ví dụ:

sudo usermod -l developer dev_user

Bây giờ người dùng dev_user sẽ được đổi tên thành developer. Tuy nhiên, thư mục home của họ vẫn sẽ giữ nguyên tên cũ.

Thay đổi shell mặc định

Giả sử bạn muốn thay đổi shell của người dùng thành /bin/zsh. Để làm điều này, thực hiện lệnh:

sudo usermod --shell /bin/zsh developer

Kiểm tra xem shell đã thay đổi chưa bằng lệnh:

cat /etc/passwd | grep developer

Thay đổi thư mục home

Nếu bạn muốn người dùng mới làm việc trong một thư mục home khác, hãy làm như sau:

sudo usermod -d /thu_muc_moi developer
Quan trọng:

nếu thư mục chưa tồn tại, sử dụng tuỳ chọn -m để nó được tạo và nội dung của thư mục cũ được chuyển đi:

sudo usermod -d /home/new_developer -m developer

4. Quản lý mật khẩu bằng passwd

Cài đặt và thay đổi mật khẩu

Để cài đặt (hoặc thay đổi) mật khẩu của người dùng, bạn sử dụng lệnh:

sudo passwd tên_người_dùng

Ví dụ:

sudo passwd developer

Hệ thống sẽ yêu cầu bạn nhập mật khẩu mới hai lần để đảm bảo không bị sai sót.

Bắt buộc thay đổi mật khẩu khi đăng nhập lần tới

Điều này hữu ích khi bạn tạo người dùng mới và muốn họ tự đặt mật khẩu trong lần đăng nhập đầu tiên:

sudo passwd -e developer

Sau đó, người dùng developer khi đăng nhập vào hệ thống sẽ nhận thông báo cần thay đổi mật khẩu.


5. Thực hành

Bài tập 1: Tạo người dùng mới

  1. Thêm người dùng tester:

    sudo adduser tester
    
  2. Đảm bảo rằng người dùng đã được tạo:

    cat /etc/passwd | grep tester
    

Bài tập 2: Thiết lập thông số người dùng

  1. Thay đổi tên người dùng:

    sudo usermod -l test_user tester
    
  2. Thay đổi thư mục home của người dùng:

    sudo usermod -d /home/test_user -m test_user
    
  3. Đảm bảo rằng các thay đổi đã được áp dụng:

    ls -l /home/
    
  4. Thay đổi shell của người dùng:

    sudo usermod --shell /bin/zsh test_user
    
  5. Kiểm tra dữ liệu người dùng đã được cập nhật:

    cat /etc/passwd | grep test_user
    

Bài tập 3: Đặt mật khẩu mới cho người dùng

  1. Đặt mật khẩu cho người dùng:

    sudo passwd test_user
    
  2. Bắt buộc người dùng đổi mật khẩu ở lần đăng nhập tiếp theo:

    sudo passwd -e test_user
    

6. Giới thiệu về pipe | trong Linux

Pipe | là một cơ chế trong Unix/Linux, cho phép chuyển đầu ra của một lệnh (stdout) làm đầu vào (stdin) cho lệnh khác. Đây là một công cụ mạnh mẽ, giúp kết hợp các lệnh, tạo ra "dây chuyền" xử lý dữ liệu.

Nó hoạt động thế nào?

Khi bạn sử dụng pipe giữa các lệnh, Linux chuyển đầu ra tiêu chuẩn của lệnh đầu tiên vào đầu vào tiêu chuẩn của lệnh tiếp theo. Điều này giúp xử lý hiệu quả khối lượng lớn dữ liệu mà không cần tới các file tạm thời.

Cú pháp:

lệnh1 | lệnh2 | lệnh3
  • lệnh1 tạo ra dữ liệu.
  • lệnh2 xử lý dữ liệu nhận được.
  • lệnh3 thực hiện xử lý bổ sung hoặc lưu kết quả.

Ví dụ:

Hiển thị danh sách file và lọc theo mẫu:

ls -l | grep ".txt"

Ở đây ls -l hiển thị danh sách file, còn grep lọc chỉ các file có đuôi .txt.

Đếm số dòng chứa một từ cụ thể:

cat file.txt | grep "Linux" | wc -l

Cách này lần lượt hiển thị nội dung file, tìm các dòng chứa "Linux", rồi đếm số lượng của chúng.

Lợi ích của pipe:

  • Đơn giản hóa các thao tác phức tạp.
  • Giảm thiểu việc sử dụng các file tạm thời.
  • Có thể kết hợp các công cụ mạnh mẽ của Linux để tự động hóa công việc.

7. Làm quen với grep trong Linux

grep (Global Regular Expression Print) — là công cụ dòng lệnh trong Unix/Linux để tìm kiếm các dòng trong tệp mà khớp với mẫu đã chỉ định. Nó được sử dụng rộng rãi để lọc và tìm kiếm dữ liệu nhờ hỗ trợ các biểu thức chính quy và các tùy chỉnh linh hoạt.

grep hoạt động như thế nào?

  • grep nhận vào một tệp văn bản (hoặc đầu vào chuẩn), tìm kiếm các dòng khớp với mẫu đã chỉ định và xuất chúng ra.
  • Nếu không tìm thấy mẫu, lệnh sẽ không xuất ra bất kỳ điều gì.

Ví dụ

Hiển thị danh sách tệp và lọc theo mẫu:

ls -l | grep ".txt"
  1. Đầu tiên, lệnh ls -l chạy, hiển thị danh sách tệp trong thư mục hiện tại
  2. Đầu ra của lệnh đầu tiên ls được chuyển bằng pipeline | làm đầu vào cho lệnh thứ hai grep
  3. Lệnh thứ hai lọc các dòng được gửi đến nó và chỉ xuất các dòng chứa ".txt"

Đếm các dòng chứa một từ cụ thể:

cat file.txt | grep "Linux" | wc -l
  1. Đầu tiên, lệnh cat file.txt chạy, hiển thị nội dung của file file.txt
  2. Đầu ra của lệnh đầu tiên cat được chuyển bằng pipeline | làm đầu vào cho lệnh thứ hai grep
  3. Lệnh thứ hai lọc các dòng được gửi đến nó và chỉ xuất các dòng chứa Linux
  4. Sau đó đầu ra của lệnh thứ hai grep được chuyển bằng pipeline | làm đầu vào cho lệnh thứ ba wc
  5. Lệnh thứ ba đếm số dòng được gửi đến nó và hiển thị số lượng đó

8. Lỗi phổ biến và lưu ý

  1. Lỗi "user is currently logged in" khi đổi tên người dùng. Nếu người dùng đã đăng nhập vào hệ thống, bạn không thể thay đổi tên của họ. Hãy đảm bảo người dùng đã đăng xuất.

  2. Lỗi khi thay đổi thư mục home. Nếu quên chỉ định -m, nội dung của thư mục cũ sẽ không được chuyển đến thư mục mới. Người dùng có thể bị mất dữ liệu của mình.

  3. Quên đặt mật khẩu cho người dùng. Sau khi tạo người dùng bằng adduser, hãy kiểm tra chắc chắn đã đặt mật khẩu cho họ. Nếu không có mật khẩu, họ sẽ không thể đăng nhập.

  4. Giá trị của UIDGID. Đôi khi quản trị viên muốn chỉ định giá trị UID (ID người dùng) và GID (ID nhóm) khi tạo người dùng. Để làm điều này, sử dụng lệnh useradd, nhưng đây là chủ đề cho nghiên cứu sâu hơn về Linux.


9. Ứng dụng thực tế

Hãy tưởng tượng: bạn là quản trị viên máy chủ của công ty. Các nhà phát triển đến gặp bạn và mỗi người trong số họ cần truy cập vào hệ thống với các cài đặt riêng. Bạn có thể:

  • Tạo người dùng và phân phối quyền truy cập cần thiết cho họ.
  • Cài đặt môi trường (ví dụ: shell) tùy theo sở thích của họ.
  • Quản lý mật khẩu và đảm bảo an toàn.

Những lệnh này cũng sẽ rất hữu ích khi đi phỏng vấn vị trí DevOps hoặc quản trị hệ thống. Người ta có thể hỏi bạn cách tạo và cài đặt người dùng hoặc yêu cầu bạn thực hiện bài tập này theo cách thực tế.


Ghi chú nhanh: các lệnh cơ bản

Lệnh Mô tả
sudo adduser ten_nguoi_dung Tạo một người dùng mới.
sudo usermod -l ten_moi ten_cu Đổi tên người dùng.
sudo usermod --shell duong_dan ten Chỉ định shell mặc định.
sudo usermod -d duong_dan ten Thay đổi thư mục chính.
sudo passwd ten Đặt mật khẩu mới.
sudo passwd -e ten Bắt buộc thay đổi mật khẩu lần đăng nhập tiếp theo.

Thực hành đi nào! Linux luôn yêu cầu làm việc bằng tay. Càng thử nghiệm nhiều với các lệnh, bạn sẽ càng dễ dàng làm việc với các hệ thống thực tế.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION