「sambashare」グループには一部のユーザーがあり、「sambashareAdmin」グループには一部のユーザーがあります。 "sambashareAdmin"グループのユーザーだけがコンテンツを変更/作成できます。
すべてのファイルはhaegarthehorrible:sambashareの一部である必要があります。サーバーで作成するか、サーバーに移動/コピーするかどうか。
問題は、Windowsワークステーションユーザー(天国)がこれを行うと、すべてのファイルが660/-rw-rw---の代わりにグループ(670/-rw-rwx---)で実行権限を取得することです。
私は「パムの制限に従う」ためにSambaでYesとNoを試しましたが、違いはありませんでした。また、「マスクの作成」と「ディレクトリマスク」、「強制作成モードと「ディレクトリ強制モード」、またはその両方を試しました。
私は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
Samba共有メンバー:
~$ 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::---