Ubuntu Xenial下Samba备份脚本配置疑问:目录结构调整咨询
别着急直接迁移配置目录——Ubuntu Xenial通过apt安装的Samba,标准配置目录就是/etc/samba,包管理系统完全依赖这个路径来处理更新、服务启动等操作,强行把/etc/samba移去/var/lib/samba/etc再反向软链,大概率会搞乱后续的系统更新,甚至导致Samba服务启动失败。
给你两个更靠谱的方案:
方案一:修改备份脚本路径(首推)
这个备份脚本应该是针对源码编译或自定义部署的Samba写的,所以才会找/var/lib/samba/etc。你直接打开脚本,把所有指向/var/lib/samba/etc的地方替换成/etc/samba就行。
另外要注意:Ubuntu里Samba的配置和运行时数据是分开的——/etc/samba存静态配置(比如smb.conf、smbusers),/var/lib/samba存运行时数据(比如用户数据库passdb.tdb、共享缓存文件)。备份脚本大概率需要同时备份这两部分,所以别漏了确认脚本里对/var/lib/samba其他子目录的备份逻辑,那部分是不用改的。
方案二:创建正向软链适配脚本
如果实在不想改脚本,那就给脚本造一个它要的路径,用软链指向真实的配置目录:
# 先确保/var/lib/samba目录存在(包安装的话应该已经有了) sudo mkdir -p /var/lib/samba # 创建软链,让/var/lib/samba/etc指向/etc/samba sudo ln -s /etc/samba /var/lib/samba/etc
这样脚本访问/var/lib/samba/etc时,实际会跳转到/etc/samba,完全不用动原配置的位置,也不会破坏系统的标准目录结构。
补充:关于/var/lib/samba/etc的作用
在一些非标准部署的Samba环境里,这个目录可能用来存放运行时生成的动态配置、额外的模块配置,或者和/etc/samba分离的自定义配置。但在Ubuntu包安装的场景下,所有核心配置都集中在/etc/samba,包括:
- 主配置文件
smb.conf - 用户映射文件
smbusers - SSL证书目录(如果启用了加密连接,通常是
/etc/samba/certificates) - LDAP认证相关的
ldap.conf(如果用到LDAP的话)
最后提个醒:操作前手动备份一下/etc/samba和/var/lib/samba的内容,以防万一出问题能快速恢复。
内容的提问来源于stack exchange,提问作者Peter

