web-dev-qa-db-ja.com

scpをコピーした後の不正なアクセス許可

このコマンドを使用して、Windows 7でcygwinを使用してディレクトリをubuntuマシンにコピーしています。

scp -rp -P 54322 /cygdrive/c/xampp/htdocs/. [email protected]:/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
Kelbizzle

私はrsync/sshとcygwinでいくつかの問題を抱えています。

  • これらをLinux ACLに適切にマッピングできないため、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

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

  • 新しい設定を有効にするには、ログアウトして再度ログインします

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

(申し訳ありませんが、今朝は書式設定を正しく行えないようです。)

2
jippie

NTFSドライブ(Windowsに似た権限を持つ)からコピーしているので、Cygwinは基本的にUnixのような権限のセットを「構成」しています。ファイルを実際のUNIXベースのシステムにコピーすると、これらの権限が関連します。 scpで-pオプションを使用しているため、Cygwinが「作成」した権限を保持しています。受信側システムには、そのUIDを持つユーザーがいないか、少なくともユーザーアカウントがそのUIDを持つユーザーアカウントではないため、アクセス許可を表示するアクセス許可もありません。

これを修正する最も簡単な方法は、Linux側のファイルの所有権を取得することです。

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

linuxデスクトップから。これにより、ユーザーにはrwxの権限が付与され、グループにはrxの権限が付与され、他のユーザーにはアクセスできなくなります。または、-pをscpからドロップします。これは、ユーザーアカウントのUMASKを使用してUNIX側で新しい権限を生成する必要があります

1
Huckle

追加のフラグを使用します。 man scpから:

 -p      Preserves modification times, access times, and modes from the original file.
0
jippie