1.10. smbcacls를 사용하여 SMB 공유에서 ACL 관리
smbcacls 유틸리티는 SMB 공유에 저장된 파일 및 디렉터리의 ACL을 나열, 설정 및 삭제할 수 있습니다. smbcacls를 사용하여 파일 시스템 ACL을 관리할 수 있습니다.
- 고급 Windows ACL 또는 POSIX ACL을 사용하는 로컬 또는 원격 Samba 서버에서
- Windows에서 호스팅되는 공유에 대한 ACL을 원격으로 관리하려면 Red Hat Enterprise Linux에서
1.10.1. 액세스 제어 항목 링크 복사링크가 클립보드에 복사되었습니다!
파일 시스템 오브젝트의 각 ACL 항목에는 다음 형식으로 ACE(Access Control Entries)가 포함되어 있습니다.
security_principal:access_right/inheritance_information/permissions
security_principal:access_right/inheritance_information/permissions
예 1.3. 액세스 제어 항목
AD\Domain Users 그룹에 이 폴더, 하위 폴더 및 Windows의 파일에 적용되는 수정 권한이 있는 경우 ACL에 다음 ACE가 포함됩니다.
AD\Domain Users:ALLOWED/OI|CI/CHANGE
AD\Domain Users:ALLOWED/OI|CI/CHANGE
ACE에는 다음 부분이 포함되어 있습니다.
- 보안 주체
- 보안 주체는 ACL의 권한이 적용되는 사용자, 그룹 또는 SID입니다.
- 액세스 권한
-
오브젝트에 대한 액세스 허용 또는 거부 여부를 정의합니다. 값은
ALLOWED또는DENIED일 수 있습니다. - 상속 정보
다음 값이 있습니다.
Expand 표 1.1. 상속 설정 값 설명 매핑 OIObject Inherit
이 폴더 및 파일
CIContainer Inherit
이 폴더 및 하위 폴더
IO상속만
현재 파일 또는 디렉터리에는 ACE가 적용되지 않습니다.
IDinherited
상위 디렉토리에서 ACE를 상속했습니다.
또한 값은 다음과 같이 결합할 수 있습니다.
Expand 표 1.2. 상속 설정 조합 값 조합 Windows에 매핑하여 설정할 수있습니다.OI|CI이 폴더, 하위 폴더 및 파일
OI|CI|IO하위 폴더 및 파일만
CI|IO하위 폴더만 해당
OI|IO파일만
- 권한
이 값은 하나 이상의 Windows 권한 또는 rootfs
cacls별칭을 나타내는 16진수 값일 수 있습니다.하나 이상의 Windows 권한을 나타내는 16진수 값입니다.A hex value that represents one or more Windows permissions.
다음 표에서는 고급 Windows 권한 및 해당 값을 16진수 형식으로 표시합니다.
Expand 표 1.3. Windows 권한 및 해당 rootfscacls 값 16진수 형식 Windows 권한 Hex 값 완전 제어
0x001F01FF트래버스 폴더/실행 파일
0x00100020목록 / 읽기 데이터
0x00100001읽기 속성
0x00100080확장 속성 읽기
0x00100008파일 생성 / 쓰기
0x00100002폴더 생성 / 데이터 추가
0x00100004쓰기 속성
0x00100100확장 속성 작성
0x00100010하위 폴더 및 파일 삭제
0x00100040delete
0x00110000읽기 권한
0x00120000권한 변경
0x00140000소유권 가져오기
0x00180000비트 단위
OR작업을 사용하여 여러 권한을 단일 16진수 값으로 결합할 수 있습니다.
자세한 내용은 ACE 마스크 계산을 참조하십시오.
Net
Namespacecacls별칭. 다음 표에서 사용 가능한 별칭을 표시합니다.Expand 표 1.4. 기존 pvccacls 별칭 및 해당 Windows 권한 pvccacls별칭Windows 권한에 매핑 R읽기
READ읽기 & 실행
W특별함:
- 파일 생성 / 쓰기
- 폴더 생성 / 데이터 추가
- 쓰기 속성
- 확장 속성 작성
- 읽기 권한
Ddelete
P권한 변경
O소유권 가져오기
X트래버스 / 실행
변경수정
FULL완전 제어
참고권한을 설정할 때 단일 문자 별칭을 결합할 수 있습니다. 예를 들어
RD를 설정하여 Windows 권한읽기및삭제를 적용할 수 있습니다. 그러나 여러 개의 단일 문자 별칭을 결합하거나 별칭과 hex 값을 결합할 수 없습니다.
1.10.2. rootfscacls를 사용하여 ACL 표시 링크 복사링크가 클립보드에 복사되었습니다!
SMB 공유의 ACL을 표시하려면 rootfs cacls 유틸리티를 사용합니다. --add 와 같은 operation 매개변수 없이 NetNamespace cacls 를 실행하면 유틸리티에서 파일 시스템 오브젝트의 ACL을 표시합니다.
절차
예를 들어 //server/example 공유의 루트 디렉터리의 ACL을 나열하려면 다음을 수행합니다.
smbcacls //server/example / -U "DOMAIN\administrator"
# smbcacls //server/example / -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
REVISION:1
CONTROL:SR|PD|DI|DP
OWNER:AD\Administrators
GROUP:AD\Domain Users
ACL:AD\Administrator:ALLOWED/OI|CI/FULL
ACL:AD\Domain Users:ALLOWED/OI|CI/CHANGE
ACL:AD\Domain Guests:ALLOWED/OI|CI/0x00100021
명령 출력이 표시됩니다.
-
REVISION: 보안 설명자의 내부 Windows NT ACL 개정 -
CONTROL: 보안 설명자 제어 -
보안 설명자 소유자의 이름 또는 SID
-
GROUP: 보안 설명자 그룹의 이름 또는 SID -
ACL항목. 자세한 내용은 액세스 제어 항목을 참조하십시오.
1.10.3. ACE 마스크 계산 링크 복사링크가 클립보드에 복사되었습니다!
대부분의 경우 ACE를 추가하거나 업데이트할 때 Existingtekton cacls 별칭과 해당 Windows 권한에 나열된 rootfscacls 별칭을 사용합니다.
그러나 Windows 권한에 나열된 고급 Windows 권한을 설정하고 16진수 형식의 해당 rootfscacls 값을 설정하려는 경우, 비트 단위 OR 작업을 사용하여 올바른 값을 계산해야 합니다. 다음 shell 명령을 사용하여 값을 계산할 수 있습니다.
echo $(printf '0x%X' $(( hex_value_1 | hex_value_2 | ... )))
# echo $(printf '0x%X' $(( hex_value_1 | hex_value_2 | ... )))
예 1.4. ACE mask 계산
다음 권한을 설정하려고 합니다.
- 트래버스 폴더/실행 파일(0x00100020)
- 목록 / 읽기 데이터(0x00100001)
- 읽기 속성(0x00100080)
이전 권한에 대한 16진수 값을 계산하려면 다음을 입력합니다.
echo $(printf '0x%X' $(( 0x00100020 | 0x00100001 | 0x00100080 )))
# echo $(printf '0x%X' $(( 0x00100020 | 0x00100001 | 0x00100080 )))
0x1000A1
ACE를 설정하거나 업데이트할 때 반환된 값을 사용합니다.
1.10.4. rootfscacls를 사용하여 ACL 추가, 업데이트 및 제거 링크 복사링크가 클립보드에 복사되었습니다!
qcow cacls 유틸리티에 전달하는 매개변수에 따라 파일 또는 디렉터리에서 ACL을 추가, 업데이트 및 제거할 수 있습니다.
ACL 추가
이 폴더에 대한 추가합니다.
CHANGE 권한을 부여하는 //server/example 공유의 루트에 ACL을 추가하려면 AD\Domain Users 그룹에 파일을
smbcacls //server/example / -U "DOMAIN\administrator --add ACL:"AD\Domain Users":ALLOWED/OI|CI/CHANGE
# smbcacls //server/example / -U "DOMAIN\administrator --add ACL:"AD\Domain Users":ALLOWED/OI|CI/CHANGE
ACL 업데이트
ACL을 업데이트하는 것은 새 ACL을 추가하는 것과 유사합니다. 기존 보안 주체와 함께 --modify 매개 변수를 사용하여 ACL을 재정의하여 ACL을 업데이트합니다. pvc cacls 가 ACL 목록에서 보안 주체를 발견하면 유틸리티가 권한을 업데이트합니다. 그렇지 않으면 명령이 오류와 함께 실패합니다.
ACL for SID principal_name not found
ACL for SID principal_name not found
예를 들어 AD\Domain Users 그룹의 권한을 업데이트하고 이 폴더, 하위 폴더 및 파일에 대해 READ 로 설정하려면 다음을 수행합니다.
smbcacls //server/example / -U "DOMAIN\administrator --modify ACL:"AD\Domain Users":ALLOWED/OI|CI/READ
# smbcacls //server/example / -U "DOMAIN\administrator --modify ACL:"AD\Domain Users":ALLOWED/OI|CI/READ
ACL 삭제
ACL을 삭제하려면 정확한 ACL을 사용하는 --delete 매개 변수를 smbcacls 유틸리티에 전달합니다. 예를 들어 다음과 같습니다.
smbcacls //server/example / -U "DOMAIN\administrator --delete ACL:"AD\Domain Users":ALLOWED/OI|CI/READ
# smbcacls //server/example / -U "DOMAIN\administrator --delete ACL:"AD\Domain Users":ALLOWED/OI|CI/READ