ルート Cron ジョブは chmod を実行しません

ルート Cron ジョブは chmod を実行しません

root cronマウントされた別の HDD にディレクトリを作成し、それを使用してrsyncすべてのファイルをソースからターゲットにコピーするジョブがあります。スクリプトは次のようになります。

 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}

問題は、ディレクトリの権限が 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 を設定しました。そのため、次の 2 つの点で失敗します。

  1. umask を に設定していますが007、実際の権限は期待どおりではありません。
  2. ディレクトリへの権限(chmod 770)を明示的に変更しているにもかかわらずTARGET、権限は変更されません。

これら 2 つのケースが機能しない理由について何か考えはありますか?

アップデート

でスクリプトを実行しても、sudo script.shの権限は変更されませんTARGET

答え1

おかげでPerlDuckCyrusが解けました。

rsync -aSOURCE と同じ権限 (私の場合は 755) を持つ TARGET ディレクトリを作成します。

関連情報