web-dev-qa-db-ja.com

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

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
12
Jonathon Watney

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]$
2