Comment puis-je résoudre cette erreur que j'obtiens lorsque je valide des modifications sur un référentiel SVN à partir du terminal Ubuntu?


12

Lorsque je valide des modifications sur un référentiel SVN, je rencontre toujours le problème suivant dans le terminal d'Ubuntu:

Error reading /home/ssylee/.nano_history: Permission denied

Des idées pour le résoudre?


Comme vous pouvez le voir, il existe de nombreuses idées sur la façon de le résoudre, mais cela dépend en quelque sorte de la raison exacte pour laquelle vous rencontrez le problème en premier lieu.
David Z

Pour reproduire: sudo rm -f ~/.nano_history(supprimer le fichier), sudo nano somefile(éditer un fichier en tant que root), ^K sometext(rechercher du texte), ^X(quitter), nano somefile(éditer un fichier comme vous). Vous verrez une erreur lors de la lecture de /home/ssylee/.nano_history: autorisation refusée . nano crée .nano_history pour stocker votre historique de recherche. Le fichier appartient à root s'il est créé lors d'une sudo nanosession.
Iain Samuel McLean Elder

Réponses:


28

Cela est généralement dû à l'exécution sudo nano [file]. Cela exécute le processus nano en tant que root, mais laisse $HOMEle répertoire personnel de l'utilisateur normal, donc si nano crée des fichiers (y compris le fichier .nano_history), il appartiendra à root et sera placé dans votre répertoire personnel.

Vous pouvez le vérifier en exécutant:

ls -l /home/ssylee/.nano_history

Si vous lssignalez que le fichier appartient root, vous pouvez être raisonnablement sûr que c'était la cause. Si c'est le cas, la situation peut être réparée en exécutant:

sudo chown $USER: ~/.nano_history

ou pour énoncer cette commande:

sudo chown ssylee: /home/ssylee/.nano_history

Une meilleure habitude à prendre est d'utiliser sudoeditou sudo -eau lieu de sudo nano. Cela exécute le $EDITORprogramme sur une copie du fichier en cours d'édition, puis remplace atomiquement le fichier d'origine lorsque l'éditeur se ferme (ce qui est très utile lors de la modification des fichiers système).

Par défaut, cela peut se lancer vi, mais vous pouvez résoudre ce problème temporairement en l'invoquant comme suit:

EDITOR=nano sudoedit [filename]

Vous pouvez configurer $EDITORen permanence dans votre .bashrc, ou en plaçant

EDITOR=nano

dans /etc/environment.


4
chown $USER:est un moyen plus court d'appliquer le groupe principal.
Tobu

1
@Tobu, merci! je ne connaissais pas ce truc. J'ai mis à jour la réponse pour refléter cela.
Suppressingfire

1

Le plus simple est de supprimer le fichier en question. Le plus simple est de le rendre lisible avec chmod/ chown. Le plus simple est d'utiliser un éditeur différent.


1

J'utilise toujours ceci:
sudo chown -R username:username /home/username

Il résout le problème lorsque les autorisations sont gâchées.


1

Je préfère faire un

ls -la /home/ssylee/.nano_history

tout d'abord, pour voir les autorisations actuelles. Cela pourrait vous aider à découvrir pourquoi ils ont mal tourné en premier lieu. Si ssylee est le propriétaire de ce fichier, vous avez peut-être un umask par défaut cassé?


1

Modifiez simplement les autorisations du .nano_historyfichier comme suit:

sudo chown youruser:yourgroup /home/<username>/.nano_history

TERMINÉ! Le message est parti! =) C'est vraiment aussi simple que cela.


0

Le correctif nécessite la modification du fichier de configuration nano / etc / nanorc et la suppression de /home//.nano_history.

Commencez par commenter le paramètre set historylog de nanorc avec cette commande: sudo nano / etc / nanorc

#set historylog

Cela désactivera le fichier ~ / .nano_history utilisé pour enregistrer et lire les chaînes de recherche / remplacement.

Cela laisse toujours le fichier .nano_history dans votre répertoire utilisateur. Supprimez ce fichier comme suit:

sudo rm .nano_history

C'est ça!

Sources


Cela désactivera carrément l'historique dans nano, probablement pas quelque chose que les utilisateurs voudraient faire ..
Mxx
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.