Sự khác biệt chính giữa các lệnh này là ở cách chúng hạn chế quyền truy cập vào các chức năng của chúng.
su
(có nghĩa là "người dùng thay thế" hoặc "người dùng chuyển đổi") - thực hiện chính xác điều đó, nó bắt đầu một phiên bản shell khác với các đặc quyền của người dùng đích. Để đảm bảo bạn có quyền làm điều đó, nó sẽ hỏi bạn mật khẩu của người dùng mục tiêu . Vì vậy, để trở thành root, bạn cần biết mật khẩu root. Nếu có một vài người dùng trên máy của bạn cần chạy các lệnh với quyền root, tất cả họ đều cần biết mật khẩu root - lưu ý rằng đó sẽ là cùng một mật khẩu. Nếu bạn cần thu hồi quyền quản trị viên từ một trong những người dùng, bạn cần thay đổi mật khẩu root và chỉ nói với những người cần giữ quyền truy cập - lộn xộn.
sudo
(hmm ... những gì ghi nhớ? Siêu người dùng-DO?) là hoàn toàn khác nhau. Nó sử dụng tệp cấu hình (/ etc / sudoers) để liệt kê những người dùng nào có quyền đối với các hành động cụ thể (chạy các lệnh như root, v.v.) Khi được gọi, nó yêu cầu mật khẩu của người dùng đã khởi động nó - để đảm bảo người ở thiết bị đầu cuối thực sự là cùng một "joe" người được liệt kê trong /etc/sudoers
. Để thu hồi đặc quyền quản trị viên từ một người, bạn chỉ cần chỉnh sửa tệp cấu hình (hoặc xóa người dùng khỏi một nhóm được liệt kê trong cấu hình đó). Điều này dẫn đến việc quản lý đặc quyền sạch hơn nhiều.
Do đó, trong nhiều hệ thống dựa trên Debian, root
người dùng không có mật khẩu được đặt - tức là không thể đăng nhập trực tiếp bằng root.
Ngoài ra, /etc/sudoers
cho phép chỉ định một số tùy chọn bổ sung - tức là người dùng X chỉ có thể chạy chương trình Y, v.v.
Kết hợp thường được sử dụng sudo su
hoạt động như sau: trước tiên sudo
hỏi bạn mật khẩu của bạn và, nếu bạn được phép làm như vậy, hãy gọi lệnh tiếp theo ( su
) là siêu người dùng. Bởi vì su
được gọi bởi root
, nó không yêu cầu bạn nhập mật khẩu của người dùng đích. Vì vậy, sudo su
cho phép bạn mở một shell như một người dùng khác (bao gồm cả root), nếu bạn cho phép siêu người dùng truy cập bằng /etc/sudoers
tệp.
su user
để đăng nhập từ vỏ không đáng tin cậy, nhưngsu - user
. Xem unix.stackexchange.com/q/7013/8250