"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::---