1.7. POSIX ACL을 사용하는 Samba 파일 공유 설정

Linux 서비스로 Samba는 POSIX ACL과 공유를 지원합니다. chmod와 같은 유틸리티를 사용하여 Samba 서버에서 권한을 로컬로 관리할 수 있습니다. 확장 속성을 지원하는 파일 시스템에 공유가 저장된 경우 여러 사용자 및 그룹을 사용하여 ACL을 정의할 수 있습니다.

참고

대신 세분화된 Windows ACL을 사용해야 하는 경우 Windows ACL을 사용하는 공유 설정 단원을 참조하십시오.

이 섹션의 일부는 Samba440에 게시된 POSIX ACL 설명서를 사용하여 공유 설정에서 채택되었습니다. 라이센스: CC BY 4.0. 작성자 및 기여자: Wiki 페이지의 기록 탭을 참조하십시오.

1.7.1. POSIX ACL을 사용하는 공유 추가

/srv/samba/ example / 디렉터리의 콘텐츠를 제공하고 POSIX ACL을 사용하는 example이라는 공유를 생성할 수 있습니다.

사전 요구 사항

Samba는 다음 모드 중 하나로 설정되었습니다.

절차

  1. 폴더가 없는 경우 해당 폴더를 생성합니다. 예를 들어 다음과 같습니다.

    # mkdir -p /srv/samba/example/
  2. enforcing 모드에서 SELinux를 실행하는 경우 디렉터리에 samba_share_t 컨텍스트를 설정합니다.

    # semanage fcontext -a -t samba_share_t "/srv/samba/example(/.*)?"
    # restorecon -Rv /srv/samba/example/
  3. 디렉터리에 파일 시스템 ACL을 설정합니다. 자세한 내용은 다음을 참조하십시오.

  4. 예제 공유를 /etc/samba/smb.conf 파일에 추가합니다. 예를 들어 공유 쓰기 기능을 추가하려면 다음을 수행합니다.

    [example]
    	path = /srv/samba/example/
    	read only = no
    참고

    파일 시스템 ACL에 관계없이 read only = no를 설정하지 않으면 Samba는 읽기 전용 모드로 디렉토리를 공유합니다.

  5. /etc/samba/smb.conf 파일을 확인합니다.

    # testparm
  6. 필요한 포트를 열고 firewall-cmd 유틸리티를 사용하여 방화벽 구성을 다시 로드합니다.

    # firewall-cmd --permanent --add-service=samba
    # firewall-cmd --reload
  7. smb 서비스를 다시 시작하십시오.

    # systemctl restart smb

1.7.2. POSIX ACL을 사용하는 Samba 공유에 표준 Linux ACL 설정

Linux의 표준 ACL은 하나의 소유자, 한 그룹, 기타 정의되지 않은 모든 사용자에 대한 권한을 설정합니다. chown,chgrpchmod 유틸리티를 사용하여 ACL을 업데이트할 수 있습니다. 정확한 제어가 필요한 경우 보다 복잡한 POSIX ACL을 사용하십시오.

POSIX ACL을 사용하는 Samba 공유에서 확장 ACL 설정.

다음 절차에서는 /srv/ initiate/example/ 디렉터리의 소유자를 root 사용자에게 설정하고, Domain Users 그룹에 읽기 및 쓰기 권한을 부여하고, 기타 모든 사용자에 대한 액세스를 거부합니다.

사전 요구 사항

  • ACL을 설정하려는 Samba 공유가 있습니다.

절차

# chown root:"Domain Users" /srv/samba/example/
# chmod 2770 /srv/samba/example/

참고

디렉토리에 set-group-ID(SGID) 비트를 활성화하면 새 디렉토리 항목을 생성한 사용자의 기본 그룹으로 설정하는 일반적인 동작이 아니라 모든 새 파일 및 하위 디렉토리에 대한 기본 그룹이 자동으로 설정됩니다.

추가 리소스

  • chown(1)kernel(1) 매뉴얼 페이지

1.7.3. POSIX ACL을 사용하는 Samba 공유에서 확장 ACL 설정

공유 디렉터리가 에 저장된 파일 시스템이 확장 ACL을 지원하는 경우 이를 사용하여 복잡한 권한을 설정할 수 있습니다. 확장 ACL에는 여러 사용자와 그룹에 대한 권한이 포함될 수 있습니다.

확장된 POSIX ACL을 사용하면 여러 사용자 및 그룹으로 복잡한 ACL을 구성할 수 있습니다. 그러나 다음 권한만 설정할 수 있습니다.

  • 액세스 권한 없음
  • 읽기 액세스
  • 쓰기 액세스
  • 완전 제어

Create folder / append data와 같은 세분화된 Windows 권한이 필요한 경우 Windows ACL을 사용하도록 공유를 구성합니다.

Windows ACL을 사용하는 공유 설정을 참조하십시오.

다음 절차는 공유에서 확장 ACL을 활성화하는 방법을 보여줍니다. 확장 ACL 설정에 대한 예제도 포함되어 있습니다.

사전 요구 사항

  • ACL을 설정하려는 Samba 공유가 있습니다.

절차

  1. /etc/ controlPlane/tekton.conf 파일의 share 섹션에서 다음 매개 변수를 활성화하여 확장 ACL에 대한 ACL 상속을 활성화합니다.

    inherit acls = yes

    자세한 내용은 smb.conf(5) 도움말 페이지의 매개 변수 설명을 참조하십시오.

  2. smb 서비스를 다시 시작하십시오.

    # systemctl restart smb
  3. 디렉터리에 ACL을 설정합니다. 예를 들어 다음과 같습니다.

    예 1.2. 확장 ACL 설정

    다음 절차에서는 Domain Admins 그룹에 대한 읽기, 쓰기, 실행 권한, Domain Users 그룹에 대한 읽기 및 실행 권한을 설정하고, /srv/tekton/example/ 디렉터리의 다른 모든 사용자에 대한 액세스를 거부합니다.

    1. 사용자 계정의 기본 그룹에 대한 자동 분리 권한을 비활성화합니다.

      # setfacl -m group::--- /srv/samba/example/
      # setfacl -m default:group::--- /srv/samba/example/

      디렉터리의 기본 그룹은 동적 CREATOR GROUP principal에 추가로 매핑됩니다. Samba 공유에 확장 POSIX ACL을 사용하면 이 보안 주체가 자동으로 추가되고 제거할 수 없습니다.

    2. 디렉터리에 대한 권한을 설정합니다.

      1. Domain Admins 그룹에 읽기, 쓰기 및 실행 권한을 부여합니다.

        # setfacl -m group:"DOMAIN\Domain Admins":rwx /srv/samba/example/
      2. Domain Users 그룹에 읽기 및 실행 권한을 부여합니다.

        # setfacl -m group:"DOMAIN\Domain Users":r-x /srv/samba/example/
      3. 기타 ACL 항목과 일치하지 않는 사용자에 대한 액세스를 거부하려면 other ACL 항목에 대한 권한을 설정합니다.

        # setfacl -R -m other::--- /srv/samba/example/

      이러한 설정은 이 디렉터리에만 적용됩니다. Windows에서는 이러한 ACL 이 이 폴더만 모드로 매핑됩니다.

    3. 이전 단계에서 설정한 권한을 이 디렉터리에 생성된 새 파일 시스템 개체에서 상속할 수 있도록 하려면 다음을 실행합니다.

      # setfacl -m default:group:"DOMAIN\Domain Admins":rwx /srv/samba/example/
      # setfacl -m default:group:"DOMAIN\Domain Users":r-x /srv/samba/example/
      # setfacl -m default:other::--- /srv/samba/example/

      이러한 설정을 사용하면 보안 주체의 This folder only mode가 이제 이 폴더, 하위 폴더 및 파일로 설정됩니다.

    Samba는 절차에 설정된 권한을 다음 Windows ACL에 매핑합니다.

    보안 주체액세스적용 대상

    도메인\Domain 관리자

    완전 제어

    이 폴더, 하위 폴더 및 파일

    도메인\Domain 사용자

    읽기 & 실행

    이 폴더, 하위 폴더 및 파일

    Everyone [a]

    없음

    이 폴더, 하위 폴더 및 파일

    소유자 (Unix User\owner) [b]

    완전 제어

    이 폴더만

    primary_group (Unix User\tekton_group) [c]

    없음

    이 폴더만

    CREATOR OWNER [d] [e]

    완전 제어

    하위 폴더 및 파일만

    CREATOR 그룹 [e] [f]

    없음

    하위 폴더 및 파일만

    [a] Samba는 이 주체에 대한 권한을 other ACL 항목에서 매핑합니다.
    [b] Samba는 디렉터리의 소유자를 이 항목에 매핑합니다.
    [c] Samba는 디렉터리의 기본 그룹을 이 항목에 매핑합니다.
    [d] 새 파일 시스템 오브젝트에서 작성자는 이 보안 주체의 권한을 자동으로 상속합니다.
    [e] POSIX ACL을 사용하는 공유에서 지원되지 않는 ACL에서 이러한 주체를 구성하거나 제거합니다.
    [f] 새 파일 시스템 오브젝트에서 작성자의 기본 그룹은 이 보안 주체의 권한을 자동으로 상속합니다.