En supposant que vous ayez des sudo
privilèges, la commande suivante fera l'affaire.
sudo cp /home/USER1/FNAME /home/USER2/FNAME && sudo chown USER2:USER2 /home/USER2/FNAME
Copiera le fichier de USER1 vers USER2, puis changera le propriétaire de la copie dans / home / USER2 en USER2
Si vous ne disposez pas de sudo
privilèges, les deux utilisateurs devront s'assurer que vous disposez des autorisations de lecture sur le répertoire USER1 et d'un accès en écriture sur le répertoire USER2. Si vous disposez de ces accès, vous pouvez entrer la commande:
cp /home/USER1/FNAME /home/USER2/FNAME
Cela copiera le fichier en question, mais USER2 ne pourra peut-être pas manipuler le fichier tant qu'il n'aura pas les autorisations appropriées.
si vous n'avez pas les privilèges sudo mais que vous pouvez vous connecter avec les deux utilisateurs, vous pouvez utiliser scp avec localhost:
la source
En tant qu'UTILISATEUR1:
En tant qu'UTILISATEUR2:
En tant qu'UTILISATEUR1:
la source
Supposons que vous n'avez pas installé ssh ou que vous ne voulez pas partager les clés / secrets.
Supposons que l'utilisateur1 soit dans le groupe1, et l'utilisateur2 dans le groupe2, et à la fois utilisateur1! = Utilisateur2 et groupe1! = Groupe2.
Créez un groupe partagé, group3s.
Ajoutez à la fois user1 et user2 aux group3s.
Créez un répertoire dans un endroit mutuellement accessible, où un utilisateur possède, mais possède la propriété de groupe de group3s.
Mais, supposons que vous ne puissiez pas créer le nouveau groupe partagé et placer les deux utilisateurs dans ce groupe?
Créez le répertoire et donnez-lui 770 autorisations,
Ensuite, en tant que root / admin, changez la propriété du groupe en groupe de l'autre utilisateur,
La commande chmod g + s définit le bit setgid afin que les fichiers placés dans le répertoire aient la propriété du groupe définie sur group2.
la source
Toutes les autres réponses ici nécessitent un accès root, permettent à n'importe quel utilisateur sur la même machine de copier le fichier ou nécessitent un partage de mot de passe. Voici une méthode qui ne fonctionne pas:
Demandez
USER2
(appelons-le Bob) d'exécuter les commandes suivantes (vous pouvez remplacer/tmp
par n'importe quel répertoire sur lequel les deux utilisateurs sont autorisés à écrire, mais/tmp
est idéal car par défaut, il est collant, ce qui empêche un utilisateur malveillant de renverser ce processus. Un répertoire appartenant à par Bob qui est lisible dans le monde fonctionne également):Cela crée un fichier accessible en écriture, mais non lisible.
Ensuite,
USER1
(appelons-la Alice) exécuté (si vous êtes paranoïaque, Alice peut d'abord vérifier les autorisations pour vous assurer que le fichier appartient à Bob):Cela écrase le contenu de
/tmp/test.txt
. Si vous souhaitez vérifier l'intégrité du fichier, Alice doit également générer un hachage du fichier. Par exemple:Vous pouvez à la place signer numériquement le fichier ou toute autre méthode pour garantir son intégrité.
Et enfin, Bob déplace le fichier et en prend possession:
Et Bob peut vérifier l'intégrité s'il le souhaite. Si c'est le cas, il devrait vérifier pour s'assurer que seule Alice peut écrire
/tmp/test.txt
.Si le fichier a été copié correctement, cela ne devrait afficher aucune sortie.
la source
Avant de copier un utilisateur sur un autre, vous devez vous connecter en tant qu'utilisateur su, puis utiliser la commande cp
la source
USER2
mais la laissera commeroot
si. -1