web-dev-qa-db-ja.com

Sudoが使用されているにもかかわらず、vimがファイルに書き込めない

vimを使用して、通常のユーザーとして書き込みアクセス権を持たないファイルを編集しようとすると、Sudoを使用しても、書き込めませんが、 nanoを使用して、動作する同じファイルを編集します。

だから例えば私がそうするなら:

Sudo vim /var/path/to/file.conf

ファイルでこれを取得し、そのファイルを編集することはできません:

"/var/path/to/file.conf" [readonly]

しかし、私が代わりに:

Sudo nano /var/path/to/file.conf

ファイルに書き込むことができますが、これはなぜですか、なぜSudovimと同じようにnano書き込みアクセス権を与えないのですか?これは何らかのバグですか?それとも、これは単なるものですか?とても迷惑だからです。


OS情報:

Description:    Ubuntu 15.04
Release:    15.04

パッケージ情報:

vim:
  Installed: 2:7.4.488-3ubuntu2
  Candidate: 2:7.4.488-3ubuntu2
  Version table:
 *** 2:7.4.488-3ubuntu2 0
        500 http://gb.archive.ubuntu.com/ubuntu/ vivid/main AMD64 Packages
        100 /var/lib/dpkg/status
3
user364819

これは、vim(およびvi)の意図された動作です。

読み取り専用ファイルを編集する場合、通常の方法で(:wを使用して)ファイルを書き込もうとすると失敗します。これは、変更したくない読み取り専用ファイルを誤って変更しないようにするためです。

really所有するファイルの読み取り専用権限を上書きし、ファイルに変更を書き込む場合は、使用する必要があります:w! commandこれにより、vimはこれがあなたの望むものであることを知っています。

  • これは、未保存の変更がある場合に:qが終了しないのに似ていますが、:q!は終了します。

変更を書き込んで1つのコマンドで終了する場合は、:wq!または:x!を使用できます。

9
Eliah Kagan