J'essaie de modifier sources.list à l'aide de l'éditeur vi mais j'obtiens l'erreur suivante lors de l'enregistrement du fichier:
/etc/apt/sources.list" E212: Can't open file for writing
J'essaie de modifier sources.list à l'aide de l'éditeur vi mais j'obtiens l'erreur suivante lors de l'enregistrement du fichier:
/etc/apt/sources.list" E212: Can't open file for writing
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 souhaiterez peut-être modifier le fichier en tant que superutilisateur en tant que sudo vim FILE
. Ou si vous ne voulez pas quitter votre session vim existante (et que vous avez maintenant les droits sudo appropriés), vous pouvez émettre:
:w !sudo tee % > /dev/null
Ce qui enregistrera le fichier.
HTH
Au lieu de perdre toutes vos modifications et de rouvrir avec sudo. Regardez cette démo sur 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 qu'il est en lecture seule. Utilisez cette commande.
:w !chmod 777 %
Puis écrivez 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 moindre.
Explication de ce que fait cette commande:
Le: w signifie écrire le fichier. Le bang signifie commencer à interpréter comme un shell. chmod signifie modifier les autorisations, 777 signifie des autorisations complètes partout. Le pourcentage signifie le nom du fichier actuel.
Il applique le changement. Et il vous demande si vous souhaitez recharger. Appuyez sur "O" pour "Ok". Ne rechargez pas ou vous perdrez vos modifications.
Pour moi, il y avait une solution assez simple. J'essayais de modifier / créer un fichier dans un dossier qui n'existait pas. Comme j'étais déjà dans le dossier, j'essayais de modifier / créer un fichier dans.
c'est à dire pwd folder/file
et tapait
sudo vim folder/file
et plutôt évidemment il recherchait le dossier dans le dossier et ne réussissait pas à enregistrer.
Ou peut-être êtes-vous sur un fs monté en lecture seule
J'ai fait référence à Zsolt au niveau 2, je saisis:
:w !sudo tee % > /dev/null
et puis dans ma situation, je ne peux toujours pas modifier le fichier, donc il m'a demandé d'ajouter "!". alors je saisis
:q!
alors ça marche
pour moi, j'ai travaillé en changeant le système de fichiers de lecture seule avant d'exécuter vim:
bash-3.2# mount -o remount rw /
Lorsque vous ouvrez le fichier dans vim, utilisez sudo. ie: fichier texte sudo vim. cela résoudra le problème.
changer d'utilisateur en root
sodu su -
naviguer vers etc
vi sudoers
recherchez l'utilisateur root dans la section des privilèges utilisateur. vous l'obtiendrez comme
root ALL=(ALL:ALL) ALL
faites la même entrée pour votre nom d'utilisateur. si votre nom d'utilisateur est 'myuser', ajoutez
myuser ALL=(ALL:ALL) ALL
ça ressemblera à
root ALL=(ALL:ALL) ALL
myuser ALL=(ALL:ALL) ALL
sauvegarde le. remplacez l'utilisateur root par votre utilisateur. essayez maintenant la même chose là où vous aviez le problème sudoers
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
Par conséquent, voyez d'abord si un fichier caché existe ou non.
Par exemple, consultez 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 de super utilisateur en utilisant ...
sudo su
J'ai eu cette erreur lorsque j'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 essayé de créer un nouveau fichier myNewFile en utilisant vi.
Ubuntu m'a montré comme étant toujours dans le répertoire newFeature mais git rm
avait en fait supprimé tout le répertoire.
J'ai dû quitter vi, naviguer dans un répertoire, puis recréer le répertoire newFeature.