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
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.
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é?
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'unesudo nano
session.Réponses:
Cela est généralement dû à l'exécution
sudo nano [file]
. Cela exécute le processus nano en tant que root, mais laisse$HOME
le 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:
Si vous
ls
signalez que le fichier appartientroot
, 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:ou pour énoncer cette commande:
Une meilleure habitude à prendre est d'utiliser
sudoedit
ousudo -e
au lieu desudo nano
. Cela exécute le$EDITOR
programme 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:Vous pouvez configurer
$EDITOR
en permanence dans votre.bashrc
, ou en plaçantdans
/etc/environment
.la source
chown $USER:
est un moyen plus court d'appliquer le groupe principal.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.la source
J'utilise toujours ceci:
sudo chown -R username:username /home/username
Il résout le problème lorsque les autorisations sont gâchées.
la source
Je préfère faire un
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é?
la source
Modifiez simplement les autorisations du
.nano_history
fichier comme suit:TERMINÉ! Le message est parti! =) C'est vraiment aussi simple que cela.
la source
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
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:
C'est ça!
Sources
la source