J'utilise Cygwin dans Windows 7 pour copier un répertoire sur une machine Ubuntu à l'aide de cette commande.
scp -rp -P 54322 /cygdrive/c/xampp/htdocs/. [email protected]:/home/user/somefolder/
Après avoir copié tous les fichiers, ils ont tous les droits "pas de lecture, pas d'écriture". Quelqu'un sait-il pourquoi?
Alternativement, si je copie /cygdrive/c/xampp/htdocs/
vers /cygdrive/c/Users/user
puis utilise scp pour copier les fichiers. Les autorisations sont correctes.
---------- 1 user user 1273 Apr 21 16:32 about.html
---------- 1 user user 1707 Apr 21 16:33 contact.html
d--------- 2 user user 4096 Apr 21 04:14 images
---------- 1 user user 2259 Apr 21 22:27 index.html
---------- 1 user user 1252 Apr 21 16:33 projects.html
---------- 1 user user 823 Apr 22 22:03 style.css
drwx------ 6 user user 4096 Apr 21 02:11 xampp
J'ai eu quelques problèmes avec rsync/ssh et cygwin, voici comment j'ai réussi à résoudre:
$ mount
D:/ProgramsVista/ICW/etc/terminfo on /usr/share/terminfo type ntfs (binary,noacl)
D:/ProgramsVista/ICW/bin on /usr/bin type ntfs (binary,noacl)
D:/ProgramsVista/ICW/lib on /usr/lib type ntfs (binary,auto)
D:/ProgramsVista/ICW on / type ntfs (binary,noacl)
C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
D: on /cygdrive/d type ntfs (binary,posix=0,user,noumount,auto)
E: on /cygdrive/e type iso9660 (binary,posix=0,user,noumount,auto)
cp /etc/fstab /etc/fstab.install
echo "none /cygdrive cygdrive binary,posix=0,user,noacl 0 0" >> /etc/fstab
logout
ssh Adminstrator@hostname
$ mount
D:/ProgramsVista/ICW/etc/terminfo on /usr/share/terminfo type ntfs (binary,noacl)
D:/ProgramsVista/ICW/bin on /usr/bin type ntfs (binary,noacl)
D:/ProgramsVista/ICW/lib on /usr/lib type ntfs (binary,auto)
D:/ProgramsVista/ICW on / type ntfs (binary,noacl)
C: on /cygdrive/c type ntfs (binary,noacl,posix=0,user,noumount,auto)
D: on /cygdrive/d type ntfs (binary,noacl,posix=0,user,noumount,auto)
E: on /cygdrive/e type iso9660 (binary,noacl,posix=0,user,noumount,auto)
(désolé, il semble que le formatage soit correct ce matin.)
Puisque vous copiez depuis un lecteur NTFS (avec des autorisations semblables à celles de Windows), Cygwin "constitue" essentiellement un ensemble d'autorisations de type Unix. Lorsque vous copiez les fichiers sur un véritable système UNIX, ces autorisations deviennent pertinentes. Puisque vous utilisez l'option -p
sur scp, vous conservez les autorisations "créées" par Cygwin. Le système récepteur n'a pas d'utilisateur avec cet UID ou, à tout le moins, votre compte d'utilisateur n'est pas celui avec cet UID. Vous n'avez donc pas l'autorisation de voir les autorisations.
Le moyen le plus simple de résoudre ce problème consiste à s'approprier les fichiers du côté de Linux.
chown $(whoami):$(whoami) ~/somefolder -R
chmod 750 -R ~/somefolder/
depuis le bureau linux, ce qui vous donnera des permissions rwx pour l'utilisateur, rx pour le groupe et aucun accès aux autres. Ou supprimez le -p
de scp qui devrait utiliser l'UMASK de votre compte utilisateur pour générer de nouvelles autorisations du côté Unix.
Utilisez un drapeau supplémentaire. De man scp
:
-p Preserves modification times, access times, and modes from the original file.