我在 Ubuntu Server 12.04 上运行。我有一个名为 Music 的文件夹,我希望默认文件夹权限为 775,默认文件权限为 664。
我将 Music 文件夹的默认权限设置为 775。
我将 ACL 配置为也使用这些默认权限:
# file: Music
# owner: kris
# group: kris
# flags: ss-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Run Code Online (Sandbox Code Playgroud)
我还将我的用户帐户 kris 的默认 umask 更改为 .profile 中的 002。
写入 Samba 共享时,新文件/文件夹现在不应该使用这些权限吗?据我所知,ACL 应该与 Samba 一起使用。
目前,如果我使用我的 mac 写入该文件夹,文件夹将获得 755 和文件 644。我的 mac 上有另一个名为 GoodSync 的应用程序,它能够将我的 mac 上的本地目录同步到网络 samba 共享,但这些权限甚至更糟。使用该程序将文件写入 700。
所以看起来 Samba 允许主机/程序确定文件夹/文件权限。
无论主机尝试在服务器上写入什么,我都需要进行哪些更改以强制获得我想要的权限?
小智 9
运行 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
Run Code Online (Sandbox Code Playgroud)
从 Windows 7 客户端,我可以创建模式=775 的文件,但创建的目录总是模式 755。
问题在于我用于访问共享目录的个人登录名中的默认“UMASK 022”。编辑/etc/login.defs并将“UMASK 022”更改为“ UMASK 002 ”。重新启动,现在从 Windows 7 客户端创建的目录具有 mode=775。我不相信这与我之前的设置 (Fedora/Samba3) 的行为相同。
有趣的是,smb.conf 参数“继承权限=是”有点工作。该参数取代了之前的参数。父目录的 mode=2777,创建的子目录的 mode=766(未设置执行位),文件的 mode=755(未设置组/来宾写入位)。
Samba/UMASK 交互和相互依赖应该被记录下来。
终于想通了这一点。
您需要修改/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
Run Code Online (Sandbox Code Playgroud)
我不确定其中哪一个真正解决了问题,但现在通过 Samba 共享时正在写入正确的权限。我认为这是正在使用的“强制”命令,因为 Mac 可能试图在共享上强制它自己的权限(现在 Ubuntu 正在强制它自己的权限而不是接受我的 Mac 的权限)。希望这可以帮助某人!
| 归档时间: |
|
| 查看次数: |
30489 次 |
| 最近记录: |