简单的 Samba 共享 - 无需密码

简单的 Samba 共享 - 无需密码

我需要的:

文件服务器的简单 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,因为 nog​​roup 不起作用。最后,我必须在全局独立服务器部分下包含到 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 安装/重新安装问题:

  1. apt-get update & apt-get-upgrade <- 确保没有未完成的升级
  2. apt-get 安装 samba
  3. 转到此页面并按照说明进行操作: https://wiki.samba.org/index.php/Managing_the_Samba_AD_DC_Service_Using_Systemd

  4. apt-get -f 安装 samba

  5. 现在执行上述步骤。:-)

相关内容