File sudoers là gì?
File sudoers định nghĩa người dùng nào có quyền truy cập lệnh sudo trên hệ thống Linux.
File nằm tại:
/etc/sudoers
…và trông như sau:
# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
Lệnh sudo
Lệnh sudo cho phép người dùng được ủy quyền chạy lệnh dưới danh tính người dùng khác. Mặc định, và mục đích chính của nó, là chạy lệnh dưới quyền root – cho phép người dùng thực hiện tác vụ quản trị mà không cần đăng nhập trực tiếp với tư cách root.
Tại sao dùng sudo thay vì đăng nhập bằng root?
Bảo mật. Khi dùng sudo để thực thi lệnh, chỉ lệnh đó chạy với đặc quyền root – bạn đang cấp quyền rõ ràng cho nó. Nếu bạn đăng nhập bằng root, bất kỳ lệnh nào bạn chạy đều có đặc quyền cao, khiến script dễ dàng truy cập thứ không nên, hoặc lỗi gõ đơn giản cũng có thể phá hỏng hệ thống.
visudo – Chương trình chỉnh sửa file Sudoers an toàn
Cho dù người dùng có thể dùng lệnh sudo hay không được quy định bởi file sudoers – nên cần cẩn thận khi chỉnh sửa file này. Nếu cấu hình sai, hoặc lỡ gõ sai, có thể khóa toàn bộ người dùng khỏi lệnh sudo – từ chối truy cập root và thực tế khóa bạn khỏi hệ thống của chính mình.
visudo là chương trình cho phép bạn chỉnh sửa an toàn file sudoers, kiểm tra lỗi trước khi lưu để ngăn chặn những lỗi ngớ ngẩn khóa bạn khỏi lệnh sudo.
Sử dụng visudo để chỉnh sửa file sudoers
Để chỉnh sửa an toàn file sudoers với visudo, chỉ cần gọi nó với quyền cao:
sudo visudo
visudo sẽ mở file sudoers với trình soạn thảo mặc định.
Cú pháp của file sudoers
Cú pháp file sudoers được đề cập kỹ trong tài liệu chính thức.
Mẹo an toàn cho visudo và sudoers
visudo không ngăn chặn tất cả lỗi, bạn vẫn phải cẩn thận. Nó có thể xác thực không có lỗi cú pháp trong file, nhưng không thể phát hiện thông tin sai.
Điều đó có nghĩa là – nó sẽ bắt lỗi cấu hình định dạng sai, nhưng sẽ không nhận ra nếu bạn gõ sai tên người dùng.
Các mẹo sau giúp giảm thiểu những lỗi visudo không phát hiện được.
Tạo file sudoers riêng
Tránh sửa file cấu hình sudoers mặc định bằng cách tạo file cấu hình riêng để bổ sung.
Trước tiên, dùng visudo chỉnh sửa file /etc/sudoers mặc định và bỏ comment dòng sau:
#includedir /etc/sudoers.d
Bây giờ, hệ thống sẽ tải cấu hình bổ sung từ đường dẫn /etc/sudoers.d/, cho phép bạn thay đổi cấu hình ở đó và để file mặc định nguyên vẹn.
Tạo và chỉnh sửa file cấu hình mới bằng:
sudo visudo -f /etc/sudoers.d/mysudoersconfig
Giữ cửa sổ terminal hoặc phiên remote riêng mở và đã đăng nhập
Nếu bạn thay đổi đặc quyền sudo, hãy giữ một phiên terminal đăng nhập với tư cách người dùng có quyền sudo.
Bạn có thể test thay đổi, và nếu làm hỏng, khôi phục từ phiên đó vẫn giữ quyền sudo – ngay cả khi bạn đã mắc lỗi.
Sao lưu hệ thống
Sao lưu thường xuyên là quan trọng. Có thể không phải bạn làm hỏng hệ thống – cập nhật xấu, sét đánh, trộm cắp – bất cứ điều gì cũng có thể xảy ra. Hãy sao lưu hệ thống và thực hiện thay đổi an toàn, biết rằng nếu có gì hỏng, nó không hỏng mãi.