Làm cách nào để đặt visudo để sử dụng trình chỉnh sửa khác với mặc định trên Fedora?


28

Fedora 14 sử dụng vi theo mặc định khi một người chạy visudo. Có cách nào để thay đổi điều này sang thứ khác không?

Câu trả lời:


44

Thêm Defaults editor=/path/to/editorvà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.


Bạn có thể vui lòng cung cấp (các) lệnh mà bạn đã thực hiện không?
Tok

@Tshepang - Bạn cũng có thể đặt Trình chỉnh sửa mặc định = / usr / bin / nano trong tệp sudoers để chỉ định trình chỉnh sửa. Tại thời điểm này, tôi giả sử rằng bạn muốn sử dụng nano như được chỉ định trong nhận xét trước đó của bạn.
Tok

@Tshepang - Có, tuy nhiên, đây có thể là một sản phẩm đã xây dựng gói bằng cách sử dụng --with-env-Editor.
Tok

1
@Tok: Trên hệ thống nào không visudotôn vinh $VISUAL$EDITOR?
Gilles 'SO- ngừng trở nên xấu xa'

3
@Gilles - dựa trên việc đọc của tôi, Ubuntu gần đây đã thay đổi các tham số xây dựng của gói sudo của họ thành không bao gồm --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.
Tok

11

Sau đây

  • hoạt động cho các distro sử dụng 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à

    1. bạn sẽ không cần chỉnh sửa sudoerstrước với trình chỉnh sửa mặc định của nó
    2. nó hoạt động ngay cả khi gói = sudođã không được xây dựng với--with-env-editor

Từ một dòng lệnh:

  1. Chạy sudo update-alternatives --config editor
  2. Chọn trình soạn thảo mong muốn từ menu (chế độ văn bản). Nếu bạn không thấy trình soạn thảo bạn muốn, có lẽ bạn cần phải cài đặt nó; hủy bỏ, làm điều đó và lặp lại.

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.


7

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 EDITORhoặc VISUALmô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ả EDITORVISUAL; sự khác biệt đã quá lỗi thời (một khi bạn sẽ chạy EDITORtrên một loại teletype và VISUALtrê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 $PATHhoặ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.

visudokiểm tra cả VISUALEDITOR(đ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).


3

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.


2

visudosử dụng EDITORbiến, ví dụ.

sudo EDITOR=/path/to/editor visudo
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.