Khi nào su và sudo sử dụng các mật khẩu khác nhau?


12

Tôi có thể chạy bất cứ thứ gì bằng cách sử dụng sudo; mật khẩu của tôi được chấp nhận. Nhưng bất cứ khi nào tôi cố gắng làm sutừ một cái vỏ, nó sẽ thất bại với:

su: mật khẩu không đúng

các vấn đề có thể là gì?

Câu trả lời:


22

sucó nghĩa là người dùng thay thế và nếu nó được gọi mà không có bất kỳ đối số nào, bạn sẽ trở thành siêu người dùng. Do đó bạn phải nhập mật khẩu root.

Đây là một số điều không hài lòng nếu nhiều người cần sử dụng các lệnh cho quản trị hệ thống hoặc các công cụ tương tự với quyền người dùng mở rộng. Bạn không muốn mọi người có quyền không giới hạn bằng cách chia sẻ tất cả mật khẩu gốc.

Giải pháp cho loại vấn đề này là sudo(" người dùng thay thế làm "). Điều này sẽ cho phép bạn chỉ định các lệnh mà ai đó có thể gọi và xác định các quyền. Đối với sudobạn không phải nhập mật khẩu gốc, nhưng mật khẩu của người dùng cố gắng gọi lệnh sudo.

Một số bản phân phối có người dùng root bị vô hiệu hóa vì lý do bảo mật. Đây có thể là một lời giải thích tại sao bạn không thể sử dụng su. Trong trường hợp đó, để có được một trình bao với quyền sử dụng quyền root sudo -s;-)


5
Bạn nên thực hiện thao tác cuối cùng sudo su -đó khi dấu gạch ngang có nghĩa là đặt môi trường theo hồ sơ đăng nhập của người dùng (trong trường hợp này là root). Điều này thường làm tăng nhẹ bảo mật PATH nhưng vẫn không bảo vệ chống lạiecho hi > /dev/my_critical_filesystem
msw

aaah quên cái này :-) thx để thêm vào!
echox

@echox: Vậy thì, có sự khác biệt nào giữa $ script$ sudo scriptkhông? Người dùng giống nhau trong cả hai trường hợp.
Lazer

sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.- từ người đàn ông sudo. Thông thường tập lệnh sẽ được gọi với quyền root. Đó là sự khác biệt.
echox

1
@Chris: thật không may, điều đó là bắt buộc nếu bạn muốn kế thừa toàn bộ môi trường người dùng root, bao gồm cả PATH của nó. Tình cờ, tôi mới phát hiện ra rằng "sudo -s", mà tôi đã nhận xét ở trên nhưng hiện đã gỡ bỏ, tương đương với "sudo su", không có dấu gạch ngang: không thay đổi đối với CWD, không thay đổi thành PATH.
Warren Young

7

Lệnh su không có tùy chọn, sẽ mặc định cho phép bạn trở thành người dùng root. Nó không yêu cầu mật khẩu của bạn, mà là mật khẩu gốc.

Lệnh sudo luôn yêu cầu mật khẩu của bạn.


2
như một mặt lưu ý, nếu bạn sử dụng Ubuntu, theo mặc định đã bị khóa mật khẩu gốc, vì vậy bạn có thể không biết mật khẩu gốc help.ubuntu.com/community/RootSudo
phunehehe

3
"Lệnh sudo luôn yêu cầu mật khẩu của bạn." Trên thực tế đó là cấu hình. Nó cũng có thể được cấu hình để yêu cầu mật khẩu gốc hoặc mật khẩu của người dùng đích (hoặc hoàn toàn không có mật khẩu).
sepp2k
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.