ACL権限を使用して他のグループがディレクトリにアクセスできないようにしますか?

ACL権限を使用して他のグループがディレクトリにアクセスできないようにしますか?

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自体の./appuser2FACLルールセットはまだ定義されていません。これは、グループメンバーが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

おすすめ記事