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ỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
artem is not in the sudoers file | Không nằm trong nhóm hoặc chưa đăng nhập lại | usermod -aG sudo artem, đăng nhập lại |
| Khóa không được chấp nhận | Quyền trên .ssh rộng hơn 700 hoặc chủ sở hữu là root | chown và chmod như trên |
| Mật khẩu sudo không hoạt động | Người dùng chưa đặt mật khẩu | passwd artem |
| Chỉnh sửa sudoers làm hỏng sudo | Lỗi cú pháp trong tệp | Chỉ dùng visudo; khắc phục qua chế độ cứu hộ |
Chỉ chỉnh sửa
/etc/sudoersbằng lệnhvisudo— 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.