设置umask,设置权限和设置ACL,但SAMBA没有使用这些?

我在Ubuntu Server 12.04上运行。 我有一个名为Music的文件夹,我希望默认文件夹权限为775,默认文件为664。

我将Music文件夹的默认权限设置为775。

我也将ACL配置为使用这些默认权限:

# file: Music # owner: kris # group: kris # flags: ss- user::rwx group::rwx other::rx default:user::rwx default:group::rwx default:other::rx 

我还将我的用户帐户kris的默认umask更改为.profile中的002。

在写入Samba共享时,不应该和新文件/文件夹一起使用这些权限吗? ACL应该与我可以收集的Samba一起使用。

目前,如果我使用我的mac写入该文件夹,文件夹将获得755和文件644.我的Mac上有另一个名为GoodSync的应用程序,它可以将我的mac上的本地目录同步到网络samba共享,但这些权限更糟糕的是。 使用该程序将文件写为700。

所以看起来Samba允许主机/程序确定文件夹/文件权限。

无论主机尝试在服务器上写什么,我需要做哪些更改来强制我想要的权限?

最后想出了这一个。

您需要修改/etc/samba/smb.conf文件。 对于我的音乐分享,我添加了以下选项:

 create mask = 664 force create mode = 664 security mask = 664 force security mode = 664 directory mask = 2775 force directory mode = 2775 directory security mask = 2775 force directory security mode = 2775 

我不确定哪一个实际修复了这个问题,但是现在通过Samba共享时正在编写正确的权限。 我认为这是“强制”命令被使用,因为Mac可能试图强制它自己的共享权限(现在Ubuntu强制它自己的权限,而不是接受我的Mac)。 希望这有助于某人!

SAMBA / UMASK

运行Ubuntu 14.04,samba版本4.1.6-Ubuntu。 我之前运行的是Fedora 16 / samba3,一切都很好。 使用Ubuntu / samba4,我无法让Samba在目录上设置组写位。

smb.conf参数(用于测试)包括:

 create mask = 700 # The file AND mask force create mode = 775 # The file OR mask directory mask = 700 # Directory AND mask force directory mode = 777 # Directory OR mask 

从Windows 7客户端,我可以创建mode = 775的文件,但创建的目录始终具有模式755。

问题是我个人登录时使用默认“UMASK 022”来访问共享目录。 编辑/etc/login.defs并将“UMASK 022”更改为“ UMASK 002 ”。 重新启动,现在从Windows 7客户端创建的目录具有mode = 775。 我不相信这与我以前的设置(Fedora / Samba3)的行为相同。

有趣的是,smb.conf参数“inherit permissions = yes”有点奏效。 此参数取代先前的参数。 在父目录具有mode = 2777的情况下,创建的子目录具有mode = 766(未设置执行位),并且文件具有mode = 755(未设置组/ guest写入位)。

应记录Samba / UMASK交互和相互依赖性。

以下条目适合我:

 force security mode = 664 force directory security mode = 775 

一个简单的说明。 寻找“服从pam限制”参数。 默认情况下它是OFF或NO或FALSE,但应该明确打开,并且umask生效! 我失去了大约一个星期,试图找出为什么我的文件创建744权限无力创建模式666或777 …问题是在这个参数打开,我不记得我为什么这样做。 关闭它解决了rw-vs-ro问题