Tôi đã tìm thấy câu hỏi này giải thích cách chỉnh sửa tệp từ xa bằng vim bằng cách sử dụng:
vim scp://user@myserver[:port]//path/to/file.txt
Có thể làm điều này như root (thông qua sudo
) trên máy chủ từ xa?
Tôi đã thử tạo một tệp có quyền root trên máy chủ từ xa và chỉnh sửa nó bằng cách ở trên. Vim có thể xem nội dung, có thể chỉnh sửa nội dung và có thể lưu nội dung nhưng không có gì thay đổi trên máy chủ từ xa (có lẽ vì vim chỉ lưu tệp tạm thời của nó và sau đó đưa nó vào scp để đặt lại?)
Khi làm điều này với một tập tin được lưu bởi người dùng của tôi, nó hoạt động như mong đợi.
SSH của tôi sử dụng khóa để xác thực và máy chủ từ xa có NOPASSWD để truy cập sudo của tôi
Câu hỏi này tương tự, nhưng câu trả lời duy nhất với phiếu bầu sử dụng con rối chắc chắn không phải là điều tôi muốn sử dụng.
Chỉnh sửa: Đáp lại bình luận của @ drewbenn bên dưới, đây là toàn bộ quá trình chỉnh sửa của tôi:
vim scp://nagios//tmp/notouch
Trong trường hợp /tmp/notouch
được các tập tin sở hữu bởi root, tôi thấy một cách nhanh chóng cho thấy vim
:!scp -q 'nagios:/tmp/notouch' '/tmp/vaHhwTl/0'
Điều này tự động biến mất để mang lại một màn hình đen trống rỗng với văn bản
"/tmp/vaHhwTl/0" 1L, 12C
Press ENTER or type command to continue
Nhấn enter cho phép tôi chỉnh sửa tập tin
Việc lưu bật lên cùng loại lệnh scp như lúc ban đầu, nó sẽ nhanh chóng tự động biến mất (thật khó để đọc kịp thời nhưng các tệp scp và / tmp / ... chắc chắn là có)
.vimrc
tệp của tôi
ssh -t host sudo vim file
?
ssh
đến máy chủ và chỉnh sửa tệp ở đó (vớivisudo
, hoặc bất cứ điều gì). Bất cứ điều gì khác có ý nghĩa bảo mật.