scp cambiando permisos en el directorio /tmp

scp cambiando permisos en el directorio /tmp

Utilizo un script de espera para automatizar la transferencia de algunos archivos de soporte a terminales. Los archivos de soporte se cargan automáticamente antes de ser transferidos al terminal de destino. Esto se logra mediante un programa expect interno que completa automáticamente la contraseña del scp para que no tengamos que ingresarla. Puedo copiar los archivos individuales sin problemas, pero cuando intento copiar el tar.gz archivo, cambia los permisos del directorio /tmp. He estado modificando el directorio /tmp de nuevo a 1777 para obtener los permisos y modificándolo a root.root, que es como se configura normalmente, pero esto no siempre funciona. Está causando errores de SQLite debido a que SQLite no puede escribir un archivo temporal en /tmp, lo cual es muy perjudicial. ¿Cómo puedo determinar la causa exacta de esto? Sé que tiene que estar relacionado con el archivo tar.gz, pero tenía la impresión de que tar conservaría los permisos del archivo.

los permisos en el archivo dentro de mi directorio son:

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

Antes de la transferencia /tmp se ve así en un ls -al:

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

Después de la transferencia /tmp se ve así:

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

El comando tar que se está ejecutando es el siguiente:

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

Una vez que el archivo está en la máquina remota, expect ejecuta el siguiente comando para descomprimirlo:

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

Respuesta1

Has incluido .en tu colección de fuentes proporcionada a tar. El problema ocurre cuando extraes el tarball y se aplican los permisos. .Se extrae su directorio de origen y se aplican los permisos. Desafortunadamente, en el punto de extracción .se encuentra en realidad /tmp.

La solución es excluirlo .del tarball o crear un directorio temporal dentro /tmpdel cual extraerlo todo.

información relacionada