![Permiso denegado al intentar mv (sudo su nombre de usuario)](https://rvso.com/image/1416339/Permiso%20denegado%20al%20intentar%20mv%20(sudo%20su%20nombre%20de%20usuario).png)
Actualmente estoy trabajando en un script de respaldo para iniciar sesión en mi servidor de producción y extraer los últimos volcados de SQL a mi servidor de prueba. No tengo problemas para extraer los volcados de SQL, pero sí tengo problemas para mover los últimos archivos de copia de seguridad a una carpeta temporal.
Mi usuario del script de respaldo:mysqlBackupUser
Estoy usando el directorio de inicio de este usuario como ubicación para este script y para almacenar las copias de seguridad. La estructura de carpetas es:
/home
|- mysqlBackupUser
|- .ssh
|- backups
|- bin
Mi script se encuentra bin
y las copias de seguridad se descargan en el backups
directorio.
El backups
directorio también tiene otras carpetas para organizar el servidor y el tipo de copias de seguridad. ES DECIR:
/backups
|-mysql
|- production1
|- production2
|-misc
|- production1
|- production2
Hasta ahora todo está bien y funciona como se esperaba. El problema es cuando estoy en (no limitado a):
/home/mysqlBackupUser/backups/mysql/production1/
cuando creo el directorio tmp nombrado _lastBackUp
e intento mover mis copias de seguridad anteriores allí, obtengo:
find: Failed to change directory: Permission denied
Mi código para esto es:
local tmpBackUpDir="${LOCAL_LOCATION_DIR}/_lastBackUp/"
# Ensure the directory exist
mkdir -p "${tmpBackUpDir}"
# move any previous files to bak
find "${LOCAL_LOCATION_DIR}/" -type f -exec mv -t "${LOCAL_BAKUP_DIR}" {} \+;;
Para mayor claridad:
LOCAL_LOCATION_DIR = /home/mysqlBackupUser/backups/mysql/production1
tmpBackUpDir = /home/mysqlBackupUser/backups/mysql/production1/_lastBackUp/
Para entender cómo se utiliza el script: Actualmente soy mi usuario y estoy
sudo su mysqlBackupUser
Ser como el usuario. No estoy seguro de si este es el problema y no puedo realizar la prueba iniciando sesión como este usuario. El script será ejecutado por cron y actuará como este usuario (las claves están configuradas para facilitar la automatización para este usuario) para realizar el proceso, por lo que no estoy seguro de que este sea realmente el problema.
He verificado que la propiedad y el permiso de todas las carpetas, incluso la _lastBackUp
propiedad de mysqlBackupUser
. Incluso configuré _lastBackUp
el valor 777 para realizar pruebas y todavía me negaron los permisos...
Mi error completo es:
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: failed to restore initial working directory: Permission denied
Cada uno find: Failed to change directory: Permission denied
es para cada archivo al que estoy intentando mover_lastBackUp
Gracias por cualquier información sobre esto.
Respuesta1
Parece que el error se debe a que no tiene permiso paracambiardirectorio.
- verifique que el usuario tenga al menos
r-x
cada carpeta que conduzca a la ruta desde donde se ejecuta el script. - Verifique que el usuario tenga al menos
rwx
la carpeta + archivos donde se encuentran las copias de seguridad. - verificar si el usuario tiene un shell de inicio de sesión
$HOME
y$PATH
. En caso afirmativo, realice el scriptcd
en alguna ubicación relevante antes de comenzar la operación. Si no, defina todos los comandos y ubicaciones usandoabsolutocaminos.
No se me ocurren otras causas posibles.
Respuesta2
Si mkdir está funcionando, lo que parece ser así, si ejecuta ls -al sobre el directorio principal, ¿quién es el propietario de los directorios? Me parece que algo va mal con los permisos en algún momento.