smb.conf에 "강제 생성 모드" 및 "강제 디렉터리 모드" 매개변수가 있는 이유는 무엇입니까?

smb.conf에 "강제 생성 모드" 및 "강제 디렉터리 모드" 매개변수가 있는 이유는 무엇입니까?

내가 읽고 있어요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. 파일에는 그룹에 대한 쓰기 권한이 없으며 다른 누구에게도 마찬가지입니다.
  2. 파일에는 항상 소유자 쓰기 권한이 있습니다(그러나 소유자에게 다른 권한이 있는지는 상관하지 않습니다).

그 다음에:

  1. (1)의 경우 create mask다음과 같습니다 750.

    • 사용자가 소유자 권한을 위해 무엇을 추가하는지 상관하지 않으므로 7모든 것을 허용하십시오.
    • 그룹 쓰기 권한이 필요하지 않으므로 5그룹에 대해서는 읽기 및 실행만 허용됩니다.
    • 0다른 사람들이 모든 것을 금지하도록 하세요.
  2. (2)의 force create mask경우200

    • 당신은 분명히 거기에 쓰기를 원할 것입니다. 그래서 2소유자와 0나머지는 관련이 없기 때문입니다.

따라서 사용자가 권한 475(소유자에 대해 읽기, 그룹에 대해 모두 읽기, 다른 모든 사람에 대해 실행 읽기)이 있는 파일을 생성하려고 하면 (475 & 750) | 200== 450 | 200( 650읽기그리고소유자를 위해 쓰고, 그룹을 위해 실행을 읽습니다). 그룹에 대한 쓰기 권한과 다른 사람에 대한 권한을 제거하고 create mask소유자에 대한 쓰기 권한을 추가했습니다 force create mode.

관련 정보