デフォルトのaclは、共有ディレクトリに目的の権限を生成しません。

デフォルトのaclは、共有ディレクトリに目的の権限を生成しません。

2人のユーザーがディレクトリを共有しようとします。両方のユーザーいつも指定されたパスの下にある既存のファイルと、新しく作成されたファイルとサブディレクトリに対するrw権限があります。

同じ2つのグループに2人のユーザーを追加しました(ユーザーwwwをグループwwwとzip、ユーザーzip、またはその逆)。

これが私がしたことです:

root@foo:/home/zip# mkdir -m 0775 testdir
root@foo:/home/zip# chown zip:zip testdir/
root@foo:/home/zip# chmod g+s testdir/
root@foo:/home/zip# ls -la
[...]
drwxrwsr-x  1 zip  zip             0 Jun 12 10:08 testdir

root@foo:/home/zip# getfacl testdir/
# file: testdir/
# owner: zip
# group: zip
# flags: -s-
user::rwx
group::rwx
other::r-x

root@foo:/home/zip# setfacl -R -d -m \
u::rwX,g::rwX,u:zip:rwX,g:zip:rwX,u:www:rwX,g:www:rwX,o::r,mask:rw testdir/

root@foo:/home/zip# getfacl testdir/
# file: testdir/
# owner: zip
# group: zip
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:user:www:rwx    #effective:rw-
default:user:zip:rwx    #effective:rw-
default:group::rwx      #effective:rw-
default:group:www:rwx   #effective:rw-
default:group:zip:rwx   #effective:rw-
default:mask::rw-
default:other::r--

ただし、sftp(ユーザーzip)を介してファイルをアップロードすると、目的の結果が得られなくなります。 sftpプロセス名umaskはアップロード時に確認されました0002/proc/$pid/status

ケース1:権限600でファイルをアップロードする

root@foo:/home/zip/testdir# getfacl test.jpg
# file: test.jpg
# owner: zip
# group: zip
user::rw-
user:www:rwx        #effective:---
user:zip:rwx        #effective:---
group::rwx          #effective:---
group:www:rwx       #effective:---
group:zip:rwx       #effective:---
mask::---
other::---

マスクが---で有効な権限が空である理由は理解できません。少なくとも指定されたユーザー権限が有効でなければなりませんか?私は何が間違っていましたか?

シナリオ 2: ファイルのアップロード660

root@foo:/home/zip/testdir# getfacl test2.jpg
# file: test2.jpg
# owner: zip
# group: zip
user::rw-
user:www:rwx        #effective:rw-
user:zip:rwx        #effective:rw-
group::rwx          #effective:rw-
group:www:rwx       #effective:rw-
group:zip:rwx       #effective:rw-
mask::rw-
other::---

だからこれはうまくいくようです。

これはbtrfs (rw,relatime,compress=zlib:3,space_cache,subvolid=5,subvol=/) volume (kernel 5.4.0)

ベストアンサー1

おすすめ記事