Trong hệ thống Linux, do quyền root quá lớn nên thường không được sử dụng. Chỉ trong một số trường hợp đặc biệt, root mới được sử dụng để thực hiện các tác vụ quản lý, Nói chung, các lệnh su và sudo thường được dùng để tạm thời sử dụng quyền root.
Lệnh su là một công cụ để chuyển đổi người dùng. Ví dụ, bạn đăng nhập với tư cách là một người dùng bình thường, nhưng để thêm các tác vụ cho user, bạn không có đủ thẩm quyền và quyền này chính xác thuộc sở hữu của root.
Có 2 giải pháp: Một là đăng xuất khỏi user hiện tại và đăng nhập lại với tư cách người dùng root. Hai là không cần thoát khỏi user hiện tại mà sử dụng su để chuyển sang root và thêm user.
Chuyển đổi qua su rõ ràng là tốt hơn. Nhưng lưu ý là người dùng bình thường cần xác thực mật khẩu để thực hiện chuyển đổi sang bất kỳ user nào khác.
Lệnh sudo
Sudo là một cơ chế quản lý quyền, phụ thuộc vào /etc/sudoers, xác định người dùng nào được phép thực hiện loại lệnh quản lý nào. Định dạng lệnh là:
sudo -u username command
Theo mặc định, chỉ người dùng root mới có thể thực thi lệnh sudo. Người dùng root cần chỉnh sửa file cấu hình sudo /etc/sudoers bằng cách sử dụng lệnh visudo để cho phép những người dùng bình thường khác thực thi lệnh sudo.
Sudo chạy như sau:
1) Khi người dùng chạy sudo, hệ thống sẽ tìm trong file /etc/sudoers để xem người dùng có quyền chạy sudo hay không.
2) Nếu người dùng có quyền chạy sudo, thì việc tiếp theo cần làm là nhập mật khẩu của chính user đó.
3) Giả sử mật khẩu là chính xác. Bắt đầu lệnh sau sudo, bạn không cần nhập mật khẩu để chạy sudo với tư cách root nữa.
Làm thế nào để đặt mật khẩu su ban đầu?
Khi gõ su, bạn sẽ thấy rằng cần nhập mật khẩu. Nếu cố gắng nhập mật khẩu của user hiện tại, lỗi sẽ xuất hiện. Nhưng bạn không biết mật khẩu su là gì? Trên thực tế, mật khẩu su ban đầu có thể được đặt theo cách sau:
sudo passwd
Sau khi thiết lập xong, chỉ cần nhập lệnh su và gõ mật khẩu vừa đặt là được.
Lệnh su
Su là viết tắt của switch user. Với su, bạn có thể chuyển đổi bất kể user nào, Nói chung là chỉ cần sử dụng su-username và nhập mật khẩu vào là được, nhưng root thì không cần nhập mật khẩu khi chuyển sang danh tính khác với su.
Có 2 định dạng:
su -l username
su username
-l là viết tắt của login.
Nếu bạn không chỉ định tên user, thì root được coi là tùy chọn mặc định, vì vậy lệnh để chuyển sang root là: su -root hoặc su-, su root hoặc su.
su username khác với su-username như sau:
su-username sau khi chuyển đổi user, cũng đồng thời chuyển sang môi trường làm việc của user mới. Sau khi su username chuyển đổi user, thư mục làm việc của user ban đầu và các thư mục biến môi trường khác không thay đổi.
Lệnh su-
Khi lệnh su-, su -l hoặc su --login thay đổi danh tính, thư mục đang làm việc, home, shell, user, logname đồng thời cũng thay đổi. Ngoài ra, biến path cũng được thay đổi. Việc sử dụng lệnh su- sẽ được chuyển đổi thành người dùng root theo mặc định.
Lệnh su- không có tham số không thay đổi thư mục làm việc hiện tại, cũng như home, shell, user, logname. Nó chỉ có quyền root.
Lưu ý: su- sử dụng mật khẩu của root và sudo sử dụng mật khẩu của user.
Xem thêm: