/etc/apt/sources.liste " E212: impossible d'ouvrir le fichier pour l'écriture

J'essaie d'éditer des sources.liste en utilisant l'éditeur vi mais en obtenant l'erreur suivante lors de l'enregistrement du fichier:

/etc/apt/sources.list" E212: Can't open file for writing
126
demandé sur Eric Leschinski 2011-11-24 11:12:22

10 réponses

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 a un système d'aide intégré, je viens de citer ce qu'il dit à :h E212. Vous pouvez modifier le fichier en tant que superutilisateur comme sudo vim FILE. Ou si vous ne voulez pas quitter votre session vim existante (et que vous savez avoir les droits sudo appropriés) , vous pouvez émettre:

:w !sudo tee % > /dev/null

Qui va enregistrer le fichier.

HTH

198
répondu Zsolt Botykai 2013-04-26 10:39:18

Ce Qui m'arrive tout le temps, j'ouvre un fichier racine pour l'écriture:

Au lieu de perdre tous vos changements et de rouvrir avec sudo. Voir cette démo de la façon d'enregistrer ces modifications:

Démo D'installation unique pour créer un fichier en lecture seule appartenant à la racine pour un utilisateur inférieur:

sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el

Ouvrez D'abord le fichier en tant qu'utilisateur normal:

vi temp.txt

Ensuite, apportez quelques modifications au fichier, il vous avertit de sa lecture seule. Utilisez cette commande.

:w !chmod 777 %

Alors écrire le fichier:

:wq!

Les autorisations sont étendues et le fichier est enregistré. Vous avez besoin du point d'exclamation car vous modifiez un fichier racine en tant qu'utilisateur inférieur.

Explication de ce que fait cette commande:

Le :W signifie écrire le fichier. Le bang signifie commencer à interpréter comme shell. chmod signifie changer les autorisations, 777 signifie des autorisations complètes partout. Le pourcentage signifie le nom de fichier actuel.

Il applique le changement. Et il vous demande si vous voulez de re-charger. Appuyez sur " O "pour " Ok". Ne rechargez pas ou vous perdrez vos modifications.

21
répondu Eric Leschinski 2014-12-08 19:11:08

Ou peut-être que vous êtes sur un fs monté en lecture seule

8
répondu kellogs 2013-05-16 10:31:40

Pour moi, il y avait une solution assez simple. J'essayais de modifier/créer un fichier dans un dossier qui n'existe pas. Comme j'étais déjà dans le dossier que j'essayais de modifier/créer un fichier en.

C'est-à-dire pwd folder/file

Et tapait

sudo vim folder/file

Et plutôt évidemment, il cherchait le dossier dans le dossier et ne parvenait pas à enregistrer.

6
répondu Simon 2017-05-26 11:06:50

Essayez de vous connecter en tant que root, puis éditez le fichier. Cela fonctionne pour moi

0
répondu Kazman 2017-03-08 12:56:13

J'ai référencé Zsolt au niveau 2, j'ai entré:

:w !sudo tee % > /dev/null

Et puis dans ma situation, Je ne peux toujours pas modifier le fichier, donc il a incité à ajouter"!". donc j'entre

:q! 

Alors ça marche

0
répondu Oscar Zhou1989 2017-05-13 02:43:02

Pour moi a travaillé en changeant le système de fichiers de lecture seule avant d'exécuter vim:

bash-3.2# mount -o remount rw /
0
répondu Przemysław Czechowski 2017-07-24 07:43:11

Il est possible que le fichier auquel vous accédez ait déjà une copie d'échange (ou une version d'échange) dans le même répertoire

Donc d'abord voir si un fichier caché existe ou non.

Par exemple, voir pour le type de fichiers suivant

.system.conf.swp

, En utilisant la commande

ls -a

Et puis, supprimez-le en utilisant ...

rm .system.conf.swp

Habituellement, je recommande de commencer à utiliser les privilèges super utilisateur en utilisant ...

sudo su
0
répondu Abdullah Khilji 2018-03-13 08:29:24

J'ai eu cette erreur lorsque je l'ai utilisé git rm sur un fichier dans un répertoire.

J'étais dans quelque chose comme ~ / gitRepo/code / newFeature

Dans newFeature, il n'y avait qu'un seul fichier. J'ai fait un git rm sur ce fichier puis j'ai essayé de créer un nouveau fichier myNewFile en utilisant vi.

Ubuntu m'a montré comme étant toujours dans le répertoire newFeature mais en fait git rm avait supprimé tout le répertoire.

J'ai dû sortir de vi, naviguer dans un répertoire, puis recréer le répertoire newFeature.

0
répondu DatabaseShouter 2018-06-28 12:26:57

Vous avez juste besoin d'accéder à Gemfile avec un accès root. Avant vi:

Commande:

sudo su -

Puis:

vi ~/...
-2
répondu Ali G 2015-09-05 10:00:52