共计 1794 个字符,预计需要花费 5 分钟才能阅读完成。
一、问题描述
前一阶段我把公司的 samba 服务器加入到域环境,但由于兼容性的问题导致相关设置无法生成(主要是权限方面),所以又将 samba 退出域环境。但随之而来的就是所有的文件夹权限全部出问题,本来没有权限的用户可以随意访问之前禁止其访问的文件夹。但也不是全部的都不生效,有部分文件夹权限是正确的。
我查看了 /etc/samba/smb.conf
,也没有发现问题出现在什么地方。将配置文件恢复到入域之前,也无法解决问题。
而且我也不打算重新安装 samba, 那样的话,工作量太大了,而且会影响线上服务。
二、解决方案
无奈之下,我查看了一下 /var/lib/samba
发现了许多以 tdb
结尾的文件。熟悉 samba 的人一看就知道,这些是数据库文件。是不是这些文件中的记录在入域之后增加了某些记录而导致的权限混乱呢?
为了验证我的想法,首先,我将 /var/lib/samba
这个文件夹进行了备份。然后在虚拟机里安装相同版本的 samba。然后将其中的 /var/lib/samba
根目录中的以 tdb
结尾的文件复制到出现问题的生产环境的服务器的相应目录中。重启 samba:
service smb restart
再次进行测试,一切 OK!问题顺利解决!
三、问题分析
(一)出现该问题我分析如下:
- 因为一开始我配置 samba 服务的时候并没有直接针对域环境进行配置,用户的认证是由该服务器自身来完成的。因此在线上使用了一段时间后,在
/var/lib/samba
中的相应数据库中缓存了相应的用户权限和其他一些针对服务器自认证的记录。这样导致了服务器加入域环境之后也出现了权限的混乱; - 在退出域环境后,相关的数据库中又缓存了在域环境的一些用户权限,所以导致该服务器,无法像加入域之前那样正常的完成自认证。
(二)结论
- 在配置 samba 之前一定要做好架构方面的规划。在开始配置之初就针对相应的环境或者架构进行配置;
- 如果确实需要进行认证方式变更,一定要使用新安装的 samba
/var/lib/samba
中的数据文件,替换 生成环境中/var/lib/samba
中相应的数据文件,以免缓存记录造成权限混乱。
更多 Samba 相关教程见以下内容:
CentOS 7.2 安装配置 Samba 服务器 http://www.linuxidc.com/Linux/2017-03/141390.htm
VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍 http://www.linuxidc.com/Linux/2013-06/85445.htm
Ubuntu 15.04 安装 Samba 服务 http://www.linuxidc.com/Linux/2016-03/129201.htm
samba 安装使用图解 http://www.linuxidc.com/Linux/2017-03/141254.htm
CentOS7.2 下源码搭建 Samba 文件服务器[原创] http://www.linuxidc.com/Linux/2017-06/144557.htm
CentOS 7.2 安装配置 Samba 服务器 http://www.linuxidc.com/Linux/2017-03/141390.htm
CentOS 部署 Samba 企业文件共享服务 http://www.linuxidc.com/Linux/2016-06/132609.htm
Samba 共享服务器的搭建优化 http://www.linuxidc.com/Linux/2017-03/141700.htm
如何在 Ubuntu 16.04 上安装和配置 Samba 服务器以进行文件共享 http://www.linuxidc.com/Linux/2017-11/148194.htm
CentOS 7 下 Samba 服务安装与配置详解 http://www.linuxidc.com/Linux/2017-11/148354.htm
Ubuntu 16.04 下 Samba 相关配置 http://www.linuxidc.com/Linux/2016-12/138498.htm
Red Hat 6.5 下 Samba 服务器搭建 http://www.linuxidc.com/Linux/2017-07/145747.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149661.htm