![samba 用户帐户。特定用户权限与来宾访问权限](https://linux22.com/image/1091670/samba%20%E7%94%A8%E6%88%B7%E5%B8%90%E6%88%B7%E3%80%82%E7%89%B9%E5%AE%9A%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90%E4%B8%8E%E6%9D%A5%E5%AE%BE%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90.png)
有人能确认一下吗?我想要两种方法来访问相同的 4 个 samba 文件夹
- 由我用户 john 拥有读/写权限,通过 user/pass 访问
- 仅具有读取权限的任何访客可以访问。
我可以通过编辑 smb.conf 文件来做到这一点
首先创建一个新用户:sudo useradd samba-guest。在您的 smb.conf 中搜索 guest 帐户。将其设置为 samba-guest(guest 帐户 = samba-guest)。
然后有第二个用户叫 john,然后在 smb.conf 文件中,将 john 的访问权限设置为读/写
可以吗?谢谢
ps 我需要使用 chown 或类似的东西吗?pps 信息这里有关系吗?
或者这是否可能
答案1
我给你提供几种方法:
但首先: 去除来宾帐户 = samba-guestsmb.conf 中的行。默认设置了一个来宾帐户,其名称为“nobody”。如果需要,您可以自行验证这一点:
testparm -sv /dev/null | grep "guest account"
** 实现此目的的一种方法是使用如下所示的共享定义:
[Test]
path = /mnt/Test
guest ok = yes
read only = yes
write list = jim
create mask = 0755
只要确保 Test 归 jim 所有:
sudo chown jim /mnt/Test
除了 jim 之外,其他人都只能读取它。如果您的客户端运行的是 Linux 或 macOS,则始终会向他们提供以匿名/访客身份或使用用户名进行连接的选项。最坏的情况是,您可以在任一操作系统中使用 Connect-to-Server 来强制输入凭据。Windows 是问题所在,因为它不会提示将其视为访客共享的内容。解决此问题的一种方法是“映射”Windows 中最接近 Connect-to-Server 的“驱动器”。
** 另一种方式是强制每个人都输入凭据提示( guest ok = no ),但仍然只允许 jim 进行写入:
[Test]
path = /mnt/Test
guest ok = no
read only = yes
write list = jim
create mask = 0755
这里,guest 用户将提交用户 samba-guest 及其 samba 密码。
** 并记得将这些用户添加到 samba 密码数据库中:
sudo smbpasswd -a jim
sudo smbpasswd -a samba-guest