Permiso denegado al intentar mv (sudo su nombre de usuario)

Permiso denegado al intentar mv (sudo su nombre de usuario)

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 biny las copias de seguridad se descargan en el backupsdirectorio.

El backupsdirectorio 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 _lastBackUpe 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 _lastBackUppropiedad de mysqlBackupUser. Incluso configuré _lastBackUpel 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 deniedes 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-xcada carpeta que conduzca a la ruta desde donde se ejecuta el script.
  • Verifique que el usuario tenga al menos rwxla carpeta + archivos donde se encuentran las copias de seguridad.
  • verificar si el usuario tiene un shell de inicio de sesión $HOMEy $PATH. En caso afirmativo, realice el script cden 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.

información relacionada