在我们的 Centos 7 服务器上,我添加了create mask = 770
以下内容smb.conf
,以便强制授予 Windows 用户存储在目录中的文件的权限。然后从命令行输入以下内容:
# systemctl restart smb.service
# systemctl restart nmb.service
...但文件没有以正确的权限保存。重启后它们被正确保存了。那么重启时发生了什么?(也许)我可以从命令行执行此操作?
这是 smb.conf 的部分:
[image-storage]
comment = archived image location
path = /our/samba/path/to/image_storage
valid users = @NameOfOurGroup
create mask = 770
browsable = yes
writable = yes
guest ok = no
force user = imagestore
答案1
仅重新启动服务似乎比重新引导要好。更好的方法是利用许多 Linux 服务(包括 Samba)附带的配置重新加载功能。此功能通常通过 SIGHUP 信号或控制程序来访问。
使用smb控制(手册页)以最短的停机时间和对已经使用您的共享的服务的影响最小的方式重新加载配置。因此,只需运行以下命令:
smbcontrol smbd reload-config
答案2
您的服务名称有误。请尝试:
# systemctl restart smb.service
# systemctl restart nmb.service
答案3
Samba 为每个连接的用户创建一个子进程。根据手册,父进程会监视配置文件,并在配置文件发生变化时自动重新加载。因此,您的更改几乎会立即生效,无需您执行任何操作,但更改不会传播到当前的子进程。
任何新安装共享的用户都会看到您的更改。
如果你想看到它们
- 从 Windows 机器上卸载所有 Samba 共享。卸载最后一个共享后,Samba 服务器上的子进程将终止。安装驱动器会使用新设置创建一个新的子进程
- 或者杀死你的 samba 子进程。
答案4
这个答案对我来说是迄今为止最好的: 在使用此答案之前,请确保您要重新启动 smb 服务,它将踢出已连接的用户。最好使用smbcontrol smbd 重新加载配置如果您只想重新加载新共享或更新配置。 – PrestonDocks 2022 年 1 月 8 日 0:52