Como puede ver, hay muchas ideas sobre cómo resolverlo, pero depende de por qué exactamente está experimentando el problema en primer lugar.
David Z
Para reproducir: sudo rm -f ~/.nano_history(elimine el archivo), sudo nano somefile(edite algunos archivos como root), ^K sometext(busque texto), ^X(salga), nano somefile(edite algunos archivos como desee). Verá un error al leer /home/ssylee/.nano_history: permiso denegado . nano crea .nano_history para almacenar su historial de búsqueda. El archivo pertenece a root si se crea durante una sudo nanosesión.
Iain Samuel McLean Élder
Respuestas:
28
Esto generalmente es causado por la ejecución sudo nano [file]. Esto ejecuta el proceso nano como root, pero queda $HOMEestablecido en el directorio de inicio del usuario normal, por lo que si nano crea algún archivo (incluido el archivo .nano_history), será propiedad de root y se colocará en su directorio de inicio.
Puede verificar esto ejecutando:
ls -l /home/ssylee/.nano_history
Si lsinforma que el archivo es propiedad deroot , puede estar razonablemente seguro de que esta fue la causa. Si es así, la situación se puede reparar ejecutando:
sudo chown $USER: ~/.nano_history
o para deletrear ese comando:
sudo chown ssylee: /home/ssylee/.nano_history
Un mejor hábito para entrar es usar sudoeditosudo -e lugar de sudo nano. Esto ejecuta el $EDITORprograma en una copia del archivo que se está editando, y luego reemplaza atómicamente el archivo original cuando sale el editor (lo cual es muy útil al editar archivos del sistema).
De manera predeterminada, esto puede iniciarse vi, pero puede solucionarlo temporalmente invocando de esta manera:
EDITOR=nano sudoedit [filename]
Puede configurar permanentemente $EDITORen su .bashrc, o colocando
chown $USER:es una forma más corta de aplicar el grupo primario.
Tobu
1
@ Tobu, gracias! No sabía sobre ese truco. He actualizado la respuesta para reflejar eso.
Suppressingfire
1
Lo más fácil es eliminar el archivo en cuestión. La siguiente forma más fácil es hacerla legible con chmod/ chown. Lo siguiente más fácil es usar un editor diferente.
primero, para ver los permisos actuales. Esto podría ayudarlo a descubrir por qué se equivocaron en primer lugar. Si ssylee es el propietario de este archivo, ¿tal vez tiene una umask predeterminada rota?
sudo rm -f ~/.nano_history
(elimine el archivo),sudo nano somefile
(edite algunos archivos como root),^K sometext
(busque texto),^X
(salga),nano somefile
(edite algunos archivos como desee). Verá un error al leer /home/ssylee/.nano_history: permiso denegado . nano crea .nano_history para almacenar su historial de búsqueda. El archivo pertenece a root si se crea durante unasudo nano
sesión.Respuestas:
Esto generalmente es causado por la ejecución
sudo nano [file]
. Esto ejecuta el proceso nano como root, pero queda$HOME
establecido en el directorio de inicio del usuario normal, por lo que si nano crea algún archivo (incluido el archivo .nano_history), será propiedad de root y se colocará en su directorio de inicio.Puede verificar esto ejecutando:
Si
ls
informa que el archivo es propiedad deroot
, puede estar razonablemente seguro de que esta fue la causa. Si es así, la situación se puede reparar ejecutando:o para deletrear ese comando:
Un mejor hábito para entrar es usar
sudoedit
osudo -e
lugar desudo nano
. Esto ejecuta el$EDITOR
programa en una copia del archivo que se está editando, y luego reemplaza atómicamente el archivo original cuando sale el editor (lo cual es muy útil al editar archivos del sistema).De manera predeterminada, esto puede iniciarse
vi
, pero puede solucionarlo temporalmente invocando de esta manera:Puede configurar permanentemente
$EDITOR
en su.bashrc
, o colocandoen
/etc/environment
.fuente
chown $USER:
es una forma más corta de aplicar el grupo primario.Lo más fácil es eliminar el archivo en cuestión. La siguiente forma más fácil es hacerla legible con
chmod
/chown
. Lo siguiente más fácil es usar un editor diferente.fuente
Yo siempre uso esto:
sudo chown -R username:username /home/username
Resuelve el problema cuando los permisos están en mal estado.
fuente
Prefiero hacer un
primero, para ver los permisos actuales. Esto podría ayudarlo a descubrir por qué se equivocaron en primer lugar. Si ssylee es el propietario de este archivo, ¿tal vez tiene una umask predeterminada rota?
fuente
Simplemente cambie los permisos del
.nano_history
archivo de la siguiente manera:¡HECHO! El mensaje se ha ido! =) Realmente es así de simple.
fuente
La corrección requiere editar el archivo de configuración nano / etc / nanorc y eliminar /home//.nano_history.
Primero comente el parámetro set historylog de nanorc con este comando: sudo nano / etc / nanorc
Esto deshabilitará el archivo ~ / .nano_history utilizado para guardar y leer cadenas de búsqueda / reemplazo.
Esto todavía deja el archivo .nano_history en su directorio de usuario. Elimine este archivo de la siguiente manera:
¡Eso es!
Fuentes
fuente