Làm chủ việc thêm người dùng trong Linux: Hướng dẫn toàn diện

2024-07-11

Giới thiệu

Linux là một hệ điều hành linh hoạt và mạnh mẽ, được sử dụng rộng rãi trong môi trường máy chủ, phát triển và các cơ sở hạ tầng CNTT khác nhau. Một trong những khía cạnh quan trọng của quản trị Linux là quản lý người dùng, bao gồm việc tạo, sửa đổi và xóa tài khoản người dùng. Quản lý người dùng đúng cách đảm bảo an ninh hệ thống, phân bổ tài nguyên có tổ chức và vận hành hệ thống hiệu quả.

Trong bài viết này, chúng tôi sẽ đề cập đến nhiều khía cạnh của việc thêm người dùng trong Linux, cung cấp các bước chi tiết, lệnh và các thực tiễn tốt nhất. Đến cuối hướng dẫn này, bạn sẽ có một hiểu biết vững chắc về cách quản lý tài khoản người dùng hiệu quả trong môi trường Linux.

Hiểu về Quản lý Người dùng trong Linux

Quản lý người dùng là một khía cạnh cơ bản của quản trị hệ thống Linux. Mỗi tài khoản người dùng đại diện cho một cá nhân hoặc một dịch vụ với các quyền và quyền truy cập cụ thể. Quản lý đúng cách các tài khoản này là rất quan trọng để duy trì an ninh và tổ chức hệ thống.

Tài khoản Người dùng và Vai trò của Chúng

Trong Linux, tài khoản người dùng được sử dụng để kiểm soát quyền truy cập vào hệ thống. Có hai loại tài khoản người dùng chính:

  1. Người dùng Root: Người dùng root có mức độ truy cập cao nhất và có thể thực hiện bất kỳ thao tác nào trên hệ thống. Nó được sử dụng cho các tác vụ quản trị và có quyền truy cập không hạn chế vào tất cả các tệp và lệnh.
  2. Người dùng Thường: Tài khoản người dùng thường có quyền hạn hạn chế và thường được sử dụng cho các tác vụ hàng ngày. Họ không thể thực hiện các chức năng quản trị trừ khi được cấp phép rõ ràng.

Sự khác biệt giữa Người dùng Root và Người dùng Thường

  • Người dùng Root: Tài khoản root (còn được gọi là siêu người dùng) có quyền kiểm soát hoàn toàn hệ thống. Nó có thể sửa đổi các tệp hệ thống, thay đổi cấu hình hệ thống và quản lý các tài khoản người dùng khác. Do khả năng mạnh mẽ của nó, việc sử dụng tài khoản root cần được thực hiện cẩn thận để tránh gây hại không mong muốn cho hệ thống.
  • Người dùng Thường: Tài khoản người dùng thường được thiết kế cho việc sử dụng hàng ngày và có quyền hạn hạn chế. Họ có thể tạo tệp, chạy chương trình và truy cập vào thư mục của riêng họ nhưng không thể thay đổi các cài đặt toàn hệ thống hoặc tệp của người dùng khác.

Tầm quan trọng của việc Quản lý Người dùng Đúng cách

Quản lý người dùng đúng cách là rất quan trọng vì nhiều lý do:

  • An ninh: Bằng cách kiểm soát quyền truy cập và quyền hạn của người dùng, bạn có thể ngăn chặn quyền truy cập trái phép vào dữ liệu nhạy cảm và các thành phần quan trọng của hệ thống.
  • Tổ chức: Tài khoản người dùng giúp tổ chức các tệp và quy trình, làm cho việc quản lý tài nguyên và khắc phục sự cố dễ dàng hơn.
  • Trách nhiệm: Mỗi tài khoản người dùng có thể được theo dõi và giám sát, đảm bảo trách nhiệm cho các hành động thực hiện trên hệ thống.

Chuẩn bị để Thêm một Người dùng

Trước khi thêm một người dùng mới vào hệ thống Linux, điều quan trọng là đảm bảo bạn có quyền hạn cần thiết và hiểu rõ về bối cảnh người dùng hiện tại. Phần này sẽ hướng dẫn bạn qua các bước chuẩn bị cần thiết để thêm một người dùng.

Đăng nhập với tư cách Người dùng Root hoặc Sử dụng Sudo

Để thêm một người dùng trong Linux, bạn cần có quyền root. Bạn có thể đăng nhập với tư cách người dùng root hoặc sử dụng lệnh sudo để thực hiện các tác vụ quản trị với tài khoản người dùng thường của bạn.

  • Đăng nhập với tư cách Người dùng Root: Nếu bạn có quyền truy cập trực tiếp vào tài khoản root, bạn có thể chuyển sang người dùng root bằng lệnh sau:

    su -
    

    Nhập mật khẩu root khi được yêu cầu.

  • Sử dụng Sudo: Nếu tài khoản người dùng của bạn có quyền sudo, bạn có thể thêm sudo vào các lệnh quản trị để thực hiện chúng với quyền root. Ví dụ:

    sudo command
    

    Bạn sẽ cần nhập mật khẩu người dùng của mình để xác nhận lệnh.

Kiểm tra Người dùng Hiện tại trên Hệ thống

Trước khi thêm một người dùng mới, điều hữu ích là kiểm tra các người dùng hiện có trên hệ thống để tránh xung đột tiềm ẩn và hiểu rõ về cấu hình người dùng hiện tại. Bạn có thể xem danh sách người dùng bằng cách kiểm tra tệp /etc/passwd:

cat /etc/passwd

Lệnh này sẽ hiển thị danh sách tất cả các tài khoản người dùng trên hệ thống, cùng với thông tin liên quan của chúng.

Mỗi dòng trong tệp /etc/passwd đại diện cho một tài khoản người dùng và theo định dạng này:

username:x:UID:GID:comment:home_directory:shell
  • username: Tên của người dùng.
  • x: Một chỗ giữ chỗ cho mật khẩu (các mật khẩu thực tế được lưu trữ trong /etc/shadow).
  • UID: Số ID người dùng.
  • GID: Số ID nhóm.
  • comment: Một trường cho thông tin bổ sung về người dùng (ví dụ: tên đầy đủ).
  • home_directory: Đường dẫn đến thư mục chính của người dùng.
  • shell: Shell mặc định được gán cho người dùng.

Thêm một Người dùng Mới

Thêm một người dùng mới trong Linux là rất đơn giản với lệnh useradd. Phần này sẽ đề cập đến cú pháp cơ bản và các tùy chọn để tạo một tài khoản người dùng mới.

Giới thiệu về Lệnh useradd

Lệnh useradd được sử dụng để tạo một tài khoản người dùng mới. Nó cho phép bạn chỉ định nhiều tùy chọn khác nhau như thư mục chính, shell và thông tin người dùng.

Cú pháp Cơ bản và Tùy chọn cho useradd

Cú pháp cơ bản cho lệnh useradd là:

useradd [options] username

Các tùy chọn thường được sử dụng bao gồm:

  • -m: Tạo thư mục chính của người dùng nếu nó không tồn tại.
  • -d: Chỉ định đường dẫn cho thư mục chính của người dùng.
  • -s: Chỉ định shell mặc định cho người dùng.
  • -c: Thêm một chú thích (ví dụ: tên đầy đủ) cho người dùng.
  • -G: Chỉ định các nhóm bổ sung cho người dùng.

Ví dụ về Thêm một Người dùng Mới

Hãy thêm một người dùng mới có tên là newuser với một thư mục chính và một shell được chỉ định:

sudo useradd -m -d /home/newuser -s /bin/bash -c "Người dùng Mới" newuser

Trong ví dụ này:

  • -m: Tạo thư mục chính /home/newuser.
  • -d /home/newuser: Chỉ định đường dẫn thư mục chính.
  • -s /bin/bash: Đặt shell mặc định là Bash.
  • -c "Người dùng Mới": Thêm một chú thích với tên đầy đủ "Người dùng Mới".
  • newuser: Tên người dùng cho tài khoản mới.

Sau khi thực hiện lệnh này, tài khoản người dùng mới được tạo, nhưng tài khoản chưa có mật khẩu. Trong phần tiếp theo, chúng tôi sẽ đề cập đến cách đặt mật khẩu cho người dùng mới.

Đặt Mật khẩu cho Người dùng Mới

Đặt một mật khẩu mạnh cho mỗi người dùng là rất quan trọng để duy trì an ninh hệ thống. Phần này sẽ giải thích cách đặt mật khẩu cho một người dùng mới bằng lệnh passwd.

Sử dụng Lệnh passwd để Đặt Mật khẩu

Để đặt hoặc thay đổi mật khẩu của một người dùng, sử dụng lệnh passwd theo sau là tên người dùng. Bạn sẽ được yêu cầu nhập và xác nhận mật khẩu mới.

sudo passwd newuser

Theo dõi các yêu cầu để nhập và xác nhận mật khẩu. Đảm bảo mật khẩu mạnh và đáp ứng các chính sách bảo mật của hệ thống bạn.

Với mật khẩu đã được đặt, tài khoản người dùng mới giờ đây đã hoàn toàn hoạt động. Trong các phần tiếp theo, chúng tôi sẽ khám phá các tác vụ quản lý người dùng bổ sung, chẳng hạn như thêm chi tiết người dùng và quản lý nhóm người dùng.

Thêm Chi tiết Người dùng

Thêm các chi tiết bổ sung vào tài khoản người dùng có thể giúp trong việc quản trị hệ thống và xác định người dùng. Lệnh chfn (thay đổi thông tin người dùng) được sử dụng để sửa đổi thông tin người dùng như tên đầy đủ, số phòng, điện thoại công việc và điện thoại nhà.

Sử dụng Lệnh chfn

Lệnh chfn cho phép bạn cập nhật thông tin cá nhân của người dùng. Cú pháp là:

sudo chfn newuser

Khi bạn chạy lệnh này, bạn sẽ được yêu cầu nhập các chi tiết sau:

  • Tên đầy đủ
  • Số phòng
  • Điện thoại công việc
  • Điện thoại nhà
  • Khác

Bạn cũng có thể chỉ định các chi tiết này trực tiếp bằng cách sử dụng các tùy chọn. Ví dụ:

sudo chfn -f "Người dùng Mới" -r "123" -w "123-456-7890" -h "098-765-4321" newuser

Trong ví dụ này:

  • -f "Người dùng Mới": Đặt tên đầy đủ là "Người dùng Mới".
  • -r "123": Đặt số phòng là "123".
  • -w "123-456-7890": Đặt số điện thoại công việc.
  • -h "098-765-4321": Đặt số điện thoại nhà.

Quản lý Nhóm Người dùng

Trong Linux, các nhóm được sử dụng để tổ chức và quản lý quyền của người dùng. Mỗi người dùng thuộc về ít nhất một nhóm, và các nhóm bổ sung có thể được chỉ định để quản lý quyền truy cập vào tài nguyên hiệu quả hơn.

Giải thích về Nhóm Chính và Nhóm Phụ

  • Nhóm Chính: Mỗi người dùng có một nhóm chính, được chỉ định tại thời điểm tạo người dùng. Các tệp được tạo bởi người dùng sẽ được liên kết với nhóm này.
  • Nhóm Phụ: Người dùng có thể thuộc về nhiều nhóm phụ. Các nhóm này cung cấp quyền bổ sung và quyền truy cập vào tài nguyên.

Thêm một Người dùng vào Nhóm Sử dụng usermod

Lệnh usermod được sử dụng để sửa đổi tài khoản người dùng, bao gồm việc thêm người dùng vào các nhóm. Tùy chọn -aG thêm người dùng vào nhóm được chỉ định mà không xóa họ khỏi các nhóm khác.

Cú pháp để thêm một người dùng vào một nhóm là:

sudo usermod -aG groupname newuser

Ví dụ, để thêm newuser vào nhóm sudo, nhóm cấp quyền quản trị, bạn sẽ sử dụng:

sudo usermod -aG sudo newuser

Thêm Nhiều Nhóm

Bạn có thể thêm một người dùng vào nhiều nhóm bằng cách chỉ định danh sách các nhóm phân tách bằng dấu phẩy:

sudo usermod -aG group1,group2,group3 newuser

Lệnh này thêm newuser vào group1, group2group3.

Xem Nhóm Người dùng

Để xác minh các nhóm mà một người dùng thuộc về, sử dụng lệnh groups theo sau là tên người dùng:

groups newuser

Lệnh này sẽ hiển thị danh sách các nhóm mà người dùng newuser là thành viên.

Tạo một Nhóm Mới

Nếu bạn cần tạo một nhóm mới trước khi thêm người dùng vào đó, sử dụng lệnh groupadd:

sudo groupadd groupname

Ví dụ, để tạo một nhóm mới có tên là developers, bạn sẽ sử dụng:

sudo groupadd developers

Đặt Thư mục Chính và Shell của Người dùng

Khi tạo một người dùng mới, điều quan trọng là đặt thư mục chính và shell mặc định một cách phù hợp. Thư mục chính là nơi lưu trữ các tệp và cài đặt cá nhân của người dùng, trong khi shell là giao diện dòng lệnh mà người dùng sẽ tương tác.

Tầm quan trọng của Thư mục Chính và Shell

  • Thư mục Chính: Đây là không gian cá nhân cho mỗi người dùng nơi họ có thể lưu trữ tệp, cấu hình và sở thích. Nó thường nằm dưới /home/username.
  • Shell: Shell là giao diện cho phép người dùng tương tác với hệ điều hành thông qua các lệnh. Các shell phổ biến bao gồm Bash, Zsh và Sh.

Chỉ định Thư mục Chính và Shell trong Quá trình Tạo Người dùng

Khi tạo một người dùng mới, bạn có thể chỉ định thư mục chính và shell bằng cách sử dụng lệnh useradd với các tùy chọn -d-s, tương ứng.

Ví dụ: Tạo một Người dùng với Thư mục Chính và Shell Tùy chỉnh

Để tạo một người dùng với một thư mục chính và shell cụ thể, bạn có thể sử dụng:

sudo useradd -m -d /custom/home/directory -s /bin/zsh -c "Người dùng với Thư mục và Shell Tùy chỉnh" customuser

Trong ví dụ này:

  • -m: Tạo thư mục chính nếu nó không tồn tại.
  • -d /custom/home/directory: Chỉ định đường dẫn tùy chỉnh cho thư mục chính của người dùng.
  • -s /bin/zsh: Đặt shell mặc định là Zsh.
  • -c "Người dùng với Thư mục và Shell Tùy chỉnh": Thêm một chú thích với tên đầy đủ của người dùng.
  • customuser: Tên người dùng cho tài khoản mới.

Lệnh này tạo một người dùng mới với thư mục chính và shell tùy chỉnh, phù hợp với nhu cầu cụ thể.

Quản lý Người dùng Nâng cao

Ngoài việc tạo người dùng cơ bản, Linux cung cấp các công cụ và lệnh nâng cao để quản lý người dùng hiệu quả hơn. Phần này sẽ đề cập đến một số tác vụ quản lý người dùng nâng cao, bao gồm việc sử dụng kịch bản adduser, quản lý hạn mức người dùng và khóa/mở khóa tài khoản người dùng.

Sử dụng Kịch bản adduser để Tạo Người dùng Tương tác

Lệnh adduser là một kịch bản thân thiện cung cấp một cách tương tác để tạo người dùng mới. Nó yêu cầu thông tin như tên đầy đủ, số phòng và mật khẩu, giúp dễ dàng hơn cho người mới bắt đầu.

Để sử dụng adduser, chỉ cần chạy:

sudo adduser newuser

Bạn sẽ được yêu cầu nhập các chi tiết bổ sung một cách tương tác, đơn giản hóa quy trình tạo người dùng.

Quản lý Hạn mức và Quyền của Người dùng

Hạn mức người dùng được sử dụng để giới hạn lượng không gian đĩa hoặc số lượng tệp mà một người dùng có thể sử dụng. Điều này hữu ích để ngăn chặn một người dùng duy nhất tiêu tốn tất cả tài nguyên hệ thống.

Thiết lập Hạn mức Đĩa

Để thiết lập hạn mức đĩa, làm theo các bước sau:

  1. Cài đặt Gói Hạn mức: Cài đặt gói hạn mức nếu nó chưa được cài đặt.

    sudo apt-get install quota
    
  2. Kích hoạt Hạn mức trên Các Hệ thống Tập tin: Chỉnh sửa tệp /etc/fstab để kích hoạt hạn mức trên các hệ thống tập tin mong muốn. Thêm tùy chọn usrquotagrpquota.

    /dev/sda1 / ext4 defaults,usrquota,grpquota 0 1
    
  3. Gắn lại Hệ thống Tập tin: Gắn lại hệ thống tập tin để áp dụng các thay đổi.

    sudo mount -o remount /
    
  4. Tạo Tệp Hạn mức: Tạo các tệp hạn mức bằng lệnh quotacheck.

    sudo quotacheck -cum /
    
  5. Thiết lập Hạn mức cho Người dùng: Sử dụng lệnh edquota để chỉnh sửa hạn mức cho một người dùng cụ thể.

    sudo edquota newuser
    
  6. Kích hoạt Hạn mức: Kích hoạt hạn mức bằng lệnh quotaon.

    sudo quotaon /
    

Khóa và Mở khóa Tài khoản Người dùng

Có những lúc bạn có thể cần tạm thời vô hiệu hóa một tài khoản người dùng mà không xóa nó. Điều này có thể được thực hiện bằng cách khóa tài khoản.

  • Khóa một Tài khoản: Sử dụng lệnh passwd với tùy chọn -l.

    sudo passwd -l newuser
    
  • Mở khóa một Tài khoản: Sử dụng lệnh passwd với tùy chọn -u.

    sudo passwd -u newuser
    

Xóa một Người dùng

Khi một tài khoản người dùng không còn cần thiết, nó nên được xóa để giải phóng tài nguyên và duy trì an ninh hệ thống. Phần này đề cập đến cách xóa một người dùng một cách an toàn và các tệp liên quan của họ.

An toàn Xóa một Người dùng và Thư mục Chính của Họ

Để xóa một tài khoản người dùng, sử dụng lệnh userdel. Bạn cũng có thể xóa thư mục chính và hộp thư của người dùng bằng cách thêm tùy chọn -r.

Ví dụ: Xóa một Người dùng

sudo userdel newuser

Ví dụ: Xóa một Người dùng và Thư mục Chính của Họ

sudo userdel -r newuser

Các Thực tiễn Tốt nhất và Cân nhắc về An ninh

Quản lý người dùng đúng cách không chỉ là tạo và xóa tài khoản. Nó bao gồm việc kiểm tra định kỳ, thực thi các chính sách bảo mật và giám sát hoạt động của người dùng. Phần này cung cấp các thực tiễn tốt nhất để duy trì một hệ thống an toàn và có tổ chức.

Kiểm tra Định kỳ Tài khoản Người dùng

  • Xem xét Tài khoản Người dùng: Định kỳ xem xét các tệp /etc/passwd/etc/group để đảm bảo rằng tất cả các tài khoản người dùng là hợp lệ và cần thiết.
  • Kiểm tra Tài khoản Không hoạt động: Xác định và vô hiệu hóa các tài khoản đã không hoạt động trong một thời gian dài.

Thực thi Chính sách Mật khẩu

  • Mật khẩu Mạnh: Thực thi việc sử dụng mật khẩu mạnh bằng cách thiết lập các yêu cầu về độ phức tạp và chính sách hết hạn.
  • Tuổi thọ Mật khẩu: Sử dụng lệnh chage để thiết lập chính sách tuổi thọ mật khẩu.
    sudo chage -M 90 newuser  # Đặt mật khẩu hết hạn sau 90 ngày
    

Giám sát Hoạt động và Quyền Truy cập của Người dùng

  • Giám sát Nhật ký: Thường xuyên giám sát các tệp nhật ký như /var/log/auth.log để theo dõi hoạt động đăng nhập của người dùng và phát hiện bất kỳ hành vi đáng ngờ nào.
  • Kiểm soát Quyền Truy cập: Sử dụng các công cụ như pam_tally2 để giới hạn số lần đăng nhập không thành công và khóa tài khoản sau quá nhiều lần thử không thành công.

Các Biện pháp An ninh Bổ sung

  • Xác thực Hai yếu tố: Triển khai xác thực hai yếu tố (2FA) để tăng cường bảo mật.
  • Kiểm soát Quyền Sudo: Hạn chế và giám sát việc sử dụng sudo để đảm bảo rằng chỉ những người dùng đáng tin cậy mới có quyền quản trị.

Linux Thêm Người dùng

Câu hỏi Thường gặp

Làm thế nào để tôi tạo một người dùng mới trong Linux?

Để tạo một người dùng mới, sử dụng lệnh useradd theo sau là tên người dùng. Ví dụ:

sudo useradd -m -s /bin/bash newuser

Lệnh này tạo một người dùng mới với thư mục chính và Bash là shell mặc định.

Làm thế nào để tôi đặt mật khẩu cho một người dùng mới?

Sử dụng lệnh passwd theo sau là tên người dùng để đặt mật khẩu:

sudo passwd newuser

Bạn sẽ được yêu cầu nhập và xác nhận mật khẩu mới.

Làm thế nào tôi có thể thêm một người dùng vào một nhóm?

Để thêm một người dùng vào một nhóm, sử dụng lệnh usermod với tùy chọn -aG:

sudo usermod -aG groupname newuser

Làm thế nào để tôi xóa một người dùng trong Linux?

Để xóa một người dùng, sử dụng lệnh userdel. Để cũng xóa thư mục chính của người dùng, thêm tùy chọn -r:

sudo userdel -r newuser

Sự khác biệt giữa useraddadduser là gì?

  • useradd là lệnh cấp thấp để thêm người dùng.
  • adduser là một kịch bản cấp cao hơn sử dụng useradd bên dưới nhưng cung cấp một cách thân thiện hơn, tương tác để thêm người dùng.

Làm thế nào để tôi thay đổi shell mặc định của một người dùng?

Bạn có thể thay đổi shell mặc định của một người dùng bằng lệnh chsh:

sudo chsh -s /bin/zsh newuser

Ngoài ra, bạn có thể sử dụng lệnh usermod:

sudo usermod -s /bin/zsh newuser

Làm thế nào tôi có thể kiểm tra các nhóm mà một người dùng thuộc về?

Sử dụng lệnh groups theo sau là tên người dùng:

groups newuser

Làm thế nào để tôi khóa và mở khóa một tài khoản người dùng?

  • Để khóa một tài khoản người dùng:
    sudo passwd -l newuser
    
  • Để mở khóa một tài khoản người dùng:
    sudo passwd -u newuser
    

Làm thế nào để tôi tạo một nhóm mới?

Sử dụng lệnh groupadd theo sau là tên nhóm:

sudo groupadd groupname

Làm thế nào để tôi thêm nhiều người dùng vào một nhóm cùng một lúc?

Bạn có thể thêm nhiều người dùng vào một nhóm bằng cách liệt kê các người dùng phân tách bằng dấu phẩy với lệnh usermod:

sudo usermod -aG groupname user1,user2,user3

Làm thế nào để tôi thực thi các chính sách mật khẩu cho người dùng?

Sử dụng lệnh chage để thiết lập các chính sách tuổi thọ mật khẩu:

sudo chage -M 90 newuser

Điều này đặt mật khẩu hết hạn sau 90 ngày.

Làm thế nào tôi có thể tạo một người dùng với UID và GID cụ thể?

Sử dụng lệnh useradd với các tùy chọn -u-g:

sudo useradd -u 1001 -g 1001 -m -s /bin/bash customuser

Điều này tạo một người dùng với UID 1001 và GID 1001.

Làm thế nào để tôi cấp quyền sudo cho một người dùng?

Thêm người dùng vào nhóm sudo bằng lệnh usermod:

sudo usermod -aG sudo newuser

Trên một số phân phối, nhóm có thể được gọi là wheel:

sudo usermod -aG wheel newuser

Làm thế nào để tôi liệt kê tất cả người dùng trên một hệ thống Linux?

Xem tệp /etc/passwd:

cat /etc/passwd

Mỗi dòng đại diện cho một tài khoản người dùng.

Làm thế nào để tôi thay đổi thông tin người dùng như tên đầy đủ hoặc số điện thoại?

Sử dụng lệnh chfn:

sudo chfn newuser

Theo dõi các yêu cầu để nhập thông tin mới.