Quản Lý User Và Group Trên Linux
Giới Thiệu
Quản lý người dùng (user) và nhóm (group) là một trong những kỹ năng cơ bản và quan trọng nhất đối với bất kỳ quản trị viên hệ thống Linux nào. Nó không chỉ giúp bạn kiểm soát ai có thể truy cập hệ thống và tài nguyên nào mà còn là nền tảng vững chắc cho bảo mật hệ thống. Hiểu rõ cách tạo, chỉnh sửa và xóa user/group sẽ giúp bạn duy trì một môi trường Linux an toàn và có tổ chức.
📋 Thời gian: 30 phút | Độ khó: Cơ bản
Yêu Cầu
Để thực hiện theo hướng dẫn này, bạn cần:
- Một hệ thống Linux đang hoạt động (Ubuntu, CentOS, Debian, Fedora, v.v.).
- Truy cập vào terminal/dòng lệnh.
- Quyền
sudohoặc quyền truy cập tài khoảnroot.
Các Bước Thực Hiện
Bước 1: Hiểu về User và Group trong Linux
Trong Linux, mọi thứ đều được xem là một tệp (file), và mọi tệp đều có chủ sở hữu (owner) và một nhóm (group) liên kết.
- User (Người dùng): Là một tài khoản cá nhân được cấp quyền truy cập vào hệ thống. Mỗi user có một ID người dùng (UID) duy nhất và một thư mục chính (home directory) riêng.
- Group (Nhóm): Là một tập hợp các user. Quyền hạn có thể được gán cho một nhóm, và tất cả các user thuộc nhóm đó sẽ kế thừa các quyền hạn đó. Điều này giúp đơn giản hóa việc quản lý quyền truy cập cho nhiều user có nhu cầu tương tự.
Bước 2: Quản lý Người dùng (User)
Tạo User Mới
Lệnh useradd được sử dụng để tạo một tài khoản user mới.
sudo useradd ten_nguoi_dung_moi
Ví dụ:
sudo useradd nguoidungmoi
Lệnh trên sẽ tạo một user mới tên nguoidungmoi nhưng chưa có thư mục chính (/home/nguoidungmoi) và mật khẩu. Để tự động tạo thư mục chính và các cài đặt mặc định khác, bạn nên dùng tùy chọn -m:
sudo useradd -m nguoidungmoi
💡 Mẹo: Nếu bạn muốn chỉ định shell mặc định, thư mục chính hoặc các tùy chọn khác ngay khi tạo, bạn có thể sử dụng các tùy chọn của useradd như -s (shell), -d (home directory), -g (primary group), -G (supplementary groups).
Đặt Mật khẩu cho User
Sau khi tạo user, bạn cần đặt mật khẩu cho họ bằng lệnh passwd.
sudo passwd ten_nguoi_dung
Ví dụ:
sudo passwd nguoidungmoi
Hệ thống sẽ yêu cầu bạn nhập mật khẩu hai lần.
✅ Thành công: Sau khi đặt mật khẩu, user nguoidungmoi có thể đăng nhập vào hệ thống.
Sửa đổi Thông tin User
Lệnh usermod cho phép bạn sửa đổi các thuộc tính của một user hiện có.
- Đổi tên user:
Ví dụ:
sudo usermod -l ten_moi ten_cu⚠️ Cảnh báo: Khi đổi tên user, thư mục chính của họ (sudo usermod -l nguoidungmoi_moi nguoidungmoi/home/ten_cu) sẽ không tự động đổi tên. Bạn có thể cần đổi tên thủ công hoặc sử dụng tùy chọn-dđể cập nhật đường dẫn thư mục chính. - Thay đổi thư mục chính của user:
Tùy chọn
sudo usermod -d /duong/dan/moi -m ten_nguoi_dung-msẽ di chuyển nội dung từ thư mục chính cũ sang thư mục mới. - Thêm user vào nhóm bổ sung: (sẽ được giải thích chi tiết hơn ở phần quản lý nhóm)
sudo usermod -aG ten_nhom ten_nguoi_dung
Xóa User
Để xóa một user khỏi hệ thống, bạn sử dụng lệnh userdel.
sudo userdel ten_nguoi_dung
Ví dụ:
sudo userdel nguoidungmoi_moi
Lệnh này chỉ xóa tài khoản user nhưng giữ lại thư mục chính và các tệp của user đó. Nếu bạn muốn xóa cả thư mục chính và tất cả các tệp của user, hãy sử dụng tùy chọn -r:
sudo userdel -r ten_nguoi_dung
⚠️ Cảnh báo: Hãy đảm bảo bạn đã sao lưu bất kỳ dữ liệu quan trọng nào trước khi xóa user với tùy chọn -r.
Bước 3: Quản lý Nhóm (Group)
Tạo Group Mới
Lệnh groupadd được sử dụng để tạo một nhóm mới.
sudo groupadd ten_nhom_moi
Ví dụ:
sudo groupadd phongban_it
Sửa đổi Group
Lệnh groupmod cho phép bạn sửa đổi các thuộc tính của một nhóm hiện có.
- Đổi tên group:
Ví dụ:
sudo groupmod -n ten_moi ten_cusudo groupmod -n phongban_dev phongban_it
Xóa Group
Để xóa một nhóm, bạn sử dụng lệnh groupdel.
sudo groupdel ten_nhom
Ví dụ:
sudo groupdel phongban_dev
⚠️ Cảnh báo: Bạn không thể xóa một nhóm nếu nó là nhóm chính (primary group) của bất kỳ user nào.
Thêm User vào Group
Để thêm một user vào một nhóm hiện có, bạn sử dụng usermod với tùy chọn -aG (append to Group).
sudo usermod -aG ten_nhom ten_nguoi_dung
Ví dụ: Thêm nguoidungmoi vào nhóm phongban_dev:
sudo usermod -aG phongban_dev nguoidungmoi
💡 Mẹo: User cần đăng xuất và đăng nhập lại để các thay đổi về nhóm có hiệu lực.
Xóa User khỏi Group
Để xóa một user khỏi một nhóm bổ sung (supplementary group), bạn có thể dùng lệnh gpasswd.
sudo gpasswd -d ten_nguoi_dung ten_nhom
Ví dụ:
sudo gpasswd -d nguoidungmoi phongban_dev
Nếu bạn muốn xóa user khỏi tất cả các nhóm bổ sung và chỉ giữ lại nhóm chính của họ, bạn có thể sử dụng usermod với tùy chọn -G mà không liệt kê nhóm nào:
sudo usermod -G " ten_nguoi_dung
⚠️ Cảnh báo: Không dùng usermod -G với một danh sách nhóm nếu bạn chỉ muốn thêm vào một nhóm. Tùy chọn -G sẽ GHI ĐÈ tất cả các nhóm bổ sung hiện có, không phải thêm vào. Luôn dùng -aG để thêm.
Bước 4: Kiểm tra và Hiển thị Thông tin User và Group
Xem thông tin về User hiện tại hoặc User cụ thể
Lệnh id hiển thị UID, GID và các nhóm mà user thuộc về.
id
(Hiển thị thông tin của user hiện tại)
id ten_nguoi_dung
Ví dụ:
id nguoidungmoi
Liệt kê các Group mà User thuộc về
Lệnh groups hiển thị các nhóm mà user đã chỉ định thuộc về.
groups ten_nguoi_dung
Ví dụ:
groups nguoidungmoi
Xem danh sách User và Group trên Hệ thống
- Danh sách User: Thông tin về tất cả các user được lưu trữ trong tệp
/etc/passwd.Mỗi dòng trongcat /etc/passwd/etc/passwdchứa thông tin theo định dạng:username:password_placeholder:UID:GID:comment:home_directory:shell. - Danh sách Group: Thông tin về tất cả các group được lưu trữ trong tệp
/etc/group.Mỗi dòng trongcat /etc/group/etc/groupchứa thông tin theo định dạng:groupname:password_placeholder:GID:members.
Troubleshooting
-
useradd: permission deniedhoặcgroupadd: permission denied: Đây là lỗi phổ biến nhất nếu bạn quên sử dụngsudotrước các lệnh quản lý user/group. Giải pháp: Luôn sử dụngsudohoặc đăng nhập với tài khoảnrootkhi thực hiện các tác vụ này. -
User không thể đăng nhập sau khi tạo: Có thể bạn chưa đặt mật khẩu cho user. Giải pháp: Dùng lệnh
sudo passwd ten_nguoi_dungđể đặt mật khẩu. -
User không có quyền truy cập vào tài nguyên sau khi được thêm vào nhóm: User cần đăng xuất và đăng nhập lại để các thay đổi về nhóm có hiệu lực. Giải pháp: Yêu cầu user đăng xuất và đăng nhập lại, hoặc khởi động lại phiên SSH.
-
userdel: user ten_nguoi_dung is currently logged in: Bạn không thể xóa một user đang hoạt động trên hệ thống. Giải pháp: Buộc user đăng xuất hoặc sử dụng lệnhkillall -u ten_nguoi_dung(cẩn thận khi dùng trên hệ thống sản xuất) trước khi xóa. Tốt nhất là chờ user tự đăng xuất.
Kết Luận
Quản lý user và group là một phần không thể thiếu của quản trị hệ thống Linux, giúp bạn kiểm soát quyền truy cập và bảo mật dữ liệu hiệu quả. Bằng cách nắm vững các lệnh useradd, passwd, usermod, userdel, groupadd, groupmod, groupdel, id và groups, bạn đã có trong tay những công cụ mạnh mẽ để quản lý môi trường Linux của mình.
Best practices (Thực hành tốt nhất):
- Nguyên tắc đặc quyền tối thiểu (Principle of Least Privilege): Chỉ cấp cho user hoặc group những quyền hạn cần thiết để thực hiện công việc của họ.
- Mật khẩu mạnh: Luôn yêu cầu user đặt mật khẩu mạnh và thay đổi định kỳ.
- Kiểm tra định kỳ: Thường xuyên kiểm tra danh sách user và group để loại bỏ những tài khoản không cần thiết hoặc đã bị xâm phạm.
- Sử dụng tên có ý nghĩa: Đặt tên user và group dễ hiểu, phản ánh vai trò hoặc bộ phận của họ.
- Ghi lại thay đổi: Ghi lại mọi thay đổi về user và group để dễ dàng theo dõi và khắc phục sự cố.