неверные разрешения после копирования по scp

Я использую Cygwin в Windows 7, чтобы скопировать каталог на машину с Ubuntu с помощью этой команды.

scp -rp -P 54322 /cygdrive/c/xampp/htdocs/. user@10.136.10.1:/home/user/somefolder/

После копирования всех файлов все они имеют разрешения «нет чтения, нет записи». Кто-нибудь знает почему?

В качестве альтернативы, если я скопирую /cygdrive/c/xampp/htdocs/ в /cygdrive/c/Users/user, а затем использую scp для копирования файлов. Права доступа правильные.

---------- 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
5
задан 27 April 2012 в 02:03

3 ответа

У меня были некоторые проблемы с rsync / ssh и cygwin, вот как мне удалось решить:

  • Отключить ACL, так как они не могут быть должным образом сопоставлены с Linux ACL
  • Проверьте параметры монтирования перед изменением:

$ 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)
  • Измените настройки для ACL

cp /etc/fstab /etc/fstab.install

[ 1116] echo "none /cygdrive cygdrive binary,posix=0,user,noacl 0 0" >> /etc/fstab

  • Чтобы активировать новую настройку, выйдите из системы и снова войдите в систему

logout ssh Adminstrator@hostname

  • Проверьте новая настройка для "noacl":

$ 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)

(извините, не получается правильно отформатировать это утро.)

0
ответ дан 27 April 2012 в 02:03

Используйте дополнительный флаг. Из man scp:

 -p      Preserves modification times, access times, and modes from the original file.
0
ответ дан 27 April 2012 в 02:03

Поскольку вы копируете с диска NTFS (с разрешениями, подобными Windows), Cygwin, по сути, «составляет» набор разрешений, подобных UNIX. Когда вы копируете файлы в настоящую Unix-систему, эти разрешения становятся актуальными. Так как вы используете опцию -p на scp, вы сохраняете разрешения, которые «создал» Cygwin. В принимающей системе либо нет пользователя с таким UID, либо, по крайней мере, ваша учетная запись пользователя отличается от учетной записи с таким UID, поэтому у вас нет разрешения даже просматривать разрешения.

Самый простой способ исправить это - взять на себя ответственность за файлы на стороне Linux.

chown $(whoami):$(whoami) ~/somefolder -R
chmod 750 -R ~/somefolder/

с рабочего стола linux, который даст вам права доступа rwx для пользователя, rx для группы и не будет иметь доступа к другим. Или удалите -p из scp, который должен использовать UMASK вашей учетной записи пользователя для создания новых разрешений на стороне Unix

0
ответ дан 27 April 2012 в 02:03

Другие вопросы по тегам:

Похожие вопросы: