Je télécharge des fichiers sur mon compte shell à l'aide de scp. Comme j'ai besoin d'autorisations différentes sur le serveur et sur mon ordinateur, j'aimerais pouvoir facilement modifier les autorisations lors du téléchargement sans avoir besoin de ssh sur le compte et de les modifier manuellement.
upload
permissions
scp
Florian Mayer
la source
la source
Ma solution de travail préférée serait d'utiliser à la
rsync
place:Remplacer:
Avec:
Cela vous empêche de vous authentifier deux fois. Il existe également de nombreuses autres options avec rsync qui apporteraient probablement une valeur ajoutée, telles que la possibilité de conserver le propriétaire, le groupe, etc.
la source
--perms
aussi bien. expliquehell.com/…J'ai fait des expériences avec scp. Pour les nouveaux fichiers téléchargés sur le serveur cible, les fichiers ont les mêmes autorisations que sur le serveur source. Si les fichiers existants sont écrasés sur le serveur cible, les autorisations pour ces fichiers ne changent pas.
J'ai fait ces expériences avec CentOS 4.6.
la source
Vous pouvez le faire en utilisant tar, ssh et umask comme ceci:
sur l'hôte 1:
sur l'hôte2:
Vous pouvez supprimer les commutateurs -v à tar que j'ai inclus ici simplement pour que vous puissiez voir que les fichiers sont archivés sur hôte1 et envoyés via STDOUT (alias. -), puis non désordonnés sur hôte2.
NOTE: Pourquoi ça marche? Le comportement par défaut de Tar consiste à décompresser les fichiers à l'aide de umask d'un utilisateur distant. Dans l'exemple ci-dessus, j'ai inclus la commande umask pour la définir explicitement, ce qui montre que le fichier tar distant modifie les autorisations du côté distant.
la source
umask
seules les autorisations de soustraction, par exemple, pour un fichier local avec lequel700
vous ne pouvez pas obtenir le fichier755
dans le serveur de destination, ou est-ce que je me trompe?--no-same-permissions
pour la deuxièmetar
utilisation si l'utilisateur de destination est root, voir superuser.com/a/383801/89031umask
ensemble des fichiers tels qu'ils sont écrits sur le serveur distant. Il n'y a pas de contrôle individuel pour différents fichiers. J'utiliserai souvent cela car je veux supprimer les autorisations peu contraignantes qui étaient correctes sur mon ordinateur portable, lors de la copie vers un déploiement distant, par exemple.--no-same-permissions
est également correct selontar
la page de manuel de 's. J'ai modifié les invites dans mon exemple afin d'éviter toute confusion.J'ai écrit un petit script pour la tâche en Python. Vous pouvez faire python script.py -p o + r certains fichiers quelque / répertoire / dir / sur / le / serveur /
la source
Je suggèrerais de configurer sticky bit sur le dossier afin que les fichiers que vous téléchargez sous ce dossier obtiennent cette autorisation automatiquement.
"1" utilisé ci-dessus définit le bit collant.
il vous suffit donc d'en télécharger une et de ne pas avoir à exécuter une autre commande par la suite.
la source
En supposant que vous téléchargiez vers une variante UNIX, je pense que les autorisations doivent suivre vos paramètres UMASK. Je ne me rappelle pas par coeur quels fichiers-points sont traités pour SCP, mais si vous définissez votre UMASK dans l'un de ces fichiers, les autorisations que vous créez en seront définies. Cela dépend probablement du shell que vous utilisez sur le système distant.
Quoi que vous fassiez, n’utilisez pas l’option -p, car elle fait exactement le contraire de ce que vous voulez.
la source