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


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.