Linux 권한 관리 (2) ACL 권한
Linux 에서 사용자 가 파일 에 대한 조작 권한 은 r - 읽 기, w - 쓰기, x - 세 가지 가 있 습 니 다.한편, Liux 의 파일 에 있어 사용자 신분 은 소유자, 소속 그룹, 다른 사람 세 가지 로 나 뉜 다.또한 파일 의 소유자, 소속 그룹 은 하나 일 수 있 습 니 다.따라서 파일 에 사용자 의 사용 권한 을 분배 할 때 이 세 가지 신분 에 대해 읽 기, 쓰기, 실행 권한 만 분배 할 수 있다.
리 눅 스 는 주로 서버 시스템 으로 사용 되 며 사용자 가 많다.그래서 실제 사용 장면 에서 이 세 가지 신분 은 자원 권한 배분 문 제 를 잘 실현 하지 못 하기 때문에 ACL 권한 이 생 겼 다.ACL 권한 은 Liux 의 세 가지 신분 이 자원 권한 배분 수 요 를 만족 시 키 지 못 하 는 문 제 를 해결 하기 위해 서 입 니 다.
2. 파 티 션 ACL 권한 오픈
1. 파 티 션 ACL 권한 이 열 렸 는 지 확인
dumpe2fs -h [ ]
dumpe2fs
지정 한 파 티 션 의 상세 한 파일 시스템 정 보 를 조회 하 는 명령 입 니 다.-h
디스크 블록 그룹의 상세 한 정 보 를 표시 하지 않 고 슈퍼 블록 에 있 는 정보 만 표시 합 니 다.출력 중
Default mount options
항목 이 acl
있 으 면 파 티 션 ACL 권한 이 열 린 다 는 뜻 입 니 다.파 티 션 ACL 을 열 수 있 는 권한 이 없 으 면 수 동 으로 열 어야 합 니 다.
실례
[root~]# dumpe2fs -h /dev/sda1 | grep 'Default mount options'
dumpe2fs 1.42.9 (4-Feb-2014)
Default mount options: user_xattr acl
2. 파 티 션 ACL 임시 오픈 권한
루트 파 티 션 을 다시 마 운 트 하고 마 운 트 할 때 acl 권한 을 추가 합 니 다.
mount -o remount,acl /
3. 파 티 션 ACL 권한 영구 오픈
프로필 편집
/etc/fstab
acl
UUID=64ecdf77-db7b-48a8-9066-abfb837f2e24 / ext4 defaults,acl 1 1
mount -o remount /
3. getfacl 과 setfacl 명령
1. getfacl
ACL
문법
getfacl [ ]
2. setfacl
、 ACL
문법
setfacl [ ] [ ]
옵션
-m
: ACL 권한 을 설정 하고 여러 개의 ACL 규칙 을 쉼표 로 설정 합 니 다 (,
분리-x
: 지정 한 ACL 권한 을 삭제 하고 여러 개의 ACL 규칙 을 쉼표 로 (,
분리-b
: 모든 ACL 권한 삭제-d
: 기본 ACL 권한 설정-k
: 기본 ACL 권한 삭제-R
: 재 귀적 으로 ACL 권한 설정ACL 규칙
setfacl 명령 은 다음 과 같은 규칙 형식 을 식별 할 수 있 습 니 다.
[d:]u:[ ]:[ (rwx)]
: 사용자 권한 지정 [d:]g:[ ]:[ (rwx)]
: 사용자 그룹의 권한 을 지정 합 니 다 [d:]m:[ (rwx)]
: 최대 유효 권한 지정 [d:]
기본 권한 으로 설정4. ACL 권한 설정
1. 사용자 에 게 ACL 권한 설정
문법
setfacl -m u:[ ]:[ (rwx)] [ ]
활용 단어 참조
res/
[root/tmp/acl]# mkdir res
[root/tmp/acl]# chmod 750 res/
[root/tmp/acl]# ll
0
drwxr-x--- 2 root root 6 6 8 01:11 res/
750
에 게 디 렉 터 리 wang
에 대한 읽 기와 쓰기 권한 설정 [root/tmp/acl]# setfacl -m u:wang:rx res/
res/
[root/tmp/acl]# ll
0
drwxr-x---+ 2 root root 6 6 8 01:11 res/
+
의 acl 권한 을 보면 한 줄 res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
user:wang:r-x
group::r-x
mask::r-x
other::---
user:wang:r-x
로 전환 하면 디 렉 터 리 wang
에 들 어 갈 수 있 고 디 렉 터 리 안의 파일 을 볼 수 있 으 며 파일 을 만 들 수 없다. 이 는 사용자 res/
가 디 렉 터 리 wang
에 대한 권한 이 res/
[root~]# su wang
[wang@10 root]$ cd /tmp/acl/
[wang@10 acl]$ ll
0
drwxr-x---+ 2 root root 6 6 8 01:11 res
[wang@10 acl]$ cd res/
[wang@10 res]$ ll
0
[wang@10 res]$ touch file
touch: "file":
2. 사용자 그룹 에 ACL 권한 설정
문법
setfacl -m g:[ ]:[ (rwx)] [ ]
활용 단어 참조
r-x
목록 [root/tmp/acl]# ll
0
drwxr-x--- 2 root root 6 6 8 01:11 res/
res/
을 만 들 고 한 사용자 phper
를 새로 만 들 고 zhang
그룹 [root/tmp/acl]# groupadd phper
[root/tmp/acl]# useradd -g phper zhang
[root/tmp/acl]# grep phper /etc/group
phper:x:1002:
[root/tmp/acl]# grep zhang /etc/passwd
zhang:x:1002:1002::/home/zhang:/bin/bash
phper
에 디 렉 터 리 phper
에 대한 읽 기, 쓰기, 실행 권한 설정 [root/tmp/acl]# setfacl -m g:phper:rwx res/
res/
의 acl 권한 을 보면 한 줄 res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
user:wang:r-x
group::r-x
group:phper:rwx
mask::rwx
other::---
group:phper:rwx
로 전환 하면 디 렉 터 리 zhang
에 들 어 갈 수 있 고 파일 을 만 들 수 있 으 며 디 렉 터 리 에 있 는 파일 을 볼 수 있 으 며 사용자 res/
가 디 렉 터 리 zhang
에 대한 권한 이 res/
[root/tmp/acl]# su zhang
[zhang@10 acl]$ ll
0
drwxrwx---+ 2 root root 6 6 8 01:11 res
[zhang@10 acl]$ cd res/
[zhang@10 res]$ touch phper.log
[zhang@10 res]$ ll
0
-rw-r--r-- 1 zhang phper 0 6 8 02:27 phper.log
5. ACL 권한 삭제
1. 지정 한 사용자 의 ACL 권한 삭제
문법
setfacl -x u:[ ] [ ]
활용 단어 참조
rwx
에 대한 사용자 wang
의 ACL 권한 삭제 [root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
user:wang:r-x
group::r-x
group:phper:rwx
mask::rwx
other::---
[root/tmp/acl]# setfacl -x u:wang res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
group:phper:rwx
mask::rwx
other::---
2. 지정 한 사용자 그룹의 ACL 권한 삭제
문법
setfacl -x g:[ ] [ ]
활용 단어 참조
res/
디 렉 터 리 phper
에 대한 ACL 권한 [root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
group:phper:rwx
mask::rwx
other::---
[root/tmp/acl]# setfacl -x g:phper res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::---
3. 파일 의 모든 ACL 권한 삭제
문법
setfacl -b [ ]
활용 단어 참조
res/
와 사용자 그룹 wang
의 디 렉 터 리 phper
에 대한 ACL 권한 추가 [root/tmp/acl]# setfacl -m u:wang:r-x res/
[root/tmp/acl]# setfacl -m g:phper:rwx res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
user:wang:r-x
group::r-x
group:phper:rwx
mask::rwx
other::---
[root/tmp/acl]# setfacl -b res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
other::---
6. ACL 최대 유효 권한: mask
마스크 는 최대 유효한 권한 을 지정 하 는 데 사 용 됩 니 다.사용자 에 게 ACL 권한 을 부여 했다 면 마스크 의 권한 과 '일치' 해 야 하 며, 결과 야 말로 사용자 가 진정 으로 얻 은 권한 이다.
1. 최대 유효 권한 마스크 보기
getfacl [ ]
파일 이 ACL 권한 을 설정 해 야 mask 항목 이 있 습 니 다.
실례
[root/tmp/acl]# setfacl -m g:phper:rwx res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
group:phper:rwx
mask::rwx
other::---
2. 최대 유효 권한 마스크 수정
setfacl -m m:[ (rwx)] [ ]
실례
res/
[root/tmp/acl]# setfacl -m m:rx res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
group:phper:rwx #effective:r-x
mask::r-x
other::---
r-x
로 전환 하면 디 렉 터 리 zhang
에 들 어 갈 수 있 고 디 렉 터 리 안의 파일 을 볼 수 있 으 며 파일 을 만 들 수 없다. 이 는 사용자 res/
가 디 렉 터 리 zhang
에 대한 권한 이 res/
[zhang@10 acl]$ ll
0
drwxr-x---+ 2 root root 6 6 8 05:19 res
[zhang@10 acl]$ getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
group:phper:rwx #effective:r-x
mask::r-x
other::---
[zhang@10 acl]$ cd res/
[zhang@10 res]$ ll
0
[zhang@10 res]$ touch file
touch: "file":
주의해 야 할 것 은 마스크 값 은 모든 사용자 와 그룹의 ACL 권한 을 설정 한 후에 수정 해 야 한 다 는 것 이다.mark 의 값 을 먼저 수정 한 다음 사용자 와 그룹의 ACL 권한 을 설정 하면 mark 값 은 시스템 에서 자동 으로 초기 화 됩 니 다.
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
group:phper:rwx #effective:r-x
mask::r-x
other::---
[root/tmp/acl]# setfacl -m u:wang:rwx res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
user:wang:rwx
group::r-x
group:phper:rwx
mask::rwx
other::---
7. 귀속 ACL 권한
부모 디 렉 터 리 ACL 권한 을 설정 하 는 동시에 모든 하위 파일 과 디 렉 터 리 에 같은 ACL 권한 을 설정 합 니 다.
재 귀적 권한 은 디 렉 터 리 만 부여 할 수 있 고 파일 은 부여 할 수 없습니다.
setfacl -m u:[ ]:[ (rwx)] -R [ ]
실례
r-x
를 만 들 고 res/
디 렉 터 리 아래 res/
와 dir/
두 파일 을 만 들 고 ACL 권한 [root/tmp/acl]# ll
0
drwxr-xr-x 3 root root 28 6 8 06:04 res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
[root/tmp/acl]# cd res
[root/tmp/acl/res]# ll
0
drwxr-xr-x 2 root root 6 6 8 06:02 dir/
-rw-r--r-- 1 root root 0 6 8 06:02 file
[root/tmp/acl/res]# getfacl dir/
# file: dir/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
[root/tmp/acl/res]# getfacl file
# file: file
# owner: root
# group: root
user::rw-
group::r--
other::r--
file
과 그 아래 의 모든 파일 과 디 렉 터 리 에 ACL 권한 을 설정 합 니 다 [root/tmp/acl]# setfacl -m g:phper:rwx -R res/
[root/tmp/acl]# ll
0
drwxrwxr-x+ 3 root root 27 6 8 06:06 res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
group:phper:rwx
mask::rwx
other::r-x
[root/tmp/acl]# cd res/
[root/tmp/acl/res]# ll
0
drwxrwxr-x+ 2 root root 6 6 8 06:02 dir/
-rw-rwxr--+ 1 root root 0 6 8 06:02 file*
[root/tmp/acl/res]# getfacl dir/
# file: dir/
# owner: root
# group: root
user::rwx
group::r-x
group:phper:rwx
mask::rwx
other::r-x
[root/tmp/acl/res]# getfacl file
# file: file
# owner: root
# group: root
user::rw-
group::r--
group:phper:rwx
mask::rwx
other::r--
8. 기본 ACL 권한
디 렉 터 리 에 기본 ACL 권한 을 설정 하면 이 디 렉 터 리 에 새로 만 든 모든 파일 과 디 렉 터 리 는 부모 디 렉 터 리 의 ACL 권한 을 계승 합 니 다.
기본 권한 은 디 렉 터 리 만 부여 할 수 있 고 파일 은 부여 할 수 없습니다.
기본 ACL 권한 이 실행 권한 을 설정 하 더 라 도 디 렉 터 리 에 새로 만 든 파일 은 실행 권한 이 없습니다!
setfacl -m d:u:[ ]:[ (rwx)] [ ]
실례
res/
를 만 들 고 res/
디 렉 터 리 에 파일 을 만 들 고 res/
ACL 권한 을 설정 하지 않 았 습 니 다 [root/tmp/acl]# mkdir res
[root/tmp/acl]# touch res/file
[root/tmp/acl]# ll
0
drwxr-xr-x 2 root root 17 6 8 06:18 res/
[root/tmp/acl]# ll res/
0
-rw-r--r-- 1 root root 0 6 8 06:18 file
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
[root/tmp/acl]# getfacl res/file
# file: res/file
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root/tmp/acl]# setfacl -m d:g:phper:rwx res/
[root/tmp/acl]# ll
0
drwxr-xr-x+ 2 root root 17 6 8 06:18 res/
[root/tmp/acl]# getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:phper:rwx
default:mask::rwx
default:other::r-x
주의해 야 할 것 은
file
디 렉 터 리 자체 와 그 아래 에 이미 존재 하 는 파일 res/
에 ACL 권한 이 없습니다.res/
로 전환 하면 file
사용자 에 게 만 있 는 권한 을 얻 었 을 뿐 phper
디 렉 터 리 에 파일 을 만 들 수도 수정 할 수도 없다 zhang
파일 [zhang@10 acl]$ ll
0
drwxr-xr-x+ 3 root root 27 6 8 06:26 res
[zhang@10 acl]$ getfacl res/
# file: res/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:phper:rwx
default:mask::rwx
default:other::r-x
[zhang@10 acl]$ cd res/
[zhang@10 res]$ ll
4
-rw-r--r-- 1 root root 0 6 8 06:18 file
[zhang@10 res]$ getfacl file
# file: file
# owner: root
# group: root
user::rw-
group::r--
other::r--
[zhang@10 res]$ touch file2
touch: "file2":
[zhang@10 res]$ date > file
bash: file:
zhang
디 렉 터 리 아래 디 렉 터 리 만 들 기 other
부모 디 렉 터 리 설정 의 기본 ACL 권한 자동 보유 [root/tmp/acl/res]# mkdir dir
[root/tmp/acl/res]# getfacl dir/
# file: dir/
# owner: root
# group: root
user::rwx
group::r-x
group:phper:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:phper:rwx
default:mask::rwx
default:other::r-x
res/
디 렉 터 리 에 파일 만 들 기 res/file
부모 디 렉 터 리 설정 의 기본 ACL 권한 을 자동 으로 가 집 니 다. 실행 권한 제외 [root/tmp/acl/res]# touch file_new
[root/tmp/acl/res]# getfacl file_new
# file: file_new
# owner: root
# group: root
user::rw-
group::r-x #effective:r--
group:phper:rwx #effective:rw-
mask::rw-
other::r--
어떤 경우 에 도 새 파일 은 자동 으로 실행 권한 을 가 질 수 없습니다!기본 ACL 권한 이 실행 권한 을 설정 하 더 라 도 디 렉 터 리 에 새로 만 든 파일 은 실행 권한 이 없습니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ubuntu 22.04에 캐디 설치 - HostnExtra이 기사에서는 Ubuntu 22.04에 Caddy를 설치하는 방법을 설명합니다. 이 문서는 설치 프로세스를 안내하고 웹 사이트를 호스팅합니다. Caddy 웹 서버는 Go로 작성된 오픈 소스 웹 서버입니다. Ubunt...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.