ACL은 항상 파일(Samba)에 대한 그룹 실행 권한을 설정합니다.

ACL은 항상 파일(Samba)에 대한 그룹 실행 권한을 설정합니다.

"sambashare" 그룹에 일부 사용자가 있고 "sambashareAdmin" 그룹에 일부 사용자가 있습니다. "sambashareAdmin" 그룹의 사용자만 콘텐츠를 변경/생성할 수 있습니다.

모든 파일은 haegarthehorrible:sambashare에 속해야 합니다. 서버에서 만들거나 서버로 이동/복사할지 여부입니다.

문제는 Windows 워크스테이션 사용자(천국)가 이렇게 하면 모든 파일이 660/-rw-rw--- 대신 그룹(670/-rw-rwx---)에서 실행 권한을 얻게 된다는 것입니다.

나는 "팸 제한 사항을 준수"하기 위해 삼바에서 예 및 아니오를 사용해 보았지만 아무런 차이가 없었습니다. 또한 "마스크 만들기"와 "디렉터리 마스크" 또는 "강제 만들기 모드와 "디렉터리 강제 모드" 또는 둘 다를 시도했습니다.

나는 chmod g+s와 g+s,u+s를 시도했습니다.

나는 다음과 같은 복잡한 것을 시도했습니다.

~$ sudo chmod -R a-x,u=rX,g=rX,u+w,g+w /mnt/pool/Share/Backup
~$ sudo chmod -R a-x,u=rwX,g=rwX /mnt/pool/Share/Backup

흥미롭게도 "rw"(chmod 또는 setfacl) 대신 "rwX"를 사용하면 소유자 권한으로 실행됩니다. X가 디렉토리에만 설정한다고 생각했나요?

이제 매우 복잡해 보이지만 여전히 작동하지 않습니다. 이는 이미 파일/디렉터리가 포함된 디렉터리라는 점을 기억하세요.

~$ sudo nano /etc/samba/smb.conf
[global]
   server string = Harvester
   server role = standalone server
   server min protocol = SMB2
   workgroup = WORKGROUP
   interfaces = lo enp0s31f6
   bind interfaces only = yes
   logging = file
   log file = /var/log/samba/log.%m
   max log size = 1000
   load printers = no
   show add printer wizard = no
   disable netbios = yes
   dns proxy = no
   deadtime = 30
   smb ports = 445
   smb encrypt = off
   security = user
   obey pam restrictions = yes
   panic action = /usr/share/samba/panic-action %d
   use sendfile = yes
   directory mask = 2750
   create mask = 0640
   access based share enum = yes
   map to guest = bad user
   guest account = shareguest

[Backup]
   path = /mnt/pool/Share/Backup
   guest ok = no
   browseable = no
   create mask = 0660
   directory mask = 2770
   force group = sambashare
   force user = haegarthehorrible
   write list = @sambashareAdmin
   valid users = haegarthehorrible paradise
   inherit acls = Yes

권한 설정:

~$ sudo chown -R haegarthehorrible:sambashare /mnt/pool/Share/Backup
~$ sudo setfacl -R -b -k -n /mnt/pool/Share/Backup                         # Remove ACL
~$ sudo chmod -R g+s,u+s /mnt/pool/Share/Backup
~$ sudo chmod 0770 /mnt/pool/Share/Backup
~$ sudo find /mnt/pool/Share/Backup -type f -exec chmod 660 {} \;
~$ sudo find /mnt/pool/Share/Backup -type d -exec chmod 2770 {} \;
~$ sudo setfacl -R -d -m u::rw,g::rw,u:haegarthehorrible:rw,g:sambashareAdmin:rw /mnt/pool/Share/Backup  # ACL for new items
~$ sudo setfacl -R -m u:haegarthehorrible:rw,g:sambashareAdmin:rw /mnt/pool/Share/Backup                 # ACL for old/existing items

sambashare 관리자 구성원:

~$ members sambashareAdmin
haegarthehorrible paradise

삼바 공유 회원:

~$ members sambashare
shareguest watcher

공유 루트 폴더 권한:

~$ ls -ld /mnt/pool/Share
drwxr-xr-x 7 root root 4096 Aug  7  2023 /mnt/pool/Share

~$ stat /mnt/pool/Share
Access: (0755/drwxr-xr-x)  Uid: (0/root)  Gid: (0/root)

~$ getfacl /mnt/pool/Share
# file: mnt/pool/Share
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

공유 권한:

~$ ls -ld /mnt/pool/Share/Backup
drwsrws---+ 5 haegarthehorrible sambashare 4096 Apr 25  2022 /mnt/pool/Share/Backup

~$ stat /mnt/pool/Share/Backup
Access: (6770/drwsrws---)  Uid: (1000/haegarthehorrible)  Gid: (996/sambashare)

~$ getfacl /mnt/pool/Share/Backup
# file: mnt/pool/Share/Backup
# owner: haegarthehorrible
# group: sambashare
# flags: ss-
user::rwx
group::rwx
other::---
default:user::rw-
default:user:haegarthehorrible:rw-
default:group::rw-
default:group:sambashareAdmin:rw-
default:mask::rw-
default:other::---

파일 권한:

~$ ls -l /mnt/pool/Share/Backup/Test.txt
-rw-rwx---+ 1 haegarthehorrible sambashare 0 Feb 11 07:18 /mnt/pool/Share/Backup/Test.txt

~$ stat /mnt/pool/Share/Backup/Test.txt
Access: (0670/-rw-rwx---)  Uid: (1000/haegarthehorrible)  Gid: (996/sambashare)

~$ getfacl /mnt/pool/Share/Backup/Test.txt
# file: mnt/pool/Share/Backup/Test.txt
# owner: haegarthehorrible
# group: sambashare
user::rw-
user:haegarthehorrible:rw-
group::rw-
group:sambashare:rw-
group:sambashareAdmin:rw-
mask::rwx
other::---

관련 정보