Nếu bạn biết trước rằng bạn cần chỉnh sửa một tệp dưới dạng root, sử dụng các lệnh sudoedit <file>
hoặc sudo -e <file>
sẽ giúp bạn thiết lập trong một môi trường đặc biệt để làm như vậy với các tùy chọn trình soạn thảo thông thường của bạn. Một bản sao của tệp được tạo và trình soạn thảo của bạn được khởi chạy để chỉnh sửa nó (với tư cách là người dùng của bạn). Khi bạn thoát tập tin được sao chép trở lại vị trí ban đầu của nó là root.
Đó là cách an toàn và được khuyến nghị nhất, nhưng trong trường hợp a) bạn không nhận ra trước thời hạn, bạn sẽ cần phải viết dưới dạng root hoặc b) muốn chỉnh sửa và lưu các thay đổi gia tăng tại chỗ, bạn sẽ cần một thứ khác. Cuối cùng, giải pháp sử dụng sudo tee
được đề xuất bởi smpl chắc chắn đang đi đúng hướng, nhưng có một số cải tiến nhỏ có thể được thực hiện để xử lý các trường hợp cạnh. Đáng chú ý là sự khác biệt trong việc xử lý dấu nhắc mật khẩu sudo trong giao diện GUI so với giao diện điều khiển đáng chú ý.
Một cách dễ dàng hơn để thiết lập tính năng này là sử dụng plugin vim-eunuch . Nó có vấn đề đặc biệt này và một vài thứ tiện dụng khác được cuộn lại thành một gói tiện dụng. Cách sử dụng đơn giản như gọi điện :SudoWrite
. Tôi thậm chí sử dụng một ánh xạ truy cập nhẹ hơn một chút:
cmap w!! call SudoWrite()
Điều đó sẽ giúp bạn có khả năng viết bất kỳ tập tin nào dưới dạng root bằng cách sử dụng :w!!
.
sudo vim file
được viết tốt hơn làsudo -e file
(với điều kiện bạn đặt biến môi trườngEDITOR=vim
).