viエディターを使用してsources.listを編集しようとしていますが、ファイルの保存中に次のエラーが発生します。
/etc/apt/sources.list" E212: Can't open file for writing
viエディターを使用してsources.listを編集しようとしていますが、ファイルの保存中に次のエラーが発生します。
/etc/apt/sources.list" E212: Can't open file for writing
回答:
For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.
Vimにはヘルプシステムが組み込まれています。私はそれが言っていることを引用しました:h E212
。
スーパーユーザーとしてファイルを編集することもできますsudo vim FILE
。または、既存のvimセッションを終了したくない場合(そして適切なsudo権限を持っている場合)は、次のコマンドを発行できます。
:w !sudo tee % > /dev/null
ファイルを保存します。
HTH
すべての変更を失ってsudoで再び開く代わりに。これらの変更を保存する方法のこのデモを参照してください。
下位ユーザー用にルート所有の読み取り専用ファイルを作成するための1回限りのセットアップデモ:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
まず、通常のユーザーとしてファイルを開きます。
vi temp.txt
次に、ファイルに変更を加えます。読み取り専用であることを警告します。このコマンドを使用します。
:w !chmod 777 %
次に、ファイルに書き込みます。
:wq!
権限が拡張され、ファイルが保存されます。低いユーザーとしてルートファイルを編集しているため、感嘆符が必要です。
そのコマンドの機能の説明:
:wは、ファイルに書き込むことを意味します。強打とは、シェルとして解釈を開始することを意味します。chmodは権限の変更を意味し、777はあらゆる場所で完全な権限を意味します。パーセントは現在のファイル名を意味します。
変更を適用します。そして、再ロードするかどうかを尋ねます。「OK」の場合は「O」を押します。リロードしないでください。変更が失われます。
または、読み取り専用でマウントされたfsを使用している可能性があります
レベル2でZsoltを参照しました。
:w !sudo tee % > /dev/null
それから私の状況では、まだファイルを変更できないため、「!」を追加するように求められました。だから私は入力します
:q!
それでうまくいく
私はvimを実行する前にファイルシステムを読み取り専用から変更しました:
bash-3.2# mount -o remount rw /
ユーザーをルートに変更
sodu su -
などを閲覧する
vi sudoers
ユーザー特権セクションでrootユーザーを探します。あなたはそれを得るでしょう
root ALL=(ALL:ALL) ALL
ユーザー名に同じエントリを作成します。ユーザー名が「myuser」の場合、追加
myuser ALL=(ALL:ALL) ALL
それは次のようになります
root ALL=(ALL:ALL) ALL
myuser ALL=(ALL:ALL) ALL
それを保存。rootユーザーを自分のユーザーに変更します。今あなたがsudoers問題を取得していたのと同じことを試してください
git rm
ディレクトリ内のファイルで使用すると、このエラーが発生しました。
〜/ gitRepo / code / newFeatureのようなものでした
newFeatureでは、ファイルは1つしかありませんでした。git rm
そのファイルでa を実行してから、viを使用して新しいファイルmyNewFileを作成しようとしました。
Ubuntuは、まだnewFeatureディレクトリ内にあることを示しましたが、実際にgit rm
はディレクトリ全体を削除していました。
viを終了し、1つ上のディレクトリに移動してから、newFeatureディレクトリを再作成する必要がありました。