我正在运行 Bodhi linux 的旧机器上设置一个名为“NAS”的文件服务器/备份服务器,并且我必须在服务器上共享一些文件夹,以便可以通过网络访问它们。
在网络上,除了“NAS”之外,我还有一个运行 Ubuntu 14.04 的工作站、另一个运行 Windows 7 的工作站和一个 Android TVBox。
两个工作站应该都可以访问“NAS”上的共享文件夹。理想情况下,Android TV Box 也应该可以访问共享文件夹,但这并不重要。我想,如果我设法从 ubuntu WORKSTATION 访问 NAS 上的共享文件夹,我也可以从 TV BOX 访问它,因为它可以轻松连接到 Ubuntu 工作站上的共享文件夹。
Bodhi 是一款基于 Ubuntu Xenial 的轻量级发行版,但它非常精简。它如此精简以至于连基本的网络软件包(如 Samba)都缺失。不过我安装了必要的软件包,还安装了 Nautilus,希望能够通过文件管理器共享网络文件夹(与我在 Ubuntu 14.04 中所做的一样),但我无法让共享文件夹正常工作。
如果我从 Ubuntu 14.04 工作站搜索网络,NAS 会显示在资源中,但是当我尝试连接时,我会收到拒绝连接的错误消息。
我遵循了大约 10 个不同的教程(因此这个问题可能会被标记为重复),并花了两天时间研究如何在 NAS 上配置 Samba 服务器,但对我来说似乎没有任何效果,而且我无法访问共享文件夹。
我想我需要一些帮助来正确设置它。
以下是从 Ubuntu Workstation 运行 smbclient 的结果:
gc@PC:~$ /usr/bin/smbclient -L 192.168.0.102
WARNING: The "syslog" option is deprecated
Enter gc's password:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
NAS_share Disk
IPC$ IPC IPC Service (NAS server (Samba, Ubuntu))
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu]
Server Comment
--------- -------
NAS NAS server (Samba, Ubuntu)
Workgroup Master
--------- -------
WORKGROUP PC
编辑
如果我使用 Ubuntu 文件管理器 (smb://192.168.0.102) 上的“连接到服务器”界面,我可以看到 NAS 上的共享文件夹 (NAS_share),但由于无法识别我在 samba 中设置的密码,因此我无法访问该文件夹...我确定用户名和密码,因为我在所有机器上都使用相同的用户名和密码,并且我使用它登录所有系统。
编辑
测试参数-s
cg@NAS:~$ testparm -s
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[NAS_share]"
Loaded services file OK.
Server role: ROLE_STANDALONE
# Global parameters
[global]
server string = %h server (Samba, Ubuntu)
server role = standalone server
security = USER
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew
\s*\spassword:
* %n\n *password\supdated\ssuccessfully* .
username map = /etc/samba/smbusers
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[NAS_share]
comment = NAS_share
path = /home/cgiammiro/NAS_share
valid users = @users
force group = users
group = users
read only = No
create mask = 0660
directory mask = 0771
directory mode = 0771
网络用户共享信息--long
[NAS_share]
path=/home/cg/NAS_share
comment=
usershare_acl=Everyone:F,
guest_ok=y
答案1
遗憾的是,您没有发布所有 testparm 输出 - 特别是 [global] 部分,该部分会告诉我们 samba 服务器本身是如何配置的。根据您提供的信息,以下是我的观察结果:
[1] 您使用两种不同的方法为同一个文件夹创建了两个不同的共享,它们具有相同的名称,并且配置不同。一个是标准 Samba 共享,仅允许用户组成员访问该共享。另一个是 Samba 用户共享,允许所有人访问。
选择其中一个,但不能同时选择两者,因为这只是猜测 samba 会遵循哪一个。我建议删除用户共享,因此返回 Nautilus 并删除 /home/cg/NAS_share 的共享。
[2] smb.conf 中的共享需要凭据才能访问,如果你在所有机器上使用相同的用户名(我猜是 cg ),则需要将该用户名添加到 samba 密码数据库中:
sudo smbpasswd -a cg
[3] 因为这是家庭网络,所以你的共享定义太复杂了。看起来它能工作,但我应该这样做:
[NAS_share]
comment = NAS_share
path = /home/cg/NAS_share
valid users = cg
read only = No
编辑:如果您想要不需要登录凭据的共享,我会使共享看起来像这样:
[NAS_share]
comment = NAS_share
path = /home/cg/NAS_share
guest ok = Yes
force user = cg
read only = No
由于 NAS_share 很可能归用户 cg 所有,因此您不应该有任何 Linux 权限问题,因此您不必对 NAS_share 文件夹本身的 Linux 权限进行任何更改。
编辑:您添加的 [global] 部分看起来像 Ubuntu 执行此类操作的标准方式,但以下行除外:
用户名映射 = /etc/samba/smbusers
如果文件为空,则不必担心。如果文件中包含内容,则可能是问题,因为它指向不存在的用户或没有 Samba 密码的用户。