覆盖时保留 Samba 共享文件的权限

覆盖时保留 Samba 共享文件的权限

我的 Ubuntu VM 中有一个共享目录。这是我的 smb.conf:

...
[share]
comment = Ubuntu File Server Share
path = /home/foo/share
browsable = yes
guest ok = yes
read only = no
create mask = 0644

几乎所有功能都运行正常,即创建新文件时,它会被屏蔽0644。但每当我打开(在 Windows 中)并保存现有文件时,该文件的权限也会设置为。在编辑之前已被屏蔽或的0644脚本时,这非常烦人。0755777

有没有办法让 Samba 保持现存的文件被覆盖时权限掩码?
[编辑] ... 创建时新的具有权限的文件0644

答案1

添加:

map archive = no

到 [Share]。默认(是)将在您保存的几乎所有内容上设置执行位。设置为否时,您可以将创建掩码设置为 755 或其他值。

如果您编辑大量系统文件(如 /etc/mail/aliases)时,我发现这一点至关重要,因为这些文件将无法使用执行位设置进行编译。

;o) 科尔

答案2

要阻止 Samba 在通过 Samba 保存文件时重置文件的权限,请在 smb.conf 中设置以下参数:

nt acl support = no

这会阻止 Samba 尝试将 UNIX 权限映射到 Windows 访问控制列表。

答案3

我使用 samba 在 Windows 和 Kubuntu 之间共享,但在我的系统上 Linux 是主机,而不是 VM。对于我的设置,我将两个系统中的用户名设置为相同,然后valid users在 smb.conf 中设置为我的用户名。我没有设置create mask,权限工作正常。

[shared]
comment = My Shared Partition
path = /mnt/shared/
browseable = yes
available = yes
read only = no
guest ok = no
valid users = my_user_name

答案4

我认为如果您将您的 samba 访客帐户设置为通常以 775 权限写入文件的帐户,那么您就可以开始了。

[global]
guest account = [unix user]

或者您可以创建一个与 Ubuntu 上的用户相同的具有 755 权限的 samba 用户(每个 samba 用户需要匹配一个 UNIX 用户),然后以该用户的身份登录访问 samba 共享。

user@ubuntu$ ~ sudo smbpasswd -a [username]

相关内容