Root-Cron-Job führt kein chmod aus

Root-Cron-Job führt kein chmod aus

Ich habe einen root cronJob, der ein Verzeichnis auf einer anderen gemounteten Festplatte erstellt und dann rsyncalle Dateien von der QUELLE zum ZIEL kopiere. Das Skript sieht folgendermaßen aus:

 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}

Das Problem besteht darin, dass die Verzeichnisberechtigungen chmod 770nicht auf 770 geändert werden . Wie Sie sehen, wird es mit der Berechtigung 755 erstellt:TARGET

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

Mein root cronJob:

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

Wie Sie sehen, habe ich umask 007 gesetzt, bevor ich das Skript ausgeführt habe. Es schlägt also an zwei Fronten fehl:

  1. Obwohl ich die Umask auf setze 007, sind die tatsächlichen Berechtigungen nicht wie erwartet.
  2. chmod 770Obwohl ich die Berechtigungen für das Verzeichnis ausdrücklich ändere TARGET, werden die Berechtigungen immer noch nicht geändert.

Irgendwelche Ideen, warum diese beiden Fälle nicht funktionieren?

AKTUALISIEREN

Das Ausführen des Skripts mit sudo script.shändert TARGETauch nicht die Berechtigungen von .

Antwort1

Dank PerlDuckund Cyrusdas Rätsel ist gelöst.

rsync -aerstellt das ZIELverzeichnis mit denselben Berechtigungen wie die QUELLE (in meinem Fall 755).

verwandte Informationen