我需要的:
文件服务器的简单 Samba 配置无需密码,每个人都可以完全读写。无需安全保护。
历史:
我正在为我的家庭搭建一个服务器来托管文件。该服务器的目标是托管 Windows 机器的文件。到目前为止,我所能做的最好的就是这种配置。通过这种方式,我可以从网络上看到共享和服务器,但它说 Windows 无法访问它们。我在服务器上使用 Linux mate,所有最新更新。
我的配置:
[global]
workgroup = BIOHAZARD
netbios name = MATUSALEM
guest account = nobody
log file = /usr/local/samba/var/log.%m
max log size = 50
security = user
map to guest = bad user
encrypt passwords = yes
# Share Definitions
[homes]
comment = Home Directories
browseable = no
writable = yes
[Teste]
path = /home/peter/share
writable = yes
printable = no
comment = teste
only guest = yes
public = yes
guest ok = yes
guest only = yes
guest account = nobody
browsable = yes
[REDE]
comment = TESTE 2
public = yes
delete readonly = yes
path = /HOME/REDE
writeable = yes
guest ok = yes
guest only = yes
guest account = nobody
browsable = yes
######
有任何想法吗?
答案1
是的,Samba 可能很麻烦。我在家里和工作中都使用它。
您应该做的第一件事是从头开始,以便更轻松地进行故障排除。您可以通过在终端中运行以下命令来执行此操作。
dpkg-reconfigure samba-common
然后转到您要共享的 Samba 服务器上的文件夹,并确保用户 nobody 可以读取和写入共享。这是因为用户 nobody 是 Windows 客户端使用的用户名。我通常只是在 / 目录中创建一个文件夹以保持简单,但“正确”的方法是创建 /srv 的子文件夹。如果您尚未修改权限,请使用以下命令。
sudo chown -R nobody.nogroup the_folder
sudo chmod -R 777 the_folder
您还可以以 root 身份运行以下命令来测试是否没有人可以写入该目录。
sudo -u nobody touch test_file
编辑您的 /etc/samba/smb.conf 并在 [printers] 共享定义下方添加行。
[share_name] ;the share name can be what ever you want
browseable = yes
path = the_complete_path_to_the_shared_folder
guest ok = yes
read only = no
create mask = 777
完成后,保存并运行以下命令。
testparm
如果您输入任何错误,它将发出警告。接下来,您只需重新启动 samba 服务。
sudo systemctl restart smbd
sudo systemctl restart nmbd
答案2
我知道这是一个老帖子,但它帮助我解决了无需登录即可创建和共享文件夹的问题。还有很多其他帖子,但它们具有误导性。我在下面给出了一个半初学者指南,因为与其他帖子有很多细微的差异,我认为它可能对其他几乎放弃并拔掉一半头发的人有所帮助 :-)
对我来说,在默认的 AWS Linux 映像 (Amazon Linux AMI 2017.03.0 (HVM)) 上,我必须在根目录 / 中创建文件夹,因为如果在默认 ec2-user 下创建,则无法分配权限。分配权限时,我必须使用 nobody.nobody,因为 nogroup 不起作用。最后,我必须在全局独立服务器部分下包含到 guest = Bad User 的映射,默认情况下,它显示 security = user
因此完整的步骤将是部署新的服务器:
如果需要,安装 samba
创建文件夹并分配权限
sudo su
cd /
mkdir the_folder
chown -R nobody.nobody the_folder
chmod -R 777 the_folder
编辑 samba 文件
nano /etc/samba/smb.conf
找到行 # ---- 独立服务器选项 ---- 附加“映射到访客”
security = user
passdb backend = tdbsam
map to guest = Bad User
在 #==== 共享定义 ==== 部分下添加您的共享
[SHARENAME]
path = the_folder
read only = no
create mask = 777
guest ok = yes
保存文件并重启 samaba
/etc/init.d/smb restart
答案3
除了@Andrew的回答外,最近从ubuntu 17.04升级到17.10在systemctl上产生了问题samba-dc-ad.服务。当您尝试在 samba-dc-ad.service (intensional) 上重新安装 samba 时,据说这不是掩码上的错误。此外的步骤在@Andrew 的回答之前,如果您因为升级而遇到 Samba 安装/重新安装问题:
- apt-get update & apt-get-upgrade <- 确保没有未完成的升级
- apt-get 安装 samba
转到此页面并按照说明进行操作: https://wiki.samba.org/index.php/Managing_the_Samba_AD_DC_Service_Using_Systemd
apt-get -f 安装 samba
- 现在执行上述步骤。:-)