내가 읽고 있어요Samba를 사용하여 Ubuntu에서 네트워크 공유 폴더를 설정하는 방법. 다음 구성은 "2단계: Samba 구성" 섹션에 나와 있습니다.
[sambashare]
comment= Network Shared Folder by Samba Server on Ubuntu
path = /home/your_username/sambashare
force user = smbuser
force group = smbgroup
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
public = yes
read only = no
다음 관계를 관찰하십시오.
create mask
그리고force create mode
directory mask
그리고force directory mode
두 매개변수 쌍 모두 동일한 값을 갖습니다.
create mask
매개변수 자체가 충분하지 않은 이유는 무엇 입니까 directory mask
? force create mode
및 매개변수가 존재하는 이유는 무엇입니까 force directory mode
?
공식 문서를 읽었습니다.삼바이것smb.conf(5)"각 매개변수에 대한 설명" 섹션이 있는 페이지. 그러나 이 두 가지 "힘" 매개변수의 존재 이유는 명확하지 않습니다.
답변1
첫째, 연결된 문서에는 다음과 같이 나와 있습니다.
패턴 만들기
이 매개변수는 동의어입니다.마스크 만들기.
마스크 만들기
파일이 생성되면 필요한 권한은 DOS 모드에서 UNIX 권한으로의 매핑을 기반으로 계산되며 결과 UNIX 모드는 이 매개 변수와 비트 단위 AND로 연결됩니다. 이 매개변수는 파일의 UNIX 모드에 대한 비트 마스크로 간주될 수 있습니다. 여기에 설정되지 않은 비트는 파일이 생성될 때 설정된 모드에서 제거됩니다. [...]
다음으로 Samba는 다음을 사용하여 이 매개변수로부터 UNIX 모드를 생성합니다.힘 생성 모드매개변수는 기본적으로 000으로 설정됩니다.
그래서:
create mask
생성 중인 파일에 제공된 권한에서 허용되지 않는(차단된) 권한을 제거합니다.force create mode
생성하려는 파일에 필요한 권한을 추가하세요.
예를 들어, 다음을 원한다고 가정해 보겠습니다.
- 파일에는 그룹에 대한 쓰기 권한이 없으며 다른 누구에게도 마찬가지입니다.
- 파일에는 항상 소유자 쓰기 권한이 있습니다(그러나 소유자에게 다른 권한이 있는지는 상관하지 않습니다).
그 다음에:
(1)의 경우
create mask
다음과 같습니다750
.- 사용자가 소유자 권한을 위해 무엇을 추가하는지 상관하지 않으므로
7
모든 것을 허용하십시오. - 그룹 쓰기 권한이 필요하지 않으므로
5
그룹에 대해서는 읽기 및 실행만 허용됩니다. 0
다른 사람들이 모든 것을 금지하도록 하세요.
- 사용자가 소유자 권한을 위해 무엇을 추가하는지 상관하지 않으므로
(2)의
force create mask
경우200
- 당신은 분명히 거기에 쓰기를 원할 것입니다. 그래서
2
소유자와0
나머지는 관련이 없기 때문입니다.
- 당신은 분명히 거기에 쓰기를 원할 것입니다. 그래서
따라서 사용자가 권한 475
(소유자에 대해 읽기, 그룹에 대해 모두 읽기, 다른 모든 사람에 대해 실행 읽기)이 있는 파일을 생성하려고 하면 (475 & 750) | 200
== 450 | 200
( 650
읽기그리고소유자를 위해 쓰고, 그룹을 위해 실행을 읽습니다). 그룹에 대한 쓰기 권한과 다른 사람에 대한 권한을 제거하고 create mask
소유자에 대한 쓰기 권한을 추가했습니다 force create mode
.