GNU/Linux >> Tutoriels Linux >  >> Linux

Forcer de nouvelles autorisations sur les fichiers après Rsync depuis Seedbox ?

J'ai un compte seedbox que j'utilise pour le torrent. J'ai configuré une tâche cron qui utilise rsync pour télécharger tous les fichiers de la seedbox sur mon serveur ubuntu 14.04.1. Le dossier de téléchargement est un partage samba, car j'ai déjà utilisé Windows pour organiser le contenu dans des dossiers avant de le déplacer vers un emplacement plus permanent sur mon serveur. Avant de passer à 14.04, j'utilisais 12.04 et tout fonctionnait correctement.

Le problème est que les fichiers que je reçois de la seedbox appartiennent à un utilisateur appelé "544" (c'est le nom d'utilisateur généré par la seedbox, pas une chose octale) et ne peuvent pas être supprimés par mon utilisateur sur mon serveur. Après avoir modifié les autorisations sur le dossier de téléchargement, je peux les supprimer. De plus, j'ai donné à tous les utilisateurs des autorisations de lecture/écriture dans le dossier samba lors du partage.

Ma question est donc la suivante :est-il possible, grâce à une commande élégante exécutée, de créer rsync changer l'utilisateur/les autorisations sur les fichiers lors du téléchargement ? Ou est-il possible de faire en sorte que le dossier fonctionne de manière à ce que tous les nouveaux fichiers changent automatiquement d'utilisateur lorsqu'ils sont copiés/déplacés ? Je suppose que je pourrais mettre le chmod commande dans sudo cron à exécuter de temps en temps pour changer le propriétaire des fichiers, mais comme parfois la quantité de données à télécharger peut être assez importante, il est difficile de savoir quand la déclencher par rapport au rsync-job pour vous assurer que tous les fichiers sont téléchargés.

Réponse acceptée :

rsync uniquement conserve le propriétaire si vous le demandez avec -o — sinon les fichiers appartiendront à l'utilisateur qui exécute le rsync commande, comme lors de la création de tout autre fichier. -a inclut -o , cependant, beaucoup de rsync communs les lignes de commande l'incluent. man rsync inclut explicitement un passage à ce sujet :

For example: if you want to use -a (--archive) but don’t want -o
(--owner),  instead  of  converting  -a  into -rlptgD, you could
specify -a --no-o (or -a --no-owner).

Ainsi, au lieu de rsync -a source dest vous pouvez utiliser rsync -a --no-o source dest pour que les fichiers appartiennent à l'utilisateur qui exécute la commande.

D'un autre côté, vous ne pouvez généralement changer le propriétaire d'un fichier que si vous êtes root, donc cela ne se produit pas beaucoup. S'il est nécessaire d'exécuter ce travail en tant que root pour une raison quelconque et que vous souhaitez que les fichiers appartiennent à votre utilisateur normal plutôt qu'à root, vous pouvez utiliser le --chown choix :

rsync -a --chown=youruser:yourgroup ...

Il y a aussi un --usermap option pour les mappages plus compliqués, si vous souhaitez conserver certains utilisateurs. Il faut une liste séparée par des virgules de from:to paires.

Connexe :la différence entre &&et | en script bash ?

Comme dernière option, puisque vous utilisez apparemment rsync à partir d'une tâche cron, vous pouvez simplement ajouter l'opération de modification du propriétaire/des autorisations à la tâche cron avec && chown ... .


Linux
  1. Comment utiliser Rsync pour synchroniser des fichiers nouveaux ou modifiés/modifiés sous Linux

  2. Exclure tous les fichiers de soulignement de points de Rsync ?

  3. Comment supprimer récursivement les autorisations d'exécution des fichiers sans toucher aux dossiers ?

  4. Rsync modifie les autorisations du répertoire ?

  5. Sauvegardez vos fichiers avec rsync

Accélérez rsync lors de la migration d'un serveur Linux à partir de la ligne de commande

Utiliser rsync pour synchroniser les fichiers

dossiers de fusion Linux :rsync ?

Créer une nouvelle arborescence de répertoires vide à partir de l'arborescence existante avec des fichiers

Pourquoi rsync ne parvient-il pas à copier les fichiers de /sys sous Linux ?

Fichiers spécifiques à Linux (mv ou cp) à partir d'une liste de fichiers texte ?