삼바 공유에 권한 비트가 적용되지 않음

삼바 공유에 권한 비트가 적용되지 않음

Linux 클라이언트를 사용하는 삼바 공유에 권한 비트가 적용되지 않는 문제가 발생했습니다. 특정 사용자, 그룹 및 권한 비트를 강제하도록 서버에 삼바를 구성했는데 파일을 터치하거나 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

답변1

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%를 해결합니다.

감사합니다 데이브 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]$

관련 정보