mv(sudo su userName)를 시도할 때 권한이 거부되었습니다.

mv(sudo su userName)를 시도할 때 권한이 거부되었습니다.

현재 프로덕션 서버에 로그인하고 최신 SQL 덤프를 스테이징 서버로 가져오기 위한 백업 스크립트를 작업 중입니다. SQL 덤프를 가져오는 데는 문제가 없지만 마지막 백업 파일을 임시 폴더로 이동하는 데 문제가 있습니다.

내 백업 스크립트 사용자:mysqlBackupUser

저는 이 사용자의 홈 디렉터리를 이 스크립트의 위치로 사용하고 백업을 저장하고 있습니다. 폴더 구조는 다음과 같습니다.

/home
   |- mysqlBackupUser
       |- .ssh
       |- backups
       |- bin

내 스크립트가 저장 bin되고 백업이 backups디렉토리 에 다운로드됩니다.

디렉토리 backups에는 서버와 백업 유형을 구성하는 다른 폴더도 있습니다. 즉:

/backups
   |-mysql
       |- production1
       |- production2
   |-misc
       |- production1
       |- production2

지금까지는 모든 것이 정상이며 예상대로 작동합니다. 문제는 내가 다음 상황에 있을 때입니다(이에 국한되지 않음).

/home/mysqlBackupUser/backups/mysql/production1/

이름이 지정된 tmp 디렉토리를 생성 _lastBackUp하고 이전 백업을 이 디렉토리로 옮기려고 하면 다음과 같은 결과가 나타납니다.

find: Failed to change directory: Permission denied

이에 대한 내 코드는 다음과 같습니다

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}" {} \+;;

명확성을 위해:

LOCAL_LOCATION_DIR = /home/mysqlBackupUser/backups/mysql/production1
tmpBackUpDir = /home/mysqlBackupUser/backups/mysql/production1/_lastBackUp/

스크립트가 어떻게 사용되는지 이해하려면: 현재 나는 내 사용자로 로그인되어 있습니다.

sudo su mysqlBackupUser

사용자가 되려면. 이것이 문제인지 확실하지 않으며 이 사용자로 로그인하여 테스트할 수 없습니다. 스크립트는 cron에 의해 실행되며 이 사용자(이 사용자에 대한 자동화를 쉽게 하기 위해 키가 설정됨) 역할을 하여 프로세스를 수행하므로 이것이 실제로 문제인지는 확실하지 않습니다.

_lastBackUp모든 폴더의 소유권과 권한이 에 있음 을 확인했습니다 mysqlBackupUser. 테스트를 위해 777로 설정했는데도 _lastBackUp여전히 권한이 거부되었습니다...

내 완전한 오류는 다음과 같습니다

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

각각은 find: Failed to change directory: Permission denied이동하려는 각 파일에 대한 것입니다._lastBackUp

이에 대한 통찰력을 제공해 주셔서 감사합니다.

답변1

권한이 없다는 오류인 것 같습니다.변화예배 규칙서.

  • r-x사용자가 스크립트가 실행되는 경로로 이어지는 각 폴더를 최소한 가지고 있는지 확인하십시오 .
  • 사용자가 최소한 rwx백업이 있는 폴더 + 파일을 가지고 있는지 확인하십시오.
  • 사용자에게 로그인 쉘이 있는지 확인 $HOME하고 $PATH. 그렇다면 cd작업을 시작하기 전에 스크립트를 관련 위치에 만드십시오. 그렇지 않은 경우 다음을 사용하여 모든 명령과 위치를 정의하십시오.순수한경로.

다른 가능한 원인을 생각해 낼 수 없습니다.

답변2

mkdir이 작동하는 경우 디렉토리의 소유자인 상위 디렉토리에 대해 ls -al을 실행하면 어떻게 될까요? 어딘가에서 권한에 문제가 발생하고 있는 것 같습니다.

관련 정보