我正在运行一个装有 Ubuntu 22.04 的家庭服务器。设备 A、B 上有两个用户
我想要分享的目录是
/home/A/Pool/ShareA
/home/A/Pool/ShareB
现在,当我以用户 A 的身份从另一台机器(运行 Manjaro)访问共享时,一切正常。当我尝试以用户 B 的身份访问共享时,出现错误
sudo mount -t cifs //192.168.1.11/A-store /mnt/temp -o username=A,password=********
WORKS!
sudo mount -t cifs //192.168.1.11/B-store /mnt/temp -o username=B,password=********
mount error(13): Permission denied
我已将第二个用户添加到服务器(可以以 B 身份 ssh)并使用 smbpasswd。
我在网上搜索了好几个小时,但无济于事。这是我的 smb.conf
[global]
server role = standalone server
map to guest = Bad User
usershare allow guests = yes
hosts allow = 192.168.1.0/24
hosts deny = 0.0.0.0/0
[A-store]
comment = Backup
path = /home/A/Pool/ShareA
readonly = no
guest ok = no
browsable = yes
writeable = yes
valid users = A
public = no
[B-store]
comment = Backup for B
path = /home/A/Pool/ShareB
readonly = no
guest ok = yes
browsable = yes
writeable = yes
/home/A/Pool 是 HDD 的挂载点。为什么我无法以用户 B 身份访问?
答案1
B 不适valid users
用于B-store
。guest ok
但是,它适用于;您可以无需身份验证即可挂载它。但无论如何,对于目录它驻留在,/home/A/Pool/ShareB
应该具有适当的文件系统权限没有人(或任何guest account
设置为,但在您的配置中它似乎是默认的)。
适当的权限意味着用户可以横穿进入该目录,在 Linux 中,这是通过x
为用户设置路径中每个父目录的至少一个模式来实现的,在本例中为/home
,,,,并且至少为最终目录设置,以便用户能够读取目录的内容(列表)。/home/A
/home/A/Pool
r-x
/home/A/Pool/ShareB
在用户 A 的主目录中为用户 B 设置目录可能不是一个好主意。最好将路径扁平化,并移动共享资源外部家庭。创建一个组来控制每组共享资源也很有用,将该组设为valid users
(组以 @ 前缀添加),并将上面提到的共享目录权限分配给该组。然后,您可以将所有需要的用户添加到该组中,他们将拥有权限。有用的 samba 共享级别选项是force group
和force create mode
/ force directory mode
。man smb.conf
有关提到的所有参数的详细信息,请参阅。