Tại sao sudo cho tôi biết mật khẩu của tôi là sai?


7

Gần đây tôi đã cài đặt OpenBSD 4.9 trong máy tính của mình, vì vậy tôi có thể tìm hiểu một chút về các hệ điều hành giống Unix. Tôi đã thêm một người dùng mới vào hệ thống được gọi là bruno. Đồng ý. Khi tôi sử dụng lệnh 'sudo', nó sẽ hỏi tôi mật khẩu. Vì vậy, tôi nhập mật khẩu. Nhưng nó khiến tôi nói rằng mật khẩu là sai, mặc dù tôi chắc chắn rằng mật khẩu là chính xác. Tôi đang thiếu gì ở đây? Tôi biết nếu thêm

 bruno ALL = (ALL) NOPASSWD: ALL

đến tập tin / etc / sudoers, nó dừng yêu cầu nhập mật khẩu và tôi có thể thực thi lệnh sudo. Tôi nên làm gì ở đây? Tùy chọn chính xác / an toàn nhất là gì? Tôi xin lỗi nếu đó là một câu hỏi tầm thường. Tôi không thể tìm thấy một lời giải thích tốt cho vấn đề này. Tôi không chỉ tìm kiếm giải pháp, mà còn giải thích về cách thức hoạt động của toàn bộ người dùng / quyền / mật khẩu này.


2
Khi bạn chạy sudo với mật khẩu, nó sẽ hỏi bạn mật khẩu của bạn . Có phải đó là những gì bạn đang nhập?
Mat

@Mat: " Khi bạn chạy sudo bằng mật khẩu, nó sẽ hỏi bạn mật khẩu của bạn. " ... Nhân tiện, đó là "hành vi mặc định" mang tính hủy diệt xã hội nhất mà tôi từng thấy trong thế giới Linux cho đến nay. Cuối cùng, nó phải dẫn đến sự thiếu hiểu biết (như được trình bày trong câu hỏi này ).
rozcietrzewiacz

2
@rozcietrzewiacz: Vấn đề là sudocó thể được sử dụng bởi những người dùng không biết mật khẩu gốc. Ví dụ: chủ sở hữu hệ thống có thể cấp cho một số người dùng quyền thực thi một số lệnh nhất định mà không cấp cho họ quyền truy cập root đầy đủ. (Nó cũng làm giảm sự tiếp xúc của mật khẩu gốc với keylogger và lướt vai.) Đối với sự thiếu hiểu biết mà bạn than thở, nó có thể được chữa khỏi bằng cách trả lời câu hỏi; xem bên dưới.
Keith Thompson

@KeithThndry Ok, tôi thấy không thể hiện rõ ràng. Nó không phải về làm thế nào sudo có thể được sử dụng (nó là một công cụ rất hữu ích!) - đó là khoảng cách nó được thiết lập theo mặc định trên distro như Ubuntu . Sự thiếu hiểu biết có thể và nên được chữa khỏi tất nhiên (đây là một phần những gì trang web này là dành cho). Vấn đề là, những xu hướng nguy hiểm mà sudocấu hình mặc định tạo ra.
rozcietrzewiacz

1
@rozcietrzewiacz: Tôi vẫn không biết bạn đang đề cập đến vấn đề gì.
Keith Thompson

Câu trả lời:


8

Đây là một minh họa về sự khác biệt giữa xác thựcủy quyền .

Sudo chủ yếu là một công cụ để ủy quyền. Nhiệm vụ của nó là xác định xem bạn có được phép thực thi một lệnh với các đặc quyền nâng cao hay không và nếu có, để thực thi lệnh đó. Một mục như

bruno ALL = (ALL): ALL

trong sudoerstệp cho phép người dùng brunothực thi bất kỳ lệnh nào với bất kỳ đặc quyền nào.

Để áp dụng quy tắc này, Sudo cần biết rằng người dùng thực sự gọi nó bruno. Về nguyên tắc, nó có thể dựa vào cơ chế xác thực của hệ thống: nếu bạn có thể chạy các lệnh như bruno, điều đó có nghĩa là bạn đã được xác thực là bruno. Tuy nhiên, vì việc sử dụng Sudo có thể gây ra hậu quả lớn, đôi khi Sudo yêu cầu một số xác thực bổ sung: đôi khi bạn cần nhập lại mật khẩu của mình. Điều này có nghĩa là nếu bạn rời khỏi bảng điều khiển của mình mà không cần giám sát và người qua đường sẽ chạy lệnh như vậy bruno, họ sẽ không thể sử dụng Sudo: họ có thể làm hỏng tài khoản của bạn, nhưng không phải là phần còn lại của hệ thống.

Một ưu điểm khác của việc yêu cầu mật khẩu là nó thông báo cho bạn rằng có điều gì đó bất thường đang diễn ra. Ví dụ, một ứng dụng không thể âm thầm gọi sudo: nó sẽ cần hỏi bạn mật khẩu của bạn và một dấu nhắc mật khẩu không mong muốn sẽ cảnh báo bạn rằng có điều gì đó xấu đang diễn ra.

Trong thực tế, yêu cầu mật khẩu mỗi lần bạn chạy Sudo sẽ gây khó chịu. Do đó, hành vi mặc định là thỏa hiệp: yêu cầu mật khẩu cứ sau vài phút. Bằng cách này, người qua đường hoặc ứng dụng có thể gây hại bằng cách sudochỉ chạy nếu bạn đã thực hiện trong vài phút qua.


2

Bạn nên đọc hướng dẫn: man sudo(Cũng ở đây ) và tôi không chắc các quy tắc là gì nhưng trên hầu hết các hệ thống unix sudo chỉ được người dùng trong wheelnhóm cho phép . Vì vậy, bạn nên tạo một quy tắc cho người dùng mới này yêu cầu mật khẩu hoặc bạn thêm người dùng vào nhóm bánh xe. (Sử dụng usermod -a -G wheel bruno)


1
Yêu cầu cho người dùng gọi trong wheelnhóm là phổ biến trên một số biến thể unix (nhưng không phải trên Linux) cho su. Sudo không coi wheellà đặc biệt; một dòng có %wheel ALL=(ALL) ALLtrong sudoerssẽ thực hiện chính sách bánh xe truyền thống, nhưng nó không phải là một phần của cấu hình mặc định.
Gilles 'SO- ngừng trở nên xấu xa'
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.