0. extbk 그룹에 사용자 bkupusr을 추가합니다.
leeand00@hostname:/home/leeand00/$ sudo groupadd extbk
leeand00@hostname:/home/leeand00/$ sudo usermod -G extbk bkupusr
1. 생성된 디렉터리 구조:
leeand00@hostname:/home/leeand00/$ mkdir appdir2
leeand00@hostname:/home/leeand00/$ mkdir appdir2/appuser1
leeand00@hostname:/home/leeand00/$ mkdir appdir2/appuser2
2. 나중에 여기에서 생성하는 다른 콘텐츠에 대한 기본 권한을 설정합니다(기존 콘텐츠는 반복되지 않음).
leeand00@hostname:/home/leeand00/$ setfacl -dm g:extbk:r ./appdir2
3. 디렉터리 및 파일을 생성합니다.
leeand00@hostname:/home/leeand00/$ cd appdir2
leeand00@hostname:/home/leeand00/appdir2/$ touch file1
leeand00@hostname:/home/leeand00/appdir2/$ mkdir dir1
leeand00@hostname:/home/leeand00/appdir2/$ echo "Hi" >> file1
4. 다른 그룹이 appdir2를 읽고 실행하는 것을 방지합니다.
leeand00@hostname:/home/leeand00/appdir2/$ cd ..
leeand00@hostname:/home/leeand00/$ chmod o-xr ./appdir2
5. extbk 그룹의 사용자로부터 액세스를 시도합니다.
bkuser@hostname:/home/leeand00/$ cd ./appdir2
bash: cd: appdir2: Permission denied
bkuser@hostname:/home/leeand00/$ cat ./appdir2/file1
cat: appdir2/file1: Permission denied
그러나 다음과 같이 다른 권한을 변경하면:
leeand00@hostname:/home/leeand00/$ chmod o+x ./appdir2
그러면 파일에 다시 액세스할 수 있습니다.
bkuser@hostname:/home/leeand00/$ cd ./appdir2
bkuser@hostname:/home/leeand00/$ cat ./appdir2/file1
hi
하지만 다른 그룹의 다른 사람들도 마찬가지입니다. 그러면 ACL의 그룹(및 그룹과 소유자)에만 액세스를 허용하고 다른 그룹에는 액세스를 허용하지 않는 방법이 있습니까?
답변1
가지다둘폴더와 관련된 FACL 규칙 집합 ./appuser2
: 폴더 자체에 대한 FACL 규칙 ./appuser2
과 폴더 내에 생성된 파일 및 폴더에 적용되는 기본 FACL 규칙을 지정하는 두 번째 FACL 규칙 집합입니다 ./appuser2
.
위에서 설명한 단계에서는 에서 생성된 파일 및 폴더에 적용되는 "기본" FACL 규칙을 설정했지만 ./appuser2
폴더 자체에 대한 ./appuser2
FACL 규칙 집합은 아직 정의 하지 않았습니다. 이는 그룹 구성원이 extbk
자신의 콘텐츠에 액세스할 수 없는 이유 중 하나입니다 ./appuser2
.
수정해야 할 또 다른 잘못된 구성 문제: 폴더에 액세스해야 하는 모든 사용자에게는 ./appuser2
디렉터리에 대한 "x" 실행 권한을 부여해야 합니다. chmod(1) 매뉴얼에 설명된 대로 폴더의 경우 "x" 실행 권한은 폴더에 대한 사용자 검색 권한을 부여하며, 이는 폴더의 내용에 액세스하기 위해 폴더에서 디렉터리 변경 작업을 수행할 수 있는 권한을 사용자에게 부여합니다.
다음은 귀하의 원래 의견을 바탕으로 한 예입니다.
목록 1: FACL 권한 예
sudo su -
mkdir -p /opt/appdir2/{appuser1,appuser2}
setfacl -bR /opt/appdir2/
chmod 750 /opt/appdir2/appuser2/
find /opt/appdir2/ -ls
1049001 4 drwxr-xr-x 4 root root 4096 Jul 26 22:02 /opt/appdir2/
1049051 4 drwxr-xr-x 2 root root 4096 Jul 26 22:02 /opt/appdir2/appuser1
1049053 4 drwxr-x--- 2 root root 4096 Jul 26 22:02 /opt/appdir2/appuser2
getfacl -p /opt/appdir2/appuser2/
# file: /opt/appdir2/appuser2/
# owner: root
# group: root
user::rwx
group::r-x
other::---
#==========================================================
# FACL rules for folder `/opt/appdir2/appuser2/'.
setfacl -m g:extbk:r-x /opt/appdir2/appuser2/
getfacl -p /opt/appdir2/appuser2/
# file: /opt/appdir2/appuser2/
# owner: root
# group: root
user::rwx
group::r-x
group:extbk:r-x
mask::r-x
other::---
#==========================================================
# FACL rules for files and folders created
# within folder `/opt/appdir2/appuser2/'.
setfacl -dm g:extbk:r-x /opt/appdir2/appuser2/
getfacl -p /opt/appdir2/appuser2/
# file: /opt/appdir2/appuser2/
# owner: root
# group: root
user::rwx
group::r-x
group:extbk:r-x
mask::r-x
other::---
default:user::rwx
default:group::r-x
default:group:extbk:r-x
default:mask::r-x
default:other::---
echo "Hello" >/opt/appdir2/file1
echo "World" >/opt/appdir2/appuser2/file2
find /opt/appdir2/ -ls
1049001 4 drwxr-xr-x 4 root root 4096 Jul 26 22:13 /opt/appdir2/
1049051 4 drwxr-xr-x 2 root root 4096 Jul 26 22:02 /opt/appdir2/appuser1
1049053 8 drwxr-x--- 2 root root 4096 Jul 26 22:13 /opt/appdir2/appuser2
1049071 4 -rw-r----- 1 root root 6 Jul 26 22:13 /opt/appdir2/appuser2/file2
1049055 4 -rw-r--r-- 1 root root 6 Jul 26 22:13 /opt/appdir2/file1
getfacl -p /opt/appdir2/appuser2/file2
# file: /opt/appdir2/appuser2/file2
# owner: root
# group: root
user::rw-
group::r-x #effective:r--
group:extbk:r-x #effective:r--
mask::r--
other::---
#==========================================================
# Ensure users who are members of the group `extbk'
# are granted access to folder /opt/appdir2/appuser2/
# and its contents.
usermod -a -G extbk deleteme
su - deleteme
[deleteme]$ find /opt/appdir2/ -ls
1049001 4 drwxr-xr-x 4 root root 4096 Jul 26 22:13 /opt/appdir2/
1049051 4 drwxr-xr-x 2 root root 4096 Jul 26 22:02 /opt/appdir2/appuser1
1049053 8 drwxr-x--- 2 root root 4096 Jul 26 22:13 /opt/appdir2/appuser2
1049071 4 -rw-r----- 1 root root 6 Jul 26 22:13 /opt/appdir2/appuser2/file2
1049055 4 -rw-r--r-- 1 root root 6 Jul 26 22:13 /opt/appdir2/file1
[deleteme]$ cat /opt/appdir2/appuser2/file2
World
[deleteme]$ exit
#==========================================================
# Ensure users who are NOT members of the group `extbk'
# are denied access to folder /opt/appdir2/appuser2/
# and its contents.
gpasswd -d deleteme extbk
su - deleteme
[deleteme]$ find /opt/appdir2/ -ls
1049001 4 drwxr-xr-x 4 root root 4096 Jul 26 22:13 /opt/appdir2/
1049051 4 drwxr-xr-x 2 root root 4096 Jul 26 22:02 /opt/appdir2/appuser1
1049053 8 drwxr-x--- 2 root root 4096 Jul 26 22:13 /opt/appdir2/appuser2
find: '/opt/appdir2/appuser2': Permission denied
1049055 4 -rw-r--r-- 1 root root 6 Jul 26 22:13 /opt/appdir2/file1
[deleteme]$ cat /opt/appdir2/appuser2/file2
cat: /opt/appdir2/appuser2/file2: Permission denied
[deleteme]$ exit