Ubuntu Server下Samba多用户共享配置求助:仅限制写入但未限制浏览/读取,需实现用户专属文件夹隔离访问
Ubuntu Server下Samba多用户共享配置求助:仅限制写入但未限制浏览/读取,需实现用户专属文件夹隔离访问
嘿兄弟,看你这配置思路是对的,但大概率是漏了几个关键细节,我之前在Ubuntu Server上搭多用户Samba共享时也踩过几乎一模一样的坑,给你一步步捋清楚要补的操作:
一、先改Samba配置文件的核心错误
你现在的smb.conf里有个很容易忽略的格式错误:参数和值之间要用等号=,不是冒号:,你写的valid users: User1会被Samba当成无效配置,这可能是隔离失效的核心原因!
另外,要加几个参数强化用户隔离:
- 每个共享段里加上
browseable = no:这样其他用户浏览Samba服务器时,根本看不到不属于自己的共享文件夹(默认是yes,所以所有人能看到所有共享) - 加上
create mask = 0700和directory mask = 0700:确保用户在文件夹里新建的文件/目录,只有自己能访问 - 保留
valid users = 对应用户名,搭配read only = no(如果需要用户能读写的话)
改完后的单个共享段示例:
[share1] path = /media/files/User1 valid users = User1 browseable = no read only = no create mask = 0700 directory mask = 0700
把三个共享段都按这个格式修正。
二、补全系统文件权限
你只设置了文件夹的所有者chown,但还要把目录权限改成700(只有所有者能读、写、进入目录),不然系统层面其他用户还能浏览目录内容:
chmod 700 /media/files/User1 chmod 700 /media/files/User2 chmod 700 /media/files/User3
默认的目录权限可能是755,这会让其他用户有读和进入的权限,哪怕Samba配置了隔离,系统权限也会“兜底”让他们能访问。
三、确保创建了对应Samba用户
系统用户和Samba用户是分开的,你需要给每个系统用户创建对应的Samba账号,设置访问密码:
smbpasswd -a User1 smbpasswd -a User2 smbpasswd -a User3
输入的密码要记好,用户访问Samba时需要用这个密码验证。
四、验证配置+重启服务
先检查配置文件语法有没有错误,这一步能帮你提前发现问题:
testparm
如果输出里没有报错,再重启Samba服务:
systemctl restart smbd nmbd
顺便重启nmbd,避免共享列表的缓存残留问题。
最后测试
用User2的账号从另一台设备访问Samba服务器,试试能不能看到不属于自己的共享,或者能不能进入其他用户的文件夹。如果还是有问题,去看/var/log/samba/smbd.log日志,里面会有详细的权限拒绝记录,能精准定位哪里出问题。
备注:内容来源于stack exchange,提问作者Tobias
相关产品推荐
相关产品推荐

