O trabalho Root Cron não executa chmod

O trabalho Root Cron não executa chmod

Eu tenho um root crontrabalho que cria um diretório em um HDD diferente montado e, em seguida, rsyncestou copiando todos os arquivos de SOURCE para TARGET. O script fica assim:

 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}

O problema é que isso chmod 770não altera as TARGETpermissões do diretório para 770. Como você pode ver, ele é criado com permissões 755.:

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

Meu root crontrabalho:

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

Como você pode ver, configurei umask 007 antes de executar o script. Então, falha em 2 frentes:

  1. Embora eu esteja definindo umask como 007, as permissões reais não são as esperadas.
  2. Embora eu esteja alterando explicitamente as permissões ( chmod 770) para o TARGETdiretório, as permissões ainda não foram alteradas.

Alguma idéia de por que esses 2 casos não funcionam?

ATUALIZAR

A execução do script também sudo script.shnão altera as permissões de TARGET.

Responder1

Graças a PerlDucke Cyruso mistério está resolvido.

rsync -acria o diretório TARGET com as mesmas permissões que SOURCE (no meu caso 755).

informação relacionada