삼바가 생성 된 디렉토리에 대한 적절한 권한을 설정하도록 할 수 없습니다


17

삼바를 사용하여 일부 폴더를 공유하는 우분투 서버가 있습니다. 클라이언트가 새 폴더 나 파일을 만들 때 권한은 smb.conf의 설정에 따라 설정되지 않습니다.

특정 공유에 대한 현재 설정 :

[share]
    path = /mnt/share
    browsable = yes
    guest ok = no
    writable = yes
    read only = no
    create mask = 0774
    directory mask = 0774
    write list = netuser

삼바 클라이언트 (Windows 7 상자)가 'netuser'계정을 사용하여 파일 또는 디렉토리를 만들면 권한이됩니다.

drwxr-sr-- 2 netuser sambashare      4096 2012-01-22 21:14 New folder
-rwxrw-r-- 1 netuser sambashare         0 2012-01-22 21:07 New Text Document.txt

상위 디렉토리에는 설정된 그룹 ID 플래그가 있으므로 sambashare 그룹 소유자입니다. 아이디어는 삼바 사용자와 서버 사용자가 모두 sambashare 그룹에 속하므로 파일과 디렉토리를 편집, 삭제 및 작성할 수 있다는 것입니다. 그러나 작성된 폴더에는 그룹 세트에 대한 쓰기 플래그가 없으므로 서버 사용자는 sudo없이 해당 폴더에 새 파일 또는 폴더를 작성할 수 없습니다.

디렉토리 마스크, 강제 디렉토리 모드, 디렉토리 보안 모드 및 강제 디렉토리 보안 모드 추가 및 제거를 테스트했지만 동작은 여전히 ​​남아 있습니다. 새로 생성 된 파일 및 폴더는 의도 한 774 권한이 아니라 각각 764 및 754입니다.

내가 무엇을 놓치고 있습니까? 삼바가 올바른 권한을 설정하지 않는 이유는 무엇입니까?

답변:


19

다음 매개 변수를 사용해야한다고 생각합니다.

# I changes the permissions to rw-rw-r--
# You should be able to change them to 775 if you need the files to
# be executable
create mask = 664
force create mode = 664
security mask = 664
force security mode = 664

# I set the SGID flag here as I thought this is what you wanted
# You could change to 0775
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775

이 설정이 어떻게 작동하는지에 대한 좋은 설명을 찾고 있었지만 man smb.conf 보다 더 나은 것을 찾을 수 없었습니다.

해당 옵션을 위해 약간 아래로 스크롤해야합니다.

간단히 말해서, Windows 권한은 유닉스 (리눅스)와 동일하지 않으며 삼바가 권한을 매핑하는 방식이 약간 이상합니다.


1
예, 그것은 내가 본 samba.org/samba/docs/man/manpages-3/smb.conf.5.html 과 거의 같은 맨 페이지 인 것 같습니다. 값을 설정해도 생성 된 파일 또는 폴더에 대해 동일한 권한이 설정됩니다.
Zaz

내가 준 모든 옵션을 설정 했습니까? 그렇다면 첫 번째 게시물을 업데이트하고 그 시점에서 버그 보고서를 제출하십시오.
Panther

1
그것은 이미 말했다 .. 그러나 면밀한 검사와 테스트에서 디렉토리 마스크에 2를 추가하면 문제가 해결되었습니다. 많은 감사합니다. : D
Zaz

환상적입니다.이를 허용되는 답변으로 표시해 주셔서 감사합니다. 비슷한 문제가있는 다른 사람들을 도와줍니다.
Panther

Samba 구성은 지나치게 복잡하고 이해하기 어렵습니다. 예를 들어 force create와 just create ...의 논리적 차이점은 무엇입니까? 힌트는 생명의 은인입니다-감사합니다!
Matthias Hryniszak

8

많은 시행 착오를 한 후에 SGID 및 유닉스 그룹을 사용하여 삼바 디렉토리를 공유하는 올바른 코드입니다. 사용자가 익명으로 연결하면 r / o를 받고, 로그인하고 할당 된 그룹의 구성원 인 경우 r / w를 얻습니다.

쓰기 권한이있는 사용자에게 'admin'이라는 그룹을 기본 그룹으로 설정하면 다른 모든 사람에게 읽기 권한이 부여됩니다.

나는 사용자를 아무도 강요하지 않으므로 동일한 파일을 사용하는 다른 사람들이 서로 방해하지 않습니다.

공유 디렉토리에 chmod 2755를 설정했기 때문에 동일한 그룹 'admin'으로 작성된 디렉토리를 상속합니다.

$ chmod -R 2755 /home/shares/test

모든 것이 좋은지 확인 :

$ stat /home/shares/test
Access: (2755/drwxr-sr-x)  Uid: (65534/  nobody)   Gid: ( 1001/   admin)

/etc/samba/smb.conf의 관련 부분 :

[test]
        comment = test
        path = /home/shares/test
        force user = nobody
        read only = No
        create mask = 0664
        force create mode = 0664
        directory mask = 02775
        force directory mode = 02775

이 게시물은 저를 올바른 길로 안내했지만 testparm은 4 개의 잘못된 지시문을 공개 했으므로 여기에서 고정 구성을 공유하고 있습니다. 삼바에서는 지시문이 적을수록 더 잘 작동합니다.


6

나는 같은 문제가 있었지만 마스크 지시문과 같은 모든 것이 나를 위해 작동 하지 않았다 (Samba 4.3.11).

 create mask = 0664
 force create mode = 0664
 directory mask = 02775
 force directory mode = 02775

작동 한 유일한 옵션은 [global] 또는 share 섹션에있었습니다.

 inherit permissions = yes

모든 폴더 및 파일 권한을 필요에 따라 변경하면 향후 폴더 및 파일이 동일한 권한을 상속합니다.


Samba 버전 4.7.6-Ubuntu를 사용하고 있습니다. 그리고 이것은 나에게도 효과가 있습니다.
Andi S.

4.8.11on에 대한 정답 freebsd:)
지터

3

다른 Unix / Linux / OSX / MacOS 장치에서 연결할 때 매우 비슷한 문제가 있습니다. 사용자가 지정하지 않으면 모든 설정이 무시됩니다

[global]

unix extensions = no

smb://<serverhost>대신에 연결하십시오 cifs://<serverhost>.


0
 Here add this code to the sudo nano smb.conf
 and restart sudo service smbd restart  and access from another local PC/computer using connect with smb://<serverhost>  to create or edit files/folder   html is folder name 

 [html]
   comment = admin access
   path = /var/www/html
   browsable = yes
   guest ok = no
   writable = yes
   valid users = @admin
   create mask = 664
   force create mode = 664
   security mask = 664
   force security mode = 664
   directory mask = 2775
   force directory mode = 2775
   directory security mask = 2775
   force directory security mode = 2775
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.