Root Cron 작업이 chmod를 수행하지 않습니다.

Root Cron 작업이 chmod를 수행하지 않습니다.

root cron마운트된 다른 HDD에 디렉터리를 생성한 다음 rsyncSOURCE에서 TARGET으로 모든 파일을 복사하는 작업이 있습니다 . 스크립트는 다음과 같습니다:

 date_cmd='date +%Y_%m_%d_%H_%M_%S'
 TS_SUFFIX=`eval ${date_cmd}`
 SOURCE_DIR=/
 TARGET_DIR=/mnt/backup_hdd/system_backup_${TS_SUFFIX}

 LOG_DIR=/shared_utils/logs/backupper
 LOG_FILE=${LOG_DIR}/backupper_${TS_SUFFIX}.log

 mkdir -p ${TARGET_DIR}
 chmod 770 ${TARGET_DIR}
 rsync -a --append-verify --info=progress2 --exclude-from=${EXCLUDE_LIST} ${SOURCE_DIR} ${TARGET_DIR}

문제는 dir 권한을 770으로 chmod 770변경하지 않는다는 것입니다 TARGET. 보시다시피 755 권한으로 생성되었습니다.:

drwxr-xr-x  19 root root       4096 Mar 18 11:47 system_backup_2018_03_18_17_57_01/

root cron일:

57 17 * * * umask 007; /path/to/script.sh

보시다시피 스크립트를 실행하기 전에 umask 007을 설정했습니다. 따라서 두 가지 측면에서 실패합니다.

  1. umask를 로 설정했지만 007실제 권한이 예상과 다릅니다.
  2. chmod 770명시적으로 권한( )을 디렉터리로 변경했지만 TARGET권한은 여전히 ​​변경되지 않습니다.

이 두 가지 경우가 작동하지 않는 이유에 대한 아이디어가 있습니까?

업데이트

로 스크립트를 실행해도 sudo script.sh의 권한은 변경되지 않습니다 TARGET.

답변1

덕분에 PerlDuck미스터리 Cyrus가 풀렸습니다.

rsync -aSOURCE(내 경우에는 755)와 동일한 권한으로 TARGET 디렉터리를 생성합니다.

관련 정보