scp alterando permissões no diretório /tmp

scp alterando permissões no diretório /tmp

Eu uso um script expect para automatizar a transferência de alguns arquivos de suporte para terminais. Os arquivos de suporte são automaticamente tarballados antes de serem transferidos para o terminal de destino. Isso é feito por um programa interno expect que preenche automaticamente a senha do scp para que não precisemos inserir a senha. Posso copiar os arquivos individuais sem problemas, mas quando tento copiar o tar.gz arquivo, ele altera as permissões do diretório /tmp. Eu tenho feito chmodding no diretório /tmp de volta a 1777 para obter as permissões e alterado para root.root, que é como normalmente é configurado, mas isso nem sempre funciona. Isso está causando erros de sqlite porque o sqlite não consegue gravar um arquivo temporário em/tmp, o que é muito perturbador. Como posso determinar a causa exata disso? Eu sei que deve estar relacionado ao arquivo tar.gz, mas tive a impressão de que o tar preservaria as permissões do arquivo.

as permissões no arquivo dentro do meu diretório são:

-rw-rw-r-- 1 aembree aembree  88K Oct  2 15:20 dropin.tar.gz

Antes da transferência, /tmp fica assim em um ls -al:

drwxrwxrwt  15 root root 8.4K Oct  2 15:08 tmp

Após a transferência, /tmp fica assim:

drwxrwxr-x  15 10539 10539 8.4K Oct  2 15:01 tmp

O comando tar que está sendo executado é o seguinte:

tar -vPczf /home/aembree/bin/resources/dev/dropin.tar.gz --exclude='helperscript' -C $dropinlist . > /home/aembree/bin/resources/logs/tarlog

Assim que o arquivo estiver na máquina remota, expect executa o seguinte comando para descompactá-lo:

send "cd /tmp ; tar -xzf dropin.tar.gz ; rm dropin.tar.gz ; cd ;\n"

Responder1

Você incluiu .em sua coleção de fontes fornecida a tar. O problema ocorre quando você extrai o tarball e as permissões são aplicadas. Seu diretório de origem .é extraído e as permissões aplicadas. Infelizmente, no ponto de extração .é, na verdade /tmp.

A solução é excluir .do tarball ou criar um diretório temporário /tmppara extrair tudo.

informação relacionada