Linuxクライアントを使用するSamba共有に権限ビットが適用されない問題が発生しました。特定のユーザー、グループ、および許可ビットを強制するようにサーバーにSambaを設定しました。
何が起こるかは次のとおりです。
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
答え1
Samba 権限は Windows などの SMB ネットワーククライアントにのみ適用されます。サーバー(およびすべての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%を解決します。
ありがとう、Dave F
私の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]$