Skip to content
VDS · Hệ điều hành

Người dùng và sudo thay vì root

Cách tạo người dùng làm việc, cấp sudo cho họ, chuyển SSH key, và ngừng đăng nhập vào máy chủ với tư cách root.

Cập nhật 23 tháng 8, 2026

Máy chủ được cung cấp toàn quyền root, và phản xạ đầu tiên của bạn là tiếp tục làm việc với quyền root. Điều đó thật tiện lợi cho đến khi bạn gõ sai một lệnh rm -rf. Cách thiết lập đúng sẽ khác: một người dùng thông thường cho các tác vụ hằng ngày, còn root thông qua sudo và chỉ khi bạn thực sự cần.

Tạo người dùng

Debian và Ubuntu:

adduser artem
usermod -aG sudo artem

AlmaLinux và CentOS Stream:

adduser artem
passwd artem
usermod -aG wheel artem

Nhóm sẽ khác nhau: sudo trên họ Debian, wheel trên họ RHEL. Kiểm tra quyền:

sudo -l -U artem

Di chuyển khóa SSH

Các khóa được thêm trong tab "Access" của bảng điều khiển /hosting/vds/m/<id> sẽ thuộc về người dùng root. Bạn phải tự đặt chúng cho người dùng mới:

mkdir -p /home/artem/.ssh
cp /root/.ssh/authorized_keys /home/artem/.ssh/
chown -R artem:artem /home/artem/.ssh
chmod 700 /home/artem/.ssh
chmod 600 /home/artem/.ssh/authorized_keys

Quyền ở đây không phải là thủ tục hình thức: nếu quá lỏng, sshd sẽ âm thầm từ chối chấp nhận khóa.

Hãy kiểm tra rằng bạn có thể đăng nhập bằng người dùng mới trong một cửa sổ terminal riêng mà không đóng cửa sổ hiện tại:

ssh artem@<address>
sudo whoami

Chỉ sau khi kiểm tra thành công, bạn mới nên chuyển sang vô hiệu hóa đăng nhập root.

Cách sử dụng sudo

sudo systemctl restart nginx
sudo -i
sudo -u www-data ls /var/www

sudo -i cho bạn một shell root đầy đủ — dùng cho một loạt lệnh, không phải để làm việc lâu dài. Mỗi lần gọi sudo đều được ghi vào log, và đó chính là dấu vết của bạn khi điều tra một sự cố:

journalctl -t sudo -n 50
grep sudo /var/log/auth.log

Thêm về log — ai đã đăng nhập vào máy chủ.

Quyền cho các dịch vụ

Một lỗi phổ biến khác là chạy ứng dụng với quyền root "để nó hoạt động". Với mỗi dịch vụ, hãy tạo một người dùng hệ thống không có shell:

useradd --system --no-create-home --shell /usr/sbin/nologin appsrv
chown -R appsrv:appsrv /opt/app

Như vậy, một lỗ hổng trong ứng dụng sẽ không trao toàn bộ máy chủ cho kẻ tấn công ngay lập tức.

Những lỗi thường gặp

LỗiNguyên nhânCách khắc phục
artem is not in the sudoers fileKhông nằm trong nhóm hoặc chưa đăng nhập lạiusermod -aG sudo artem, đăng nhập lại
Khóa không được chấp nhậnQuyền trên .ssh rộng hơn 700 hoặc chủ sở hữu là rootchown và chmod như trên
Mật khẩu sudo không hoạt độngNgười dùng chưa đặt mật khẩupasswd artem
Chỉnh sửa sudoers làm hỏng sudoLỗi cú pháp trong tệpChỉ dùng visudo; khắc phục qua chế độ cứu hộ

Chỉ chỉnh sửa /etc/sudoers bằng lệnh visudo — lệnh này kiểm tra cú pháp trước khi lưu. Một tệp bị hỏng sẽ tước quyền sudo của tất cả mọi người cùng một lúc.