Câu trả lời:
Thêm Defaults editor=/path/to/editor
vào tệp sudoers sẽ khiến visudo sử dụng trình chỉnh sửa được chỉ định để thay đổi.
Ngoài ra, nếu gói sudo của bạn đã được xây dựng với --with-env-Editor, như mặc định trên một số bản phân phối Linux, bạn cũng có thể đặt biến môi trường EDITOR bằng cách thực thi export EDITOR=/path/to/editor
. Được thực hiện trên dòng lệnh này sẽ hoàn nguyên ngay sau khi phiên shell đó kết thúc, việc đặt biến trong một ~ / .bashrc hoặc / etc / profile sẽ khiến thay đổi tiếp diễn.
visudo
tôn vinh $VISUAL
và $EDITOR
?
--with-env-editor
, gần đây có nghĩa là trong bộ nhớ của internet. Ngoài ra, gói sudo đã thay đổi mặc định của họ một thời gian trước để sử dụng vi làm trình chỉnh sửa mặc định mà tôi tin là trùng khớp với thay đổi hành vi liên quan đến việc chấp nhận các biến môi trường. Tôi không có một mốc thời gian rõ ràng về cách thức, thời gian hoặc nếu các sự kiện này liên quan đến nhau tại thời điểm này.
Sau đây
alternatives
(ban đầu chỉ là Debian và các nhánh của nó, nhưng bây giờ hầu hết các distro lớn, IIUC).có lợi thế là
sudoers
trước với trình chỉnh sửa mặc định của nósudo
đã không được xây dựng với--with-env-editor
Từ một dòng lệnh:
sudo update-alternatives --config editor
sudo visudo
Bây giờ nên mở trình soạn thảo của sự lựa chọn của bạn.
Một chương trình unix bình thường muốn gọi trình soạn thảo sẽ chạy chương trình có tên nằm trong biến EDITOR
hoặc VISUAL
môi trường và nếu biến không được đặt, mặc định phụ thuộc hệ thống. Nhiều, nhưng không phải tất cả, các chương trình kiểm tra cả EDITOR
và VISUAL
; sự khác biệt đã quá lỗi thời (một khi bạn sẽ chạy EDITOR
trên một loại teletype và VISUAL
trên một thiết bị đầu cuối của Kính Glass, vì vậy bạn nên đặt cả hai cùng một giá trị. Có một số bất đồng về việc liệu nội dung của biến có phải là đường dẫn đầy đủ đến một tên thực thi, một tên thực thi được tìm trong $PATH
hoặc một đoạn mã vỏ hay không, vì vậy bạn nên giữ một đường dẫn đến một tệp thực thi không chứa bất kỳ siêu vi khuẩn nào. Mặc định hệ thống khi không có biến nào được đặt theo truyền thốngvi
, mặc dù một số bản phân phối đã thay đổi điều này thành một trình soạn thảo thân thiện với người mới hơn như nano
.
visudo
kiểm tra cả VISUAL
và EDITOR
(điều này có thể được biên dịch, có lẽ là không cho phép root sử dụng trình soạn thảo có bảo mật mà nhà sản xuất phân phối không tin tưởng, nhưng ngay cả OpenBSD cũng không làm điều này).
Các bước này cho phép tôi đặt trình chỉnh sửa thành vi cho visudo trên Ubuntu 12.04, chúng có thể hoạt động cho hầu hết các bản phân phối:
Lệnh phát hành:
sudo visudo
Điều này mở ra tập tin sudoers trong nano. Gần đầu bạn sẽ thấy dòng này:
Defaults env_reset
Thêm dòng sau bên dưới dòng trên:
Defaults editor=/usr/bin/vi
Lưu file và thoát. Mở lại visudo như người dùng mặc định của bạn:
sudo visudo
Các tập tin sudoers bây giờ mở ra trong VI.