Root là tài khoản quản trị mặc định hoặc siêu người dùng (superuser) trong Linux. Việc disable root login đảm bảo rằng chỉ những người dùng cụ thể mới có thể thực hiện các tác vụ quản trị và cài đặt các gói phần mềm nhất định trên hệ thống thông qua quyền sudo (super user do). Bạn chỉ nên vô hiệu hóa tài khoản root khi đã có sẵn một người dùng không phải root với quyền sudo để chạy tất cả các tác vụ quản trị.
Bài viết này giải thích cách vô hiệu hóa đăng nhập root trong Linux và chỉ cho phép người dùng sudo thực hiện các tác vụ quản trị.
Yêu Cầu Tiên Quyết trước khi disable root login
Trước khi bắt đầu, bạn cần phải:
- Có quyền truy cập vào một instance Linux với tư cách là người dùng không phải root có quyền sudo.
Vô Hiệu Hóa Đăng Nhập SSH Của Tài Khoản Root
Secure Shell (SSH) cho phép người dùng truy cập từ xa vào máy trạm Linux bằng cặp tên người dùng và mật khẩu hợp lệ hoặc SSH keys. Việc vô hiệu hóa đăng nhập SSH của root sẽ chấm dứt tất cả các yêu cầu kết nối từ tài khoản root và chỉ chấp nhận kết nối từ người dùng không phải root. Hãy làm theo các bước dưới đây để vô hiệu hóa đăng nhập SSH của root trên máy trạm của bạn.
- Mở file /etc/ssh/sshd_config bằng một trình soạn thảo văn bản như nano.console
$ sudo nano /etc/ssh/sshd_config
- Tìm directive PermitRootLogin dưới đây và thay đổi giá trị của nó từ yes thành no để vô hiệu hóa đăng nhập của tài khoản root qua SSH.ini
PermitRootLogin no
Lưu và đóng file.
- Khởi động lại dịch vụ SSH để áp dụng các thay đổi cấu hình.console
$ sudo systemctl restart ssh
Vô Hiệu Hóa Truy Cập Vào Shell Của Tài Khoản Root
Việc vô hiệu hóa truy cập vào shell của người dùng root sẽ ngăn không cho đăng nhập trực tiếp vào tài khoản root và sử dụng lệnh sudo su. Điều này cho phép người dùng có quyền sudo thực hiện các tác vụ quản trị trên hệ thống mà không cần đăng nhập vào shell của root. Hãy làm theo các bước dưới đây để vô hiệu hóa đăng nhập tài khoản root bằng file /etc/passwd trên máy trạm Linux của bạn.
- Mở file /etc/passwd.console
$ sudo nano /etc/passwd
- Thay đổi shell của tài khoản root từ /bin/bash thành /sbin/nologin.ini
root:x:0:0:root:/root:/sbin/nologin
Lưu và đóng file.
File /sbin/nologin sẽ vô hiệu hóa shell mặc định của tài khoản root; thiết lập nologin sẽ hiển thị thông báo “tài khoản không khả dụng” khi người dùng cố đăng nhập với tài khoản root. - Kích hoạt thuộc tính Immutable cho file /etc/passwd để ngăn không cho bất kỳ thay đổi nào đối với file.console
$ sudo chattr +i /etc/passwd
- Chạy lệnh sau để xác minh rằng tài khoản root đã bị vô hiệu hóa. Nhập mật khẩu của người dùng có quyền sudo khi được yêu cầu.console
$ sudo su
Output:
This account is currently not available.
Tạo MOTD Tùy Chỉnh
Cấu hình Message of the Day (motd) hiển thị một thông báo hoặc tin nhắn tùy chỉnh khi người dùng đăng nhập vào máy trạm Linux của bạn. Hãy làm theo các bước dưới đây để tạo một motd tùy chỉnh nhằm hướng dẫn người dùng có quyền sudo sử dụng lệnh sudo khi thực hiện các tác vụ quản trị thay vì cố truy cập vào shell của root.
- Mở file /etc/motd.console
$ sudo nano /etc/motd
- Thêm tin nhắn sau vào file để làm motd.text
Welcome to the server Note: The root account is disabled. Use sudo to execute commands and perform administrative tasks.
Lưu và đóng file.
Kiểm Tra Đăng Nhập Tài Khoản Root – xem đã thực sự disable root login hay chưa
Hãy làm theo các bước dưới đây để kiểm tra và xác minh rằng đăng nhập tài khoản root đã bị vô hiệu hóa trên máy trạm Linux của bạn.
- Sử dụng lệnh sudo su để truy cập vào shell của tài khoản root.console
$ sudo su
Xác minh rằng đăng nhập của bạn thất bại và hiển thị thông báo:
This account is currently not available.
- Truy cập vào máy trạm Linux của bạn bằng SSH với tư cách là tài khoản root.console
$ ssh root@Server-IP
Xác minh rằng kết nối SSH thất bại, ngay cả khi sử dụng thông tin đăng nhập chính xác, với kết quả tương tự như dưới đây:
Permission denied, please try again. ... Received disconnect from Server-IP port 22:2: Too many authentication failures Disconnected from Server-IP port 2
- Đăng nhập vào instance Linux của bạn bằng tty1 hoặc Display Manager (DM) với tư cách là tài khoản root, và xác minh rằng kết nối thất bại.
Kết Luận
Bạn đã vô hiệu hóa tài khoản root trên máy trạm Linux của mình. Người dùng thông thường không thể truy cập vào shell của tài khoản root hoặc chỉnh sửa file /etc/passwd để kích hoạt lại đăng nhập của tài khoản root. Ngoài ra, bạn đã vô hiệu hóa đăng nhập root qua SSH, từ đó chặn tất cả các nỗ lực kết nối đến máy trạm Linux của bạn. Tin nhắn của motd đã hướng dẫn người dùng có quyền sudo thực hiện các tác vụ quản trị theo các phương pháp được định nghĩa trong tin nhắn, qua đó nâng cao độ bảo mật cho hệ thống và duy trì các cấp độ truy cập.