sudo vs su (là người dùng không root)


10

Máy tính của tôi có user1 và user2, cả hai quản trị viên.

Trong khi tôi đăng nhập với tư cách người dùng1 Tôi đang cố gắng:

  • "su - user2" -> nhắc tôi nhập mật khẩu users2, sau đó tôi có thể nhập lệnh
  • "sudo --user = user2 [lệnh]" -> nhắc tôi nhập mật khẩu. Nếu tôi nhập mật khẩu của user2, tôi nhận được "Xin lỗi, hãy thử lại." thông báo lỗi như thể mật khẩu không chính xác. Nếu tôi gõ mật khẩu của user1, nó sẽ chạy chính xác.

Không nên lệnh sudo yêu cầu mật khẩu người dùng mà tôi xác định trong tham số "--user"?


2
Sudo (siêu người dùng làm) đang yêu cầu pword của người dùng gọi lệnh sudo. Su (người dùng chuyển đổi) đang yêu cầu pword của người dùng được chuyển sang.
Ông Kennedy

Câu trả lời:


21

Đây là hành vi dự kiến.

  • Mục đích của su là chuyển đổi người dùng. Nó được gọi là công cụ nhận dạng người dùng thay thế. su lấy mật khẩu của người dùng khác vì bạn đang chuyển sang người dùng đó.

    Tiện ích su yêu cầu thông tin xác thực người dùng phù hợp thông qua PAM và chuyển sang ID người dùng đó (người dùng mặc định là siêu người dùng). Một shell sau đó được thực thi.

    Nguồn: Trang nam

  • Mục đích của sudo là thực thi một lệnh như một người dùng khác. Các -uhoặc --userlựa chọn cho quy định cụ thể sudo mà người dùng. Bạn không đăng nhập với tư cách người dùng đó, chỉ chạy một lệnh. sudo lấy mật khẩu của bạn để xác minh danh tính của bạn để thực hiện một nhiệm vụ như vậy.


Vì vậy, nếu user1 không có trong tập tin sudoers, tôi sẽ không thể sudo, chỉ là "su"?
Pablo

1
@Pablo Điều đó đúng
grg

@Pablo "chuyển người dùng" so với "siêu người dùng làm". Một yêu cầu bạn xác thực là người dùng khác; cái khác đòi hỏi bạn phải xác thực là siêu người dùng.
Boris the Spider
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.