我的 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
脚本时,这非常烦人。0755
777
有没有办法让 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]