Estoy cargando archivos a mi cuenta de shell usando scp. Como necesito permisos diferentes en el servidor que en mi computadora, me gustaría tener una forma de cambiar fácilmente los permisos al cargarlos sin necesidad de enviar ssh a la cuenta y cambiarlos manualmente.
upload
permissions
scp
Florian Mayer
fuente
fuente
Mi solución de trabajo preferida sería usar
rsync
en su lugar:Reemplazar:
Con:
Esto evita que se autentique dos veces. También hay muchas otras opciones con rsync que probablemente agregarían valor, como poder preservar el propietario, el grupo, etc.
fuente
--perms
también. explainshell.com/...He hecho algunos experimentos con scp. Para los archivos nuevos cargados en el servidor de destino, los archivos tienen los mismos permisos que en el servidor de origen. Si los archivos existentes se sobrescriben en el servidor de destino, los permisos para esos archivos no cambian.
He hecho estos experimentos con CentOS 4.6.
fuente
Puede hacerlo usando tar, ssh y umask de esta manera:
en el host 1:
en host2:
Puede colocar los modificadores -v en tar que he incluido aquí simplemente para que pueda ver los archivos almacenados en el host1 y enviados a través de STDOUT (también conocido como -) y luego no ser tarred en el host2.
NOTA: ¿Por qué funciona esto? El comportamiento predeterminado de Tar es descomprimir archivos usando la máscara de usuario de un usuario remoto. En el ejemplo anterior, he incluido el comando umask para establecerlo explícitamente en algo diferente que demuestre que el tar remoto está cambiando los permisos en el lado remoto.
fuente
umask
solo resta los permisos, por ejemplo, para un archivo local con el700
que no pudo obtener el archivo755
en el servidor de destino, ¿o me equivoco?--no-same-permissions
para el segundotar
uso si el usuario de destino es la raíz, consulte superuser.com/a/383801/89031umask
conjunto completo de archivos a medida que se escriben en el servidor remoto. No hay control individual para diferentes archivos. A menudo lo usaré, ya que quiero eliminar los permisos relajados que estaban bien en mi computadora portátil, por ejemplo, cuando copio a una implementación remota.--no-same-permissions
es correcto segúntar
la página de manual de 'man'. He cambiado las indicaciones en mi ejemplo para que no haya confusión al respecto.Escribí un pequeño script para la tarea en Python. Puede hacer python script.py -p o + r algunos archivos algunos / dir / on / the / server /
fuente
Sugeriría configurar un bit adhesivo en la carpeta para que los archivos que cargue en esa carpeta obtengan ese permiso automáticamente.
"1" usado arriba establece el bit adhesivo.
así que solo tienes que subir uno y no tener que ejecutar otro comando después.
fuente
Suponiendo que está cargando a una variante de UNIX, creo que los permisos deben seguir la configuración de UMASK. No recuerdo de la parte superior de mi cabeza qué archivos de puntos se procesan para SCP, pero si configura su UMASK en uno de esos, los archivos que cree tendrán sus permisos establecidos en función de ello. Probablemente depende de qué shell use en el sistema remoto.
Hagas lo que hagas, no uses la opción -p, ya que hace exactamente lo contrario de lo que quieres.
fuente