許可ビットがSamba共有に適用されていない


12

Linuxクライアントを使用して、Samba共有に許可ビットが適用されないという問題があります。特定のユーザー、グループ、および許可ビットを強制するようにサーバーでsambaを構成しました。これは、ファイルに触れるか、IOリダイレクトのターゲットになるまで期待どおりに機能します。

ここで何が起こっているのですか:

user@linuxbox:~-->ls -l ~/archive/foo.txt
ls: cannot access /home/user/archive/foo.txt: No such file or directory
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rw-rw-r-- 1 archive archive 0 2010-09-13 20:29 /home/user/archive/foo.txt
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rwxrwxrwx 1 archive archive 0 2010-09-13 20:30 /home/user/archive/foo.txt

既存のファイルをタッチすると、その許可ビットは0777です。最初に作成されたときのように、0664になるはずです。既存のファイルに0664を強制するにはどうすればよいですか?

サーバーにはバージョン3.0.24があり、クライアントにはバージョン3.4.7があります。これが私のsmb.confです。

[global]
interfaces = egiga0
unix charset = UTF8
workgroup = workgroup
netbios name = foo
server string = Foo
security = USER
map to guest = bad user
host msdfs = no
encrypt passwords = yes

[archive]
comment = File Archive
path = /home/archive
force user = archive
force group = archive
read only = yes
write list = @archive
guest ok = yes
create mask = 0
force create mode = 0664
security mask = 0
force security mode = 0664
directory mask = 0
force directory mode = 0775
directory security mask = 0
force directory security mode = 0775

smb.confには何が含まれていますか?
グリズリー

smb.confの内容を入れました。率直に言って、すべての明示的なモードとマスクビットが必要かどうかはわかりません。
ジョナソンワトニー

@Jonathonすべてのtouchingは* nixシステム上にあるようです... Windowsでファイルを作成しているシステムですか?または、Windowsシステムからファイルを作成していますか?または、これは* nixから* nix経由でサンバ(この場合、nfsではなくsamba)
-xenoterracide

@ xenoterracide、Linuxクライアントを使用して共有上のファイルに触れています。この場合は* nixから* nixになります。このSambaサービスに接続するWindows、Mac、およびLinuxマシンが混在しています。
ジョナソンワトニー

マスクは良いですか?マスク、セキュリティマスク、ディレクトリマスクを作成します。ドキュメントは天気については明確ではありません。マスクには「0」自体が有効です。それ以外は...なんて奇妙だ。
ガベ。

回答:


2

Sambaパーミッションは、SMB(つまりWindows)ネットワーククライアントでのみ機能します。サーバー(およびすべてのNFSクライアント)でこれを強制するには、すべてのディレクトリでスティッキービットを設定する必要があります。

最初にそこにあるファイルを修正します:

chown -R archive /home/archive 
chgrp -R archive /home/archive 
find /home/archive -type d -exec chmod 0775 {} \;
find /home/archive -type f -exec chmod 0664 {} \;

グループスティッキービットでこれを強制します

find /home/archive -type d -exec chmod g+s {} \;

これは不変ではありませんが、この種の問題の99%を解決します。

よろしくDaveF

私のSolarisボックスでの結果:

davef@dalek[10]$ cd /proj/ftptmp
davef@dalek[11]$ ls -ld .
drwxrwsr-x  60 root     ftpusers     377 Oct  5 09:31 ./
davef@dalek[12]$
davef@dalek[12]$ ls -l foo.txt
foo.txt: No such file or directory
davef@dalek[13]$ touch foo.txt
davef@dalek[14]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[15]$ touch foo.txt
davef@dalek[16]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[17]$
davef@dalek[17]$ umask
2
davef@dalek[18]$

ありがとう。最後にこれを試してみる機会がありましたが、残念ながら問題が残っています。
ジョナソンワトニー

それがあなたのumaskかもしれないかしら?
デビッドアランフィンチ

私のumaskは0022です。他のアイデアはありますか?:)
ジョナソンワトニー

Linuxボックスで試してみる必要があります。まだ時間がありませんでした。ところで、SMBではなくNFS Unix to Linuxなどを使用しています。
デビッドアランフィンチ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.