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


12

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

smb.conf에 무엇입니까?
Grizly

내 smb.conf의 내용을 넣었습니다. 솔직히, 모든 명시 적 모드와 마스크 비트가 필요한지 확실하지 않습니다.
Jonathon Watney

@Jonathon의 모든 노래 touch는 * nix 시스템에있는 것 같습니다 ... Windows에서 파일을 만드는 시스템입니까? 아니면 Windows 시스템에서 파일을 작성합니까? 또는 삼바를 통해이 * nix에서 * nix까지 (이 경우 nfs가 아닌 삼바)
xenoterracide

@ xenoterracide, Linux 클라이언트를 사용하여 공유 파일을 만지고 있습니다. 이 경우 * nix에서 * nix로갑니다. 이 삼바 서비스에 연결된 Windows, Mac 및 Linux 컴퓨터가 혼합되어 있습니다.
Jonathon Watney

마스크가 좋은가요? 마스크, 보안 마스크, 디렉토리 마스크를 만듭니다. 날씨에 따라 문서가 명확하지 않은 경우 '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]$

감사. 마침내 이것을 시도 할 기회가 있었지만 불행히도 문제는 남아 있습니다.
Jonathon Watney

그것이 당신의 umask인지 궁금합니다.
David Allan Finch

내 umask는 0022입니다. 다른 아이디어가 있습니까? :)
Jonathon Watney

Linux 상자에서 시도해야합니다. 아직 시간이 없었습니다. BTW는 SMB가 아닌 Linux에 NFS Unix를 사용합니다.
David Allan Finch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.