Trong Filesystem Hierarchy Standard dùng bởi hệ điều hành Linux, tất cả file và thư mục xuất hiện dưới thư mục root “/” nhưng quyền truy cập vào nó thường bị hạn chế vì lý do bảo mật. Trong các bản phân phối Linux như Debian, bạn có thể có toàn quyền truy cập từ SSH bằng cách dùng lệnh “sudo”. Hướng dẫn này giải thích cách thêm người dùng vào Sudoers để người dùng được phép chạy lệnh sudo.
Đăng nhập với tư cách superuser hoặc root user cho phép bạn thực hiện sửa đổi toàn hệ thống. “sudo” cũng có thể dùng để đăng nhập như người dùng khác – đôi khi cần thiết cho admin và kỹ thuật viên hệ thống.
Danh sách người dùng (và nhóm người dùng) được phép thực thi các lệnh khác nhau được lưu trong file “/etc/sudoers”, vì vậy admin hệ thống cần biết cách cấp quyền đăng nhập root cho người dùng mới bằng cách thêm tên họ vào file này. Có hai cách làm. Một là chỉnh sửa file thủ công. Khi làm vậy bạn cũng có thể gán tập hợp quyền con mà họ được phép thực thi khi dùng đăng nhập root. Một cách nhanh hơn là chỉ thêm họ vào nhóm người dùng “sudo” từ dòng lệnh.
Thêm người dùng vào nhóm sudo
Tự nhiên, bạn sẽ cần đăng nhập với tư cách superuser trước khi có thể thêm người khác vào nhóm sudo. Để đăng nhập vào server Debian với tư cách root user –
ssh admin@wsxdn.com
Giả sử người dùng bạn muốn thêm đã tồn tại trên hệ thống, bạn có thể chạy lệnh dưới đây;
usermod -aG sudo username
Để kiểm tra lại bạn đã thêm thành công vào nhóm, gõ sau và cung cấp mật khẩu người dùng;
sudo whoami
Nếu họ thực sự có quyền sudo output sẽ in “root”. Nếu không, hoặc bạn nhập sai chi tiết, bạn sẽ nhận thông báo lỗi báo “user is not in the sudoers file“.
Để tạo người dùng hoàn toàn mới, bạn có thể dùng lệnh Linux “adduser”;
adduser newusername
Sau đó bạn sẽ được yêu cầu cung cấp một vài chi tiết thêm về họ, bao gồm gán mật khẩu. Khi kết thúc, thông tin người dùng mới được ghi vào file sudoers.
Nếu bạn muốn gán người dùng mới vào nhóm sudo từ dòng lệnh bạn có thể dùng “usermod” hoặc “gpasswd“. Ví dụ –
usermod -aG sudo newusername
Thêm người dùng vào file sudoers thủ công
Đây là lựa chọn tốt hơn khi bạn muốn thiết lập chính sách bảo mật tùy chỉnh cho superuser mới. Bạn có thể chỉnh sửa file sudoers trực tiếp, hoặc tạo file cấu hình mới trong thư mục /etc/sudoers.d. Bất kỳ file nào nằm trong thư mục đó thực tế được nối với file sudoers tại runtime.
Sử dụng visudo:
Để chỉnh sửa file sudoers luôn dùng lệnh “visudo”. Gọi trình soạn thảo qua visudo đảm bảo visudo sẽ kiểm tra kỹ cú pháp file trước khi lưu. Nếu bạn chỉnh sửa file không dùng visudo, nó sẽ không – và đây là file hệ thống quan trọng! Bạn vẫn có thể dùng visudo để chỉnh sửa file bạn lưu vào /etc/sudoers.d, nhưng bạn có thể cần gọi tùy chọn –f để chỉ định vị trí file bạn muốn chỉnh sửa.
Trình soạn thảo thực tế visudo dùng được chỉ định bởi biến môi trường EDITOR. Mặc định nó được thiết lập thành vim. Nếu bạn muốn thay đổi trình soạn thảo mặc định thành lựa chọn khác, như nano, bạn có thể thay thế mặc định như sau –
EDITOR=nano visudo
Gán đặc quyền:
Ở đâu đó trong file sudoers, bạn có thể thấy dòng như sau –
root ALL=(ALL) ALL
Điều này minh họa cú pháp bạn dùng để gán đặc quyền người dùng. Trong trường hợp này, nghĩa là user root có thể thực thi từ ALL (bất kỳ) terminal, đóng vai ALL (bất kỳ) user, và chạy ALL (bất kỳ) lệnh.
Để dễ dàng áp dụng nhóm đặc quyền cho tên trong file sudoers, alias thường được định nghĩa. Bạn có thể tạo alias cho nhóm user, dải terminal, hoặc truy cập nhóm lệnh. Ví dụ, ở đầu file sudoers bạn có thể gõ như sau;
User_Alias OPERATORS = amy, ben, chris Runas_Alias OP = root, operator Host_Alias NETWORK = 192.168.0.0/255.255.255.0 Cmnd_Alias PRINTING_CMDS = /usr/sbin/lpc, /usr/sbin/lprm
Bạn có thể sau đó gọi các shortcut này khi cấp quyền truy cập. Ví dụ;
ben ALL = PRINTING_CMDS
Điều này cho phép ben dùng bất kỳ terminal trong dải IP đã định nghĩa và thực thi lệnh in lpc và lprm (nằm trong /usr/sbin/).
Đặc quyền root trong Debian rất mạnh. Điều đó nghĩa là có nhiều cơ hội làm hỏng kiểm soát truy cập, phá hỏng server, hoặc hủy dữ liệu. Vì lý do đó, tránh cấp mọi người toàn quyền root và tránh thói quen đăng nhập superuser khi không cần.