O trabalho do Root Cron não executa chmod

0

Eu tenho um trabalho root cron que cria um diretório em um HDD montado diferente e, em seguida, usando rsync Estou copiando todos os arquivos de SOURCE para TARGET. Script é 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 chmod 770 não altera as permissões TARGET dir para 770. Como você pode ver, elas são criadas com 755 permissões.:

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

Meu trabalho root cron :

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

Como você vê, eu configuro umask 007 antes de executar o script. Então, falha em duas frentes:

  1. Embora eu esteja definindo a 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 TARGET dir, as permissões ainda não foram alteradas.

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

UPDATE

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

    
por CuriousGuy 18.03.2018 / 18:27

1 resposta

0

Graças a PerlDuck e Cyrus o mistério está resolvido.

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

    
por CuriousGuy 18.03.2018 / 18:45