我刚刚安装了一个新的 FreeNAS .7.2 盒,其中有两个 1TB 驱动器镜像。配置似乎很可靠,我甚至可以从网络上的任何计算机浏览我创建的 SMB 共享。但是,当我尝试添加文件夹或删除要上传的文件时,我收到消息说我没有适当的权限。
我不想对用户进行身份验证,我希望它是开放的。我在 SMB 服务的配置中设置了匿名身份验证,并且主机允许和主机拒绝字段为空。我甚至将我尝试上传的计算机的 IP 地址添加到该 我已将其更改为本地用户身份验证,并希望使用全局用户。HOSTS ALLOWED
字段,但我仍然收到权限错误(我甚至确认了更改)。
我是不是漏掉了什么?我可以正常浏览共享内容,但无法上传或创建文件夹。
重大编辑:
我不确定是否应该为此写一篇新帖子,但还是要说:
我决定放弃匿名访问。我尝试过的所有方法和你们建议的方法都没有用。另外,我不喜欢手动编辑,smb.conf
因为如果我这样做,然后在 webgui 中更改权限或用户,它会重置我所有手动更改的设置。
我进入并将身份验证设置为本地用户,并为所有连接的客户端创建了一个用户。我把它们放在wheel
对挂载点具有完全读取、写入和执行权限的组中(见截图)https://i.stack.imgur.com/GcLKS.jpg)。这适用于挂载中的现有共享。我可以查看、添加文件夹、向所有现有共享添加文件等。现在,如果我添加新共享,我可以浏览它,但不能添加文件或文件夹。共享完全相同,应该具有相同的权限。这对我来说没有意义。这是配置,共享[Backup]
有效,我可以读取、编辑、执行。[Storage]
我只能读取共享。
[global]
#max protocol = smb2
encrypt passwords = yes
netbios name = freenas
workgroup = WORKGROUP
server string = FreeNAS Server
security = user
dns proxy = no
# Settings to enhance performance:
use sendfile = yes
strict locking = no
read raw = yes
write raw = yes
oplocks = yes
max xmit = 65535
deadtime = 15
getwd cache = yes
socket options = TCP_NODELAY SO_SNDBUF=64240 SO_RCVBUF=64240
# End of performance section
unix charset = UTF-8
store dos attributes = yes
local master = yes
time server = yes
guest account = ftp
display charset = LOCALE
max log size = 10
syslog only = yes
syslog = 1
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
log level = 1
dos charset = CP437
smb passwd file = /var/etc/private/smbpasswd
private dir = /var/etc/private
passdb backend = tdbsam
[Backups]
comment = Any Backup Files
path = /mnt/mnt1/Backup/
writeable = yes
printable = no
veto files = /.snap/
hide dot files = yes
guest ok = no
inherit permissions = yes
[Storage]
comment = Storage for Files
path = /mnt/mnt1/Storage/
writeable = yes
printable = no
veto files = /.snap/
hide dot files = yes
guest ok = no
inherit permissions = yes
如果我创建任何新共享,那么我只有读取权限。就像我说的,这对我来说没有意义。任何有关此主题的说明都将不胜感激。
顺便说一句,谢谢你的帮助。抱歉这么快就转移话题了。
答案1
当 Windows 计算机连接到 Windows 服务器时,它首先尝试使用空密码输入当前登录的用户名。如果服务器后端无法识别用户名,它将回退并授予您匿名访问权限。
例如,如果 bob 尝试连接到网络共享,则 Windows 将首先尝试使用用户名 bob 进行连接,然后再显示登录框
FreeNAS 基于 SAMBA,但其行为略有不同。如果用户不为系统所知,则默认行为是拒绝访问。
因此需要做的是模仿这种行为,任何使用未知用户名的连接尝试都可以获得匿名访问。
因此,您需要修改 SAMBA 配置,将未知用户(bob)映射到 nobody 帐户,然后创建一个名为“nobody”且没有密码的帐户
这样,当 bob 尝试连接时,服务器无法识别用户名 bob,因此它会回到匿名状态
要将未知用户映射到来宾帐户,请将此配置添加到全局配置中
[global]
#...
guest account = nobody
map to guest = bad user
然后创建一个名为“nobody”的用户,没有密码,您就应该能够匿名访问共享。
编辑
也改变
[global]
security = user
并通过从 Shell 运行此命令(通过 ssh 或 telnet 等)来创建 nobody 用户
User$ smbpasswd -an nobody
答案2
我没有看到原始配置,但您是否尝试过security = share
在共享配置中使用和运行guest only = yes
?如果您想拥有任何具有非来宾访问权限的共享,这可能会导致一些问题。
能够看到系统日志的相关片段将会很有帮助,特别是当您增加到log level
3 时。
在您用来连接此服务器的 Windows 计算机上,您的用户名是什么?该用户名是否存在于 FreeNAS 盒中?