Sudo là gì?
Sudo là từ viết tắt của “substitute user do“, hay “super user do”. Đây là một chương trình của Linux. Nó cho phép user chạy chương trình với những đặc quyền bảo mật của user khác trong Linux (thường là root user).
Những hoạt động mà sudo làm cực kỳ quan trọng đối với các bản phân phối của Linux. Vì thế, dù bạn đang sử dụng bản phân phối nào của Linux thì cũng đến lúc nên tận dụng các lợi thế mà sudo mang lại.
Lệnh Sudo trong Linux
Dưới đây là một số lệnh Sudo trong Linux được biểu diễn một cách súc tích và hấp dẫn:
-
Thêm quyền Poweroff
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
user localhost= NOPASSWD: /sbin/poweroff
-
Cho phép User tắt máy mà không cần xác nhận mật khẩu
user localhost= NOPASSWD: /sbin/shutdown
-
Cho phép thực hiện lệnh nào đó trong /usr/bin
user linux01 = /usr/bin/*
-
Cho phép thực hiện nhiều lệnh với quyền Root
user ALL=(root) /sbin/shutdown, /bin/kill, /etc/init.d/httpd
Lưu ý: Các lệnh Sudo trong Linux đều cần được sử dụng một cách cẩn thận để tránh nguy cơ bảo mật. Việc cấu hình đúng và hiểu rõ về quyền hạn là rất quan trọng.
- Xem thêm: Lệnh cơ bản trong Linux , Lệnh cơ bản trong Ubuntu
Sự khác biệt giữa sudo trong linux và su
Sudo có thể khởi động một cửa sổ mới của quyền Root. Với bảng phân phối Linux, người dùng có thể đăng nhập với tư cách ngưởi sử dụng Root bằng cách gõ lệnh Su. Từ đó, người dùng đăng nhập account, password của tài khoản Root và truy cập tài khoản của người dùng bằng cửa sổ Terminal.
Sudo chỉ chạy dòng lệnh khi được Root cho phép. Tức là, khi chạy Sudo, bạn cần nhập thông tin về tài khoản, mật khẩu mới có thể chạy câu lệnh như người dùng Root. Bên cạnh đó, để xác nhận quyền của các User, Sudo còn dùng file config (/ etc / sudoers).
Từ đó có thể thấy, sự khác nhau giữa Su và Sudo trong Linux đó là:
- Su: Người dùng bắt buộc phải chia sẻ Root Password với User khác. Su khởi động cửa sổ Shell mới.
- Sudo: Để chạy câu lệnh của hệ thống, người dùng sẽ sử dụng tài khoản của mình. Ngược lại với Su, Sudo không khởi động bất cứ Sheet mới nào.
- Có thể bạn quan tâm: Phân biệt sự khác nhau giữa Hosting Linux và Hosting Windows
Sử dụng sudo trong các distro linux
Ubuntu là bản phân phối linux đầu tiên sử dụng mặc định sudo (sudo Ubuntu). Khi người dùng cài đặt Ubuntu thì tài khoản root cũng tự động tạo và không có password. Vì thế, bạn cần phải tạo password cho tài khoản thì mới có thể login vào root. Với Ubuntu và các bản distro trên nền Debian, người dùng phải ghi nhớ password. Theo cách này, Ubuntu cũng khuyến khích người dùng tránh đăng nhập vào root. Còn trên nền tảng Fedora, người dùng phải tạo password khác nhau cho tài khoản của mình và tài khoản root.
Thực tế cũng cho thấy có cách kết hợp khá thú vị giữa sudo và su khiến người dùng Linux vô cùng thích thú. Đó là, sudo yêu cầu password, sau khi nhập xong thì nó sẽ chạy câu lệnh như người dùng root. Tiếp đến, để chạy câu lệnh đơn với quyền root thì bạn sử dụng cú pháp “su -c "command"”.
Tại sao sudo lại thần thánh đến vậy?
Sudo là cách tốt nhất và an toàn nhất để nâng cao các đặc quyền. Theo cách thông thường, “su” sẽ yêu cầu bạn nhập roor password và cung cấp cho bạn lời nhắc superuser, được biểu thị bằng ký hiệu #.
Biểu tượng # đó có nghĩa là “NGUY HIỂM! BẠN ĐANG ĐĂNG NHẬP ROOT!”
- Command đầu tiên của bạn có thể diễn ra tốt đẹp. Nhưng nếu bạn hay quên mà vẫn đăng nhập quyền root?
- Một lỗi đánh máy và bạn đã xoá bỏ mọi thứ. => Web server và cả business của bạn sẽ biến mất hoàn toàn
- Với lệnh sudo, bạn phải nhập vào sudo trước mỗi command.
=> Do đó, bạn không cần phải nhớ quay lại chế độ người dùng thông thường và sẽ ít xảy ra sai sót.
Cách cấu hình cho phép user dùng lệnh sudo trong linux
Để có thể cấu hình và cấp quyền sudo cho user trong Ubuntu, bạn đăng nhập với tư cách user root.
- Bước 1: Dùng lệnh “adduser ” để tạo user vào hệ thống.
- Bước 2: Dùng lệnh “passwd ” để cập nhật password cho user vừa tạo.
Lưu ý: mật khẩu phải đủ mạnh theo yêu cầu và bạn cũng được đề nghị thực hiện xác nhận lại mật khẩu.
- Bước 3: Dùng lệnh “usermod -aG wheel username” để thêm user vừa khởi tạo vào nhóm wheel.
- Bước 4: Kiểm tra user sử dụng lệnh sudo được chưa, bằng cách nhập lệnh sau:
su -
sudo ls –la
Cách cấp quyền sudo cho user trong Ubuntu
- Bước 1: Dùng lệnh “adduser ” để tạo user.
Trên Ubuntu hay Debian thì không cần thiết lập password mà lệnh adduser sẽ kiêm nhiệm luôn việc hỏi mật khẩu người dùng.
- Bước 2: Dùng lệnh “adduser sudo” để thêm tài khoản mới vào nhóm sudo.
- Bước 3: Kiểm tra user sử dụng lệnh sudo được chưa, bằng câu lệnh sau:
su -
sudo ls –la
>>Xem thêm: Cách xóa Memcached trên Server Linux (CentOS , Ubuntu)
Khi user đã được thêm vào nhóm thì lệnh của user được thực thi dưới quyền root. Và trong một vài trường hợp, quản trị viên giới hạn quyền root của user, chỉ cho họ dùng lệnh sudo thực hiện một số lệnh thì có thể cấu hình file visudo để phân quyền cho user.
Cách thực hiện cụ thể cho một số quyền thông dụng:
- Thêm quyền poweroff: đây là quyền dùng sudo để tắt máy. Để phân quyền này, bạn dùng câu lệnh sau.
## Allow root to run any commands anywhere
root All=(All) All
user localhost= NOPASSWD: /sbin/poweroff
- Cấu hình cho user dùng lệnh sudo: cấu hình cho phép user dùng lệnh sudo để thực hiện toàn bộ lệnh hay chỉ vài lệnh của user root.
- Cho phép thực hiện nhiều lệnh với quyền roof:
user ALL=(root) /sbin/shutdown, /bin/kill, /etc/init.d/httpd.
- Cho phép user tắt máy không cần xác nhận mật khẩu:
user localhost= NOPASSWD: /sbin/shutdown.
- Cho phép user thực hiện bất kỳ một lệnh nào đó trong /usr/bin:
user linux01 = /usr/bin/*
Trên đây là chia sẻ của Hosting Việt về sudo là gì cũng như cách tạo và thiết lập quyền sudo linux cho user mới. Mặc dù chỉ là những thông tin cơ bản về sudo nhưng nếu nắm vững và áp dụng chúng, bạn sẽ thấy được tính ứng dụng hiệu quả của lệnh này. Nếu có thắc mắc gì bạn hãy để lại bình luận bên dưới nhé!