samba 共享目录下属层级的软链接目录 权限问题

1、问题详情

环境:centos7

Linux服务端使用samba共享的目录下有其他目录的软链接,即便软链接指向的目录有权限读写,但客户端挂载后还是无法正常写入。

2、准备环境

2.1  安装服务

服务端安装 samba ,修改配置,两个共享路径:/root/dir_true 和 /root/dir_link,都授予 wayne 账号写权限。

然后启动服务。防火墙可关闭或者配置445端口访问权限。

systemctl start smb nmb 
systemctl enable smb nmb 
[root@test ~]# cat /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

...... # 中间默认配置省略

[true]
        comment = dir_true
        path = /root/dir_true
        write list = wayne

[link]
        comment = dir_link
        path = /root/dir_link
        write list = wayne

2.2  创建目录和授予权限

在 /root 目录下创建两个目录:/root/dir_true 、 /root/dir_test ,一个软链接 /root/dir_link 指向 /root/dir_true,在 /root/dir_true 目录下再创建一个软链接 /root/dir_link_test 指向 /root/dir_test 

同时授权 wayne 用户对 /root/dir_true 和 /root/dir_link 的读写执行权限。

验证 wayne 账号有权限。

2.3  创建samba用户账号

smbpasswd -a wayne

pdbedit -L  # 查看现有samba账号

账号创建完成之后可再重启下 smb 和 nmb 服务。

3、客户端挂载

在客户端分别根据服务端所配置的两个共享目录名称 true 和 link (对应 /root/dir_true 和 /root/dir_link)挂载至不同的目录。

对于配置中所指定的目录,即便该目录是软链接至其他目录,只要服务端有写入权限,则客户端挂载后也有写入权限。

尝试进入挂载目录下 /true/dir_link_test 目录创建文件,则提示没有权限。在上面验证过,在服务端,用户 wayne 对于 /root/dir_true/dir_link_test (即 /root/dir_test )有写入权限。

4、解决方案

根据查询资料,该问题是源于新版本的 samba 修复了相关的漏洞,允许用户通过软链接访问至系统,所以默认没有允许访问软链接,可在 smb.conf 配置中新增几个选项。

follow symlinks = yes
unix extensions = no
wide links = yes

Accessing symbolic links through Samba results in access denied error. - Red Hat Customer Portal

客户端重新挂载,测试可以正常写入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值