web-dev-qa-db-ja.com

CIFSによるSamba、ディレクトリツリーのコピーに関する問題

/media/photos.の下のクライアントマシンにCIFSによってマウントされているsamba共有のサーバーがあります。

/media/photosの所有権はroot:sambaであり、私のユーザーもグループsambaのメンバーです。サーバー上のsmb.confには、次のものがあります。

force create mode = 0664
force directory mode = 2775
force security mode = 0664
force directory security mode = 2775

したがって、/media/photosディレクトリにはdrwxrwxr-xの権限があります。このディレクトリに作成するすべてのファイルには、rw-rw-r--の権限があります。

ディレクトリを作成できます。ファイルを作成できます。作成したディレクトリに移動して、そこにファイルを作成できます。

ディレクトリツリーをコピーできません。私が発行するとき:

cp -r /home/frank/photos/Tymek/ /media/photos

ディレクトリ「Tymek」が作成されましたが、内部にファイルがありません。次のようなメッセージが表示されます

cp: cannot create regular file `/media/photos/Tymek/usg_10.bmp': Permission denied

Tymekディレクトリに移動して問題なくファイルを作成できたとしても。

このようなコマンドは機能します。

cp -r /home/frank/photos/Tymek/ /media/photos/

(末尾にスラッシュを追加)

しかし、Nautilusは最初の方法を使用しているようで、ディレクトリ全体のコピーに問題があり、私はそれが必要です。

3
amorfis

これは役立つかもしれません。OSX10.5は、smb.confアクセス許可の魔法のセットが適用されるまで、Sambaで同様の問題を抱えていました。値を次のように置き換え/修正してみてください。

    create mask = 0664
    force create mode = 0664
    security mask = 0000
    force security mode = 0664

    directory mask = 0775
    force directory mode = 0775
    directory security mask = 0000
    force directory security mode = 0775

これで問題が解決するかどうかは保証できませんが、これらのMacクライアントで同じ問題を解決するには多くの調整が必要でした。

3
user15590

私も抱えていた問題のように聞こえます。ファイルのみを含み、他のサブフォルダを含まないフォルダをコピーし、そのフォルダが宛先に存在しない場合、最初は「許可が拒否されました」と表示されますが、すぐに問題なくコピーできることを確認してください。例えば。

$ mkdir testdir
$ touch testdir/somefile
$ rm -r /media/photos/testdir
$ cp -r testdir /media/photos
cp: cannot create regular file `/media/photos/testdir/somefile': Permission denied
$ cp -r testdir /media/photos
$ # same command works

これについては buntuforums:smbmount:通常のファイルを作成できません で説明されています。そこに「xrat」として投稿しました。これはまだバグだと思います(まだ報告する時間がありませんでした)。マウントオプションにnopermを追加すると役立ちます。しかし、それは汚い回避策です。

更新2009-11-17:バグレポートが見つかりました。ファインダーへの称賛 varanasi

さらに深く掘り下げたい場合は、別の提案があります。Sambaサーバーで、ファイルシステムがnoatimeまたはrelatimeでマウントされているかどうかを確認してください。これは関連している可能性があります。そして、これがあなたのサーバーに当てはまるかどうか聞いてみたいです。

1
xebeche

Nautilusでこれを行うことは特定の要件ですか?そうでない場合は、代わりにRSyncを使用しないのはなぜですか?この種の仕事では、cpよりも信頼性が高いと思います。

0
RainyRat

CIFSマウントをマウントすると、マウントに使用したアカウントのアクセス許可でマウントされます。

つまり、 アクセス許可はサーバーからのものであり、ローカルのものではありません。

マウントするアカウントは、サーバー側でグループsambaに追加する必要があります。

Fstabまたはマウント時にuid =およびgid =を設定しても、サーバー側の権限がローカル権限で上書きされることはありません。

0
artifex

古いバージョンのsambaでは、ファイルパーミッションユーザーとsambaユーザーの間に違いがあります。どのバージョンのSambaを使用していますか? sambaユーザーアカウントをどのように作成しましたか? CIFSサーバーでsambaユーザーを追加したSambaグループは何ですか?

最後に、cp -rを実行していて、Tymekディレクトリが作成されると、どのようなアクセス許可で作成されますか?

0
Zak