Saya mencoba mengedit sources.list menggunakan vi editor tetapi mendapatkan kesalahan berikut saat menyimpan file:
/etc/apt/sources.list" E212: Can't open file for writing
Saya mencoba mengedit sources.list menggunakan vi editor tetapi mendapatkan kesalahan berikut saat menyimpan file:
/etc/apt/sources.list" E212: Can't open file for writing
Jawaban:
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 memiliki sistem bantuan bawaan. Saya hanya mengutip apa yang dikatakan :h E212
.
Anda mungkin ingin mengedit file sebagai superuser sebagai sudo vim FILE
. Atau jika Anda tidak ingin meninggalkan sesi vim yang ada (dan sekarang memiliki hak sudo yang tepat), Anda dapat mengeluarkan:
:w !sudo tee % > /dev/null
Yang akan menyimpan file.
HTH
Alih-alih kehilangan semua perubahan Anda dan membuka kembali dengan sudo. Lihat demo ini tentang bagaimana menyimpan perubahan itu:
Demo penyiapan satu kali untuk membuat file read only yang dimiliki root untuk pengguna yang lebih rendah:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
Pertama buka file sebagai pengguna normal:
vi temp.txt
Kemudian buat beberapa perubahan pada file, itu memperingatkan Anda hanya baca. Gunakan perintah ini.
:w !chmod 777 %
Kemudian tulis file:
:wq!
Izin diperluas, dan file disimpan. Anda memerlukan tanda seru karena Anda mengedit file root sebagai pengguna yang lebih rendah.
Penjelasan tentang apa yang dilakukan perintah itu:
The: w berarti menulis file. Bang berarti mulai menafsirkan sebagai shell. chmod berarti mengubah izin, 777 berarti izin penuh di mana-mana. Persen berarti nama file saat ini.
Itu berlaku perubahan. Dan ia bertanya apakah Anda ingin memuat ulang. Tekan "O" untuk "Oke". Jangan memuat ulang atau Anda akan kehilangan perubahan Anda.
Bagi saya ada solusi yang cukup sederhana. Saya mencoba mengedit / membuat file di folder yang tidak ada. Karena saya sudah berada di folder saya mencoba mengedit / membuat file masuk
yaitu pwd folder/file
dan sedang mengetik
sudo vim folder/file
dan lebih tepatnya itu mencari folder di folder dan gagal menyimpan.
Atau mungkin Anda sedang membaca fs yang terpasang
Saya dirujuk ke Zsolt di level 2, saya masukan:
:w !sudo tee % > /dev/null
dan kemudian dalam situasi saya, saya masih tidak dapat memodifikasi file, sehingga diminta menambahkan "!". jadi saya masukan
:q!
lalu bekerja
bagi saya bekerja mengubah filesystem dari Read-Only sebelum menjalankan vim:
bash-3.2# mount -o remount rw /
ubah pengguna menjadi root
sodu su -
telusuri ke dll
vi sudoers
mencari pengguna root di bagian hak pengguna. Anda akan mendapatkannya seperti
root ALL=(ALL:ALL) ALL
buat entri yang sama untuk nama pengguna Anda. jika nama pengguna Anda adalah 'myuser' kemudian tambahkan
myuser ALL=(ALL:ALL) ALL
akan terlihat seperti
root ALL=(ALL:ALL) ALL
myuser ALL=(ALL:ALL) ALL
Simpan itu. ubah pengguna root ke pengguna Anda. sekarang coba sama di mana Anda mendapatkan masalah sudoers
Mungkin saja file yang Anda akses memiliki salinan swap (atau versi swap) yang sudah ada di direktori yang sama
Karenanya pertama-tama lihat apakah ada file tersembunyi atau tidak.
Sebagai contoh, lihat untuk jenis file berikut
.system.conf.swp
Dengan menggunakan perintah
ls -a
Dan kemudian, hapus menggunakan ...
rm .system.conf.swp
Biasanya, saya sarankan untuk mulai menggunakan hak pengguna super menggunakan ...
sudo su
Saya mendapatkan kesalahan ini ketika saya menggunakan git rm
file dalam direktori.
Saya berada di sesuatu seperti ~ / gitRepo / code / newFeature
Di newFeature hanya ada satu file. Saya melakukangit rm
pada file itu kemudian mencoba membuat file baru myNewFile menggunakan vi.
Ubuntu menunjukkan saya masih berada di dalam direktori newFeature tetapi sebenarnya git rm
telah menghapus seluruh direktori.
Saya harus keluar dari vi, menavigasi satu direktori dan kemudian membuat ulang direktori newFeature.