두 명의 사용자가 디렉토리를 공유하려고 합니다. 두 사용자 모두언제나지정된 경로 아래의 모든 기존 파일과 새로 생성된 파일 및 하위 디렉터리에 대해 rw 권한을 갖습니다.
동일한 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)
.