Tại sao tôi phải chỉnh sửa / etc / sudoers bằng visudo?


51

Tôi đã nhận thấy rằng tệp sudoers và tệp cấu hình cron hoạt động theo cách đặc biệt so với các tệp cấu hình khác trên Linux. Chúng cần được chỉnh sửa bằng trình bao bọc đặc biệt thay vì bất kỳ trình soạn thảo văn bản nào. Tại sao lại thế này?


Câu trả lời:


71

Bạn sử dụng visudo chủ yếu để ngăn chặn hệ thống của bạn phá vỡ. Visudo chạy kiểm tra các thay đổi của bạn để đảm bảo bạn không làm hỏng bất cứ điều gì. Nếu bạn đã làm hỏng một cái gì đó, bạn hoàn toàn có thể phá hỏng khả năng sửa chữa nó hoặc làm bất cứ điều gì cần đặc quyền mà không cần khởi động lại vào chế độ cứu hộ.

Trang người đàn ông mô tả điều này .

Visudo chỉnh sửa tệp sudoers theo cách an toàn, tương tự như vipw (8). visudo khóa tệp sudoers chống lại nhiều chỉnh sửa đồng thời, cung cấp kiểm tra độ tỉnh táo cơ bản và kiểm tra lỗi phân tích cú pháp. Nếu tệp sudoers hiện đang được chỉnh sửa, bạn sẽ nhận được một tin nhắn để thử lại sau.


3
Hấp dẫn! +1, để minh họa một lời giải thích đơn giản cho một điều mà tôi nên biết từ lâu :)
Greg Meehan

7
Hành vi của visudo có sẵn rộng rãi như một lệnh gọi là sudoedit. Điều này thực hiện cùng chu trình khóa / sao chép / chỉnh sửa / sao chép / mở khóa (mặc dù rõ ràng không phải với bước phân tích cú pháp). Một lợi thế này là nó cho phép bạn cung cấp cho mọi người quyền truy cập sudo để chỉnh sửa các tệp thuộc sở hữu gốc mà không cần khởi chạy trình chỉnh sửa dưới quyền root, điều này có thể cho phép họ khởi chạy trình bao từ bên trong trình chỉnh sửa. Nếu tôi bỏ trình soạn thảo của mình trong khi chạy sudoedit, euid của tôi vẫn là của riêng tôi.
James F

18

Câu trả lời của Zoredache là hoàn hảo.

Một điều nữa có thể đáng được đề cập. Bạn có thể sử dụng trình soạn thảo yêu thích của mình bằng cách cài đặt EDITORhoặc VISUAL:

export EDITOR=whatevertexteditoryouwant
export VISUAL=whatevertexteditoryouwant

Hoặc là:

EDITOR=whatevertexteditoryouwant visudo

Nếu bạn làm điều đó, nó vẫn sẽ thực hiện bước kiểm tra cú pháp, hoặc nó sẽ tương đương với việc gọi sudoedit như @James F đề xuất?
o0 '.

Có là câu trả lời cho câu hỏi của bạn. Bạn có thể sử dụng hầu hết mọi trình soạn thảo mà bạn có thể gọi từ cli.
cstamas

3
Đó không phải là câu hỏi có hay không: V
o0 '.

5
Nó sẽ làm kiểm tra cú pháp.
cstamas
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.