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ルールを指定する2番目のFACLルールセット./appuser2
。
上記の手順では、で作成されたファイルとフォルダに適用される「デフォルト」FACLルールを設定しましたが、フォルダ./appuser2
自体の./appuser2
FACLルールセットはまだ定義されていません。これは、グループメンバーがextbk
自分のコンテンツにアクセスできない理由の1つです./appuser2
。
修正する必要があるもう1つの誤った構成の問題:フォルダにアクセスする必要があるすべてのユーザーに、ディレクトリに対する./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