Hướng dẫn toàn diện về phân quyền user trên Linux: Từ useradd, sudo đến group và Polkit
Sử dụng tài khoản root cho mọi tác vụ trên VPS là một thói quen cực kỳ nguy hiểm. Chỉ một lệnh gõ nhầm cũng có thể xóa sạch toàn bộ hệ thống của bạn.
Đây là bài viết chuyên sâu về Lớp phòng thủ thứ 1, một phần trong hướng dẫn toàn diện Bảo mật VPS từ A-Z: 10 lớp phòng thủ thiết yếu (cập nhật 2025) của chúng tôi. Nếu bạn là người mới, chúng tôi khuyên bạn nên bắt đầu từ bài viết tổng quan đó để có cái nhìn toàn cảnh.
Trong bài viết này, chúng ta sẽ làm chủ kỹ năng quản lý và phân quyền user trên Linux, từ những lệnh cơ bản như adduser
đến các khái niệm hiện đại như Polkit.
Trong bài viết này, bạn sẽ học được:
- ✅ Cách tạo, sửa, khóa và xóa người dùng một cách an toàn.
- ✅ Sự khác biệt và cách sử dụng
su
vàsudo
hiệu quả. - ✅ Phân quyền cho các nhóm (group) để quản lý dự án.
- ✅ Các kỹ thuật nâng cao như SetGID và Polkit.
- ✅ Các lưu ý bảo mật quan trọng nhất khi quản lý user.
Nền tảng quản lý user
Nền tảng của một hệ thống bảo mật là việc quản lý định danh người dùng một cách chặt chẽ. Mỗi người dùng nên có một tài khoản riêng biệt, chỉ với những quyền hạn cần thiết cho công việc của họ. Đây chính là “Nguyên tắc Đặc quyền Tối thiểu” (Principle of Least Privilege).
adduser
vs. useradd
: Nên dùng lệnh nào?
Trong Linux, có hai lệnh chính để tạo người dùng mới là useradd
và adduser
.
useradd
: Đây là lệnh gốc, có sẵn trên mọi bản phân phối Linux. Nó chỉ thực hiện một tác vụ duy nhất là tạo user. Bạn sẽ phải tự đặt mật khẩu và tạo thư mục home bằng các lệnh riêng.adduser
: Đây là một script thân thiện hơn, đặc biệt phổ biến trên Debian/Ubuntu. Nó sẽ tự động hỏi bạn để đặt mật khẩu, tạo thư mục home, và điền các thông tin bổ sung.
Lời khuyên: Nếu bạn là người mới, hãy ưu tiên sử dụng adduser
để có trải nghiệm đơn giản và tự động hơn.
Tạo user và đặt mật khẩu
Hãy tạo một người dùng mới bằng lệnh adduser
.
sudo adduser example_user
Hệ thống sẽ ngay lập tức yêu cầu bạn đặt và xác nhận mật khẩu cho example_user
. Sau đó, nó sẽ hỏi một vài thông tin bổ sung (tên đầy đủ, số phòng, v.v.), bạn có thể nhấn Enter để bỏ qua.
Nếu bạn dùng useradd
, quy trình sẽ cần thêm một bước để đặt mật khẩu.
# Tạo user bằng useradd
sudo useradd -m -s /bin/bash example_user
# Đặt mật khẩu cho user vừa tạo
sudo passwd example_user
Ở đây, tùy chọn -s /bin/bash
chỉ định shell đăng nhập mặc định. Quan trọng hơn, tùy chọn -m
không chỉ tạo thư mục home /home/example_user
, mà còn sao chép các file cấu hình mặc định (như .bashrc
, .profile
) từ thư mục /etc/skel
vào đó, giúp người dùng mới có một môi trường làm việc sẵn sàng.
Mẹo chuyên nghiệp: Thêm người dùng vào nhóm ngay khi tạo
Thay vì tạo người dùng rồi mới dùng usermod
để thêm vào nhóm sau, bạn có thể làm cả hai việc cùng lúc với tùy chọn -G
(groups).
# Tạo example_user và thêm ngay vào nhóm sudo và example_group
sudo useradd -m -s /bin/bash -G sudo,example_group example_user
Lệnh này giúp tiết kiệm thời gian và đảm bảo người dùng có đúng quyền hạn cần thiết ngay từ đầu.
Sửa đổi, khóa và xóa user
Để sửa đổi thông tin của một người dùng, chúng ta dùng lệnh usermod
. Đây là một lệnh rất mạnh mẽ, không chỉ dùng để quản lý nhóm. Dưới đây là một vài ứng dụng phổ biến khác:
Khóa và mở khóa tài khoản (-L
, -U
)
Để tạm thời vô hiệu hóa quyền đăng nhập bằng mật khẩu của một người dùng (ví dụ khi họ nghỉ phép hoặc tài khoản bị nghi ngờ xâm nhập), bạn có thể dùng tùy chọn -L
(lock).
sudo usermod -L example_user
Khi bị khóa, người dùng sẽ không thể đăng nhập bằng mật khẩu. Để mở khóa lại tài khoản, bạn chỉ cần dùng tùy chọn -U
(unlock).
sudo usermod -U example_user
Thay đổi shell đăng nhập (-s
)
Trong một số trường hợp, bạn muốn một tài khoản tồn tại để chạy dịch vụ nhưng không cho phép bất kỳ ai đăng nhập tương tác vào đó. Bạn có thể thay đổi shell của nó thành /sbin/nologin
.
sudo usermod -s /sbin/nologin example_user
Bất kỳ nỗ lực đăng nhập nào vào tài khoản này sẽ ngay lập tức bị từ chối với một thông báo lịch sự.
Xóa tài khoản (userdel
)
Khi không còn cần đến một tài khoản, bạn nên xóa nó đi để tránh bị lợi dụng. Lệnh userdel
sẽ giúp bạn làm điều này.
# Xóa user nhưng giữ lại thư mục home
sudo userdel example_user
# Xóa user và cả thư mục home của họ
sudo userdel -r example_user
Tùy chọn -r
(remove) đảm bảo dọn dẹp hệ thống một cách sạch sẽ.
Phân biệt người dùng thường và tài khoản Hệ thống
Ngoài những người dùng thông thường mà chúng ta tạo để đăng nhập, Linux còn có khái niệm tài khoản hệ thống (system account). Các tài khoản này được dùng để chạy các dịch vụ nền một cách biệt lập và an toàn, ví dụ như user www-data
cho web server Apache.
Chúng thường được tạo với tùy chọn useradd -r
, không có thư mục home trong /home
và không dùng để đăng nhập trực tiếp. Hiểu rõ sự khác biệt này giúp bạn không vô tình chỉnh sửa các tài khoản hệ thống quan trọng.
Sudo & su – Chuyển đổi và “mượn” quyền
Sau khi đã có người dùng riêng, có hai cách chính để thực thi lệnh với quyền của người dùng khác: su
và sudo
.
Lệnh su
cổ điển
su
(switch user) là lệnh cho phép bạn chuyển đổi hoàn toàn sang một tài khoản người dùng khác. Ví dụ, để chuyển từ tài khoản hiện tại sang example_user
, bạn dùng:
su - example_user
Để chuyển sang tài khoản root
, bạn chỉ cần gõ su -
. Lệnh này sẽ yêu cầu bạn nhập mật khẩu của tài khoản root
. Đây là một cách làm tiềm ẩn rủi ro vì nó đòi hỏi bạn phải chia sẻ hoặc ghi nhớ mật khẩu root
.
sudo
: Phương pháp hiện đại và an toàn hơn
Vậy làm thế nào để người dùng thực hiện tác vụ quản trị mà không cần biết mật khẩu root
? Câu trả lời chính là sudo
(superuser do). Nó không chuyển đổi bạn sang người dùng root
, mà chỉ cho phép bạn “mượn” quyền root
để chạy một lệnh cụ thể, và xác thực bằng mật khẩu của chính bạn.
Cách đơn giản nhất: Thêm user vào nhóm sudo
Trên hầu hết các hệ thống, có một nhóm đặc biệt tên là sudo
(hoặc wheel
trên CentOS/RHEL). Bất kỳ thành viên nào của nhóm này đều được phép sử dụng lệnh sudo
. Đây là cách đơn giản và an toàn nhất để tạo user sudo.
Hãy cấp quyền sudo cho người dùng example_user
của chúng ta.
sudo usermod -aG sudo example_user
Lưu ý: Sau khi thêm người dùng vào một nhóm mới, người dùng đó có thể cần phải đăng xuất và đăng nhập lại để thay đổi về nhóm có hiệu lực trong phiên làm việc của họ.
Lưu ý quan trọng: Tùy chọn -a
(append) và -G
(groups) cực kỳ quan trọng. Nó có nghĩa là “thêm” user vào nhóm sudo
mà không xóa họ khỏi các nhóm hiện tại. Nếu thiếu -a
, user sẽ bị loại khỏi tất cả các nhóm khác!
Để kiểm tra lại, bạn có thể dùng lệnh groups
.
groups example_user
# Output: example_user : example_user sudo
Làm việc chuyên nghiệp với visudo
Lệnh sudo
được cấu hình qua file /etc/sudoers
. Tuy nhiên, không bao giờ được phép chỉnh sửa file này trực tiếp bằng các trình soạn thảo văn bản thông thường như nano
hay vim
.
Thay vào đó, hãy luôn dùng lệnh visudo
.
sudo visudo
Lý do là vì visudo
làm hai việc cực kỳ quan trọng:
- Kiểm tra cú pháp: Trước khi lưu, nó sẽ kiểm tra xem cấu hình bạn viết có hợp lệ không. Nếu có lỗi, nó sẽ không cho bạn lưu, giúp bạn không bị “khóa” khỏi quyền quản trị.
- Khóa file: Nó đảm bảo chỉ có một người có thể chỉnh sửa file
sudoers
tại một thời điểm, tránh các xung đột.
Các cấu hình sudoers
nâng cao
Với visudo
, bạn có thể tạo ra các quy tắc phân quyền rất chi tiết. Để tìm hiểu sâu hơn về các kỹ thuật nâng cao như tạo User_Alias
hay Cmnd_Alias
, bạn có thể tham khảo bài viết chuyên sâu về tệp Sudoers của chúng tôi.
Cấp quyền không cần mật khẩu (NOPASSWD
)
Đôi khi, bạn muốn một số script tự động hoặc một người dùng cụ thể chạy một lệnh quản trị mà không bị hỏi mật khẩu.
# Cú pháp trong file /etc/sudoers
example_user ALL=(ALL) NOPASSWD: /usr/sbin/service nginx restart
Quy tắc trên cho phép example_user
khởi động lại dịch vụ Nginx mà không cần nhập mật khẩu. Hãy hết sức cẩn thận khi cấp quyền này.
Tinh chỉnh thời gian chờ mật khẩu
Mặc định, sau khi nhập mật khẩu sudo
một lần, bạn có thể chạy các lệnh sudo
khác trong 15 phút mà không cần nhập lại. Bạn có thể thay đổi giá trị này.
# Đặt thời gian chờ là 30 phút
Defaults timestamp_timeout=30
# Yêu cầu nhập mật khẩu cho mọi lệnh sudo
Defaults timestamp_timeout=0
Kỹ thuật an toàn: Chỉnh sửa file với sudoedit
Khi bạn muốn cho phép một người dùng chỉnh sửa một file cấu hình hệ thống (ví dụ /etc/nginx/nginx.conf
), việc cấp quyền sudo nano /etc/nginx/nginx.conf
tiềm ẩn rủi ro “shell escape”, nơi người dùng có thể thoát khỏi trình soạn thảo để chiếm quyền root.
sudo
cung cấp một cơ chế an toàn hơn nhiều là sudoedit
. Nó hoạt động bằng cách tạo một bản sao tạm thời của file, cho phép người dùng chỉnh sửa bản sao đó với quyền của chính họ. Sau khi lưu, sudoedit
sẽ ghi đè nội dung mới vào file gốc một cách an toàn.
Quy tắc trong visudo
sẽ là:
example_user ALL = sudoedit /etc/nginx/nginx.conf
Sau đó, người dùng example_user
chỉ cần chạy lệnh sudoedit /etc/nginx/nginx.conf
để chỉnh sửa file một cách an toàn.
Sức mạnh của Group & quyền trên hệ thống file
Quản lý từng người dùng riêng lẻ sẽ rất vất vả khi hệ thống của bạn có nhiều người. Đó là lúc Group (nhóm) phát huy tác dụng. Bạn có thể cấp quyền cho cả một nhóm, và mọi thành viên trong nhóm đó sẽ có quyền tương ứng.
Quản lý nhóm cơ bản
Hãy tạo một nhóm mới.
sudo groupadd example_group
<//pre>
Bây giờ, thêm example_user
và một người dùng khác là another_user
vào nhóm này.
sudo usermod -aG example_group example_user
sudo usermod -aG example_group another_user
Để xem danh sách thành viên của một nhóm, bạn có thể dùng lệnh getent
.
getent group example_group
# Output: example_group:x:1003:example_user,another_user
Nếu muốn xóa một người dùng khỏi nhóm, hãy dùng gpasswd
.
sudo gpasswd -d another_user example_group
Kết nối Group với tài nguyên: chown
và chgrp
Vậy tạo nhóm để làm gì? Một trong những ứng dụng phổ biến nhất là để quản lý quyền truy cập vào các thư mục dự án, đặc biệt là sau khi bạn đã chuyển dữ liệu từ máy tính lên VPS.
Giả sử bạn có thư mục dự án tại /var/www/myproject
. Bạn muốn tất cả thành viên của nhóm example_group
có thể đọc và ghi vào đó. Đầu tiên, bạn cần gán quyền sở hữu thư mục này cho nhóm example_group
.
# Thay đổi nhóm sở hữu của thư mục (-R là đệ quy cho tất cả file bên trong)
sudo chgrp -R example_group /var/www/myproject
Lệnh chown
(change owner) còn mạnh hơn, nó có thể thay đổi cả người dùng và nhóm sở hữu cùng lúc.
# Gán quyền sở hữu cho user 'root' và group 'example_group'
sudo chown -R root:example_group /var/www/myproject
Thiết lập quyền truy cập: chmod
Sau khi đã gán quyền sở hữu, bước cuối cùng là thiết lập quyền truy cập. Lệnh chmod
(change mode) cho phép bạn làm điều này. Linux có 3 loại quyền cơ bản: read (r), write (w), và execute (x).
Có hai cách chính để dùng chmod
:
1. Ký hiệu (Symbolic): Dễ nhớ và dễ đọc.
# u: user, g: group, o: other, a: all
# +: thêm quyền, -: bớt quyền, =: gán quyền chính xác
# Gán quyền: user (rwx), group (rwx), other (không có quyền gì)
sudo chmod -R u=rwx,g=rwx,o= /var/www/myproject
2. Số (Octal): Nhanh và gọn, được các quản trị viên ưa dùng. Thứ tự của các con số luôn là User (Chủ sở hữu) -> Group (Nhóm) -> Others (Người khác).
4
: read (đọc)2
: write (ghi)1
: execute (thực thi)
Bạn chỉ cần cộng các số lại: 7
(4+2+1) là rwx
, 6
(4+2) là rw-
, 5
(4+1) là r-x
.
# Gán quyền 7 (rwx) cho User, 7 (rwx) cho Group, và 0 (---) cho Others
sudo chmod -R 770 /var/www/myproject
Pro-tip: Đảm bảo quyền nhất quán cho thư mục nhóm với SetGID
Sau khi gán thư mục cho nhóm example_group
, có một vấn đề thường gặp: khi một thành viên (ví dụ example_user
) tạo file mới, file đó có thể sẽ thuộc nhóm riêng của họ (example_user
), và các thành viên khác trong nhóm example_group
không chỉnh sửa được.
Để giải quyết triệt để, hãy dùng quyền đặc biệt SetGID (g+s
):
# Thêm quyền SetGID vào thư mục dự án
sudo chmod g+s /var/www/myproject
Từ bây giờ, mọi file hay thư mục mới được tạo trong /var/www/myproject
sẽ tự động kế thừa nhóm example_group
của thư mục cha, thay vì lấy nhóm chính của người tạo ra nó. Điều này đảm bảo mọi người trong nhóm luôn có quyền truy cập phù hợp.
Quyền đặc biệt khác: Sticky Bit (+t
)
Ngoài SetGID
, Linux còn có “Sticky Bit” (+t
). Khi được đặt trên một thư mục chung mà mọi người đều có quyền ghi (như /tmp
), nó sẽ áp dụng một quy tắc đặc biệt: chỉ chủ sở hữu của một file (hoặc root
) mới được phép xóa hoặc đổi tên file đó.
Điều này rất hữu ích để ngăn người dùng xóa file của nhau trong một không gian làm việc chung.
# Ví dụ đặt Sticky Bit cho một thư mục chia sẻ
sudo chmod +t /path/to/shared_folder
Polkit – Cơ chế phân quyền hiện đại
Bên cạnh sudo
, các hệ thống Linux hiện đại còn có một cơ chế phân quyền mạnh mẽ khác tên là Polkit (trước đây là PolicyKit).
Polkit là gì và khác gì Sudo?
Nếu sudo
hoạt động theo nguyên tắc “tất cả hoặc không có gì” (cấp cho bạn quyền root
để chạy toàn bộ một tiến trình), thì Polkit lại chi tiết hơn rất nhiều. Nó quản lý quyền cho từng hành động cụ thể, ví dụ như “tắt máy”, “gắn USB”, hay “thay đổi múi giờ”.
Polkit không thay thế sudo
, mà hoạt động song song để cung cấp một lớp kiểm soát chặt chẽ hơn, đặc biệt cho các ứng dụng đồ họa và dịch vụ hệ thống.
Ví dụ thực tế
Nếu bạn từng dùng Linux trên máy tính cá nhân, khi bạn mở một ứng dụng như GParted (quản lý phân vùng ổ đĩa), một cửa sổ sẽ hiện lên yêu cầu mật khẩu. Đó chính là Polkit đang hoạt động, thông qua một chương trình gọi là pkexec
.
Cách tạo Rule
Để tạo quy tắc, chúng ta sẽ tạo các file .rules
trong /etc/polkit-1/rules.d/
. Các quy tắc này sẽ ghi đè lên những hành vi mặc định do chính các ứng dụng định nghĩa sẵn trong thư mục /usr/share/polkit-1/actions
.
Làm sao để biết action.id
chính xác cần dùng (ví dụ: org.freedesktop.login1.power-off
)? Rất đơn giản, bạn có thể liệt kê tất cả các hành động (actions) đã được đăng ký trên hệ thống của mình bằng lệnh:
pkaction
Lệnh này sẽ cho bạn một danh sách đầy đủ các action.id
để sử dụng trong file rules của mình.
Trên các hệ thống mới, Polkit dùng các file JavaScript để định nghĩa quy tắc. Đây là cách làm hiện đại và linh hoạt. Tuy nhiên, bạn cũng có thể gặp phương pháp cũ hơn (hiện không còn được khuyến khích) sử dụng các file .pkla
. Chúng ta sẽ xem qua cả hai.
Phương pháp cũ: File .pkla
Cách này dùng các file .pkla
với cú pháp đơn giản. Ví dụ, để cho phép example_user
tắt máy không cần mật khẩu:
# Tạo file /etc/polkit-1/localauthority/50-local.d/allow-shutdown.pkla
[Allow shutdown for example_user]
Identity=unix-user:example_user
Action=org.freedesktop.login1.power-off
ResultActive=yes
Phương pháp hiện đại: File .rules (JavaScript)
Cách này mạnh mẽ hơn, cho phép viết các logic phức tạp. Rule này cho phép bất kỳ thành viên nào của nhóm example_group
có thể tắt máy:
// Tạo file /etc/polkit-1/rules.d/40-allow-shutdown.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.power-off" &&
subject.isInGroup("example_group")) {
return polkit.Result.YES;
}
});
Cảnh báo bảo mật quan trọng: Lỗ hổng PwnKit
Năm 2021, một lỗ hổng cực kỳ nghiêm trọng tên là PwnKit (CVE-2021-4034) đã được phát hiện trong pkexec
của Polkit. Nó cho phép bất kỳ người dùng local nào cũng có thể chiếm được quyền root
.
Bài học ở đây là: không có phần mềm nào là tuyệt đối an toàn. Việc luôn cập nhật hệ thống của bạn thường xuyên (sudo apt update && sudo apt upgrade
) là biện pháp bảo vệ quan trọng nhất. Để tìm hiểu sâu hơn về cách tự động hóa quá trình này, hãy tham khảo bài viết của chúng tôi về Lớp 7: Duy trì và tự động cập nhật hệ thống.
Đây chỉ là một trong nhiều nguy cơ, bạn có thể xem thêm các cách bảo mật VPS cơ bản để phòng tránh bị tấn công.
Tổng hợp & các lưu ý an toàn
Để giúp bạn dễ dàng tra cứu, dưới đây là bảng tóm tắt các lệnh quan trọng đã được đề cập.
Lệnh | Chức năng |
adduser |
Tạo user mới một cách thân thiện. |
passwd |
Đặt hoặc thay đổi mật khẩu user. |
usermod |
Chỉnh sửa thuộc tính của user (ví dụ: thêm vào group). |
userdel |
Xóa user khỏi hệ thống. |
groupadd |
Tạo một group mới. |
gpasswd |
Quản lý thành viên của group (ví dụ: xóa user). |
visudo |
Chỉnh sửa file cấu hình sudoers một cách an toàn. |
sudoedit |
Chỉnh sửa file với quyền root một cách an toàn. |
chown |
Thay đổi người dùng và nhóm sở hữu của file/thư mục. |
chgrp |
Chỉ thay đổi nhóm sở hữu của file/thư mục. |
chmod |
Thay đổi quyền truy cập (read, write, execute). |
pkaction |
Liệt kê các hành động Polkit có sẵn. |
Checklist các lưu ý bảo mật
- Không bao giờ dùng
root
cho công việc hàng ngày. Chỉ dùngsudo
khi thực sự cần thiết. - Luôn dùng
visudo
để chỉnh sửa/etc/sudoers
. - Hạn chế dùng
NOPASSWD
. Chỉ cấp quyền này cho những lệnh cụ thể và ít rủi ro. - Cẩn trọng khi cấm lệnh: Tránh sử dụng toán tử
!
để cấm lệnh (ví dụ:ALL, !/usr/sbin/reboot
). Người dùng có thể dễ dàng sao chép lệnh bị cấm sang một tên khác để qua mặt quy tắc này. Thay vào đó, hãy tuân thủ “Nguyên tắc Đặc quyền Tối thiểu” và chỉ cấp quyền cho những lệnh thực sự cần thiết. - Kiểm tra người dùng định kỳ. Xóa các tài khoản không còn sử dụng.
- Giữ hệ thống được cập nhật để vá các lỗ hổng bảo mật như PwnKit.
Câu hỏi thường gặp (FAQ)
1. Làm thế nào để kiểm tra một người dùng thuộc những nhóm nào?
Bạn có thể dùng lệnh groups ten_user
để xem danh sách các nhóm mà người dùng thuộc về. Để xem thông tin chi tiết hơn bao gồm cả ID người dùng (UID) và ID nhóm (GID), hãy dùng lệnh id ten_user
.
2. Sự khác biệt chính giữa su
và sudo
là gì?
su
(switch user): Chuyển đổi bạn hoàn toàn sang một người dùng khác (thường làroot
). Nó yêu cầu bạn phải biết mật khẩu của tài khoản đích.sudo
(superuser do): Chỉ “mượn” quyền root để thực thi một lệnh cụ thể. Nó yêu cầu bạn nhập mật khẩu của chính tài khoản của bạn.
3. Tại sao phải dùng visudo
thay vì nano /etc/sudoers
?
Phải luôn dùng visudo
vì nó sẽ kiểm tra lỗi cú pháp trong file cấu hình trước khi cho phép bạn lưu. Điều này cực kỳ quan trọng để ngăn chặn các lỗi có thể khiến bạn bị khóa hoàn toàn khỏi quyền quản trị.
4. Khi nào nên dùng quyền SetGID (g+s
) trên một thư mục?
Bạn nên dùng SetGID cho các thư mục làm việc nhóm. Khi một thư mục được đặt quyền SetGID, mọi file và thư mục con được tạo bên trong nó sẽ tự động kế thừa nhóm sở hữu của thư mục cha, đảm bảo mọi thành viên trong nhóm đều có quyền truy cập nhất quán.
Hướng đi tiếp theo
Những kiến thức trong bài viết này đã đủ để bạn quản lý một VPS một cách an toàn và hiệu quả. Nếu bạn muốn tìm hiểu sâu hơn, đây là một vài gợi ý:
- Access Control Lists (ACLs): Sử dụng các lệnh
setfacl
vàgetfacl
để tạo ra các quy tắc phân quyền chi tiết hơn cảchmod
. - Tự động hóa: Viết các script Shell để tự động tạo người dùng mới và gán quyền cho họ khi triển khai server.
- Quản lý
sudoers
với Aliases: Khi filesudoers
trở nên phức tạp với nhiều người dùng và quy tắc, hãy tìm hiểu vềAliases
. Tính năng này cho phép bạn nhóm các người dùng (User_Alias
), các lệnh (Cmnd_Alias
), hay máy chủ (Host_Alias
) lại để tổ chức các quy tắc một cách gọn gàng và dễ đọc.
Kết luận
Việc phân quyền user trên Linux không chỉ đơn thuần là tạo tài khoản. Đó là một nghệ thuật cân bằng giữa sự tiện lợi và an ninh, đảm bảo rằng mỗi người dùng chỉ có đúng quyền hạn họ cần để hoàn thành công việc. Bằng cách sử dụng thành thạo useradd
, sudo
, quản lý group
và chmod
, bạn đã xây dựng một hàng rào bảo vệ vững chắc cho VPS của mình.
Hy vọng rằng qua hướng dẫn chi tiết này, bạn đã tự tin hơn trong việc làm chủ hệ thống Linux của mình. Hãy bắt đầu thực hành ngay hôm nay!
Tài liệu tham khảo
- man sudoers: https://www.man7.org/linux/man-pages/man5/sudoers.5.html
- man useradd: https://www.man7.org/linux/man-pages/man8/useradd.8.html
- man usermod: https://www.man7.org/linux/man-pages/man8/usermod.8.html
- man chmod: https://www.man7.org/linux/man-pages/man1/chmod.1.html
- Thông tin về Polkit tại trang của Freedesktop.org: https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
- Chi tiết về lỗ hổng PwnKit tại trang CVE: https://www.cve.org/CVERecord?id=CVE-2021-4034