如何在Windows上安装Samba以进行文件共享

Samba是一个免费/开放源代码和常用的软件,用于在同一网络上的Unix系统(包括Linux和Windows主机)之间共享文件和打印服务。

在本指南中,我们将介绍如何在Ubuntu系统和Windows机器之间设置Samba4进行基本文件共享。 我们将介绍两种可能的情况: 匿名(不安全)以及安全文件共享

请注意,从4.0版开始,Samba可以用作Active Directory(AD)域控制器(DC) 我们组织了一个特别的系列来设置Samba4 Active Directory域控制器,其中包括Ubuntu,CentOS和Windows下的关键主题。

  1. 设置Samba4 Active Directory域控制器

在Ubuntu中安装和配置Samba

Samba服务器可以从默认的Ubuntu存储库中使用apt包管理器工具进行安装 ,如图所示。

$ sudo apt install samba samba-common python-dnspython

一旦samba服务器安装,现在它的时间配置samba服务器为: 不安全的匿名安全的文件共享

为此,我们需要编辑主Samba配置文件/etc/samba/smb.conf (其中说明各种配置指令)。

首先备份原始samba配置文件,如下所示。

$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

之后,我们将继续为samba配置匿名安全的文件共享服务,如下所述。

重要提示 :在进一步移动之前,请确保Windows机器与Ubuntu服务器上配置的工作组相同。

检查Windows Machine WorkGroup设置

登录您的Windows机器,右键单击“ 本PC ”或“ 我的电脑 属性 高级系统设置 计算机名称以验证工作组。

检查Windows WorkGroup

检查Windows WorkGroup

或者,打开命令提示符并通过运行下面的命令查看它,并查找“ 工作站域 ”。

>net config workstation
验证Windows WorkGroup

验证Windows WorkGroup

一旦你知道你的Windows工作组的时间来推进并配置samba服务器进行文件共享。

匿名Samba文件共享

首先通过创建一个共享的samba目录来存储文件。

$ sudo mkdir -p /srv/samba/anonymous_shares

然后在目录上设置适当的权限。

$ sudo chmod -R 0775 /srv/samba/anonymous_shares
$ sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

现在打开配置文件。

$ sudo vi /etc/samba/smb.conf
OR
$ sudo nano /etc/samba/smb.conf

接下来编辑或修改指令设置,如下所述。

global]
workgroup = WORKGROUP
netbios name = ubuntu
security = user
[Anonymous]
comment = Anonymous File Server Share
path = /srv/samba/anonymous_shares
browsable =yes
writable = yes
guest ok = yes
read only = no
force user = nobody

现在通过运行下面的命令验证当前samba设置。

$ testparm
Samba当前配置设置
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 "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
netbios name = UBUNTU
server string = %h server (Samba, Ubuntu)
server role = standalone server
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* .
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
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = No
[Anonymous]
comment = Anonymous File Server Share
path = /srv/samba/anonymous_shares
force user = nobody
read only = No
guest ok = Yes

然后重新启动Samba服务以实现上述更改。

$ sudo systemctl restart smbd   [Systemd]
$ sudo service smbd restart     [Sys V]

测试匿名Samba文件共享

转到Windows机器,并从Windows资源管理器窗口打开“ 网络 ”。 点击Ubuntu主机( youcl为我们的案例),或者尝试使用其IP地址访问samba服务器。

\\192.168.43.168

注意 :使用ifconfig命令获取Ubuntu服务器的IP地址。

连接到Samba Share

连接到Samba Share

然后打开匿名目录,并尝试在其中添加文件以与其他用户共享。

将文件添加到Samba Share

将文件添加到Samba Share

安全Samba文件共享

要对samba共享进行密码保护,您需要创建一个组“smbgrp”并为每个用户设置一个密码。 在这个例子中,我使用aaronkilik作为“ youcl ”的用户和密码。

$ sudo addgroup smbgrp
$ sudo usermod aaronkilik -aG smbgrp
$ sudo smbpasswd -a aaronkilik

注意 :samba安全模式: security = user要求客户端输入用户名和密码以连接到共享。

Samba用户帐户与系统帐户分开,但是您也可以选择安装libpam-winbind软件包,该软件包用于将系统用户和密码与samba用户数据库进行同步。

$ sudo apt install libpam-winbind

然后创建保存共享文件的安全目录。

$ sudo mkdir -p /srv/samba/secure_shares

接下来,在目录上设置适当的权限。

$ sudo chmod -R 0770 /srv/samba/secure_shares
$ sudo chown -R root:smbgrp /srv/samba/secure_shares

现在打开配置文件。

$ sudo vi /etc/samba/smb.conf
OR
$ sudo nano /etc/samba/smb.conf

接下来编辑或修改指令设置,如下所述。

[Secure]
comment = Secure File Server Share
path =  /srv/samba/secure_shares
valid users = @smbgrp
guest ok = no
writable = yes
browsable = yes

就像以前一样,运行此命令查看您当前的samba设置。

$ testparm
Samba当前配置设置
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 "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
netbios name = UBUNTU
server string = %h server (Samba, Ubuntu)
server role = standalone server
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* .
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
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = No
[Anonymous]
comment = Anonymous File Server Share
path = /srv/samba/anonymous_shares
force user = nobody
read only = No
guest ok = Yes
[Secure]
comment = Secure File Server Share
path = /srv/samba/secure_shares
valid users = @smbgrp
read only = No

完成上述配置后,重新启动Samba服务以应用更改。

$ sudo systemctl restart smbd   [Systemd]
$ sudo service smbd restart     [Sys V]

测试安全的Samba文件共享

如前所述,在Windows机器中,并从Windows资源管理器窗口打开“ 网络 ”。 点击Ubuntu主机( youcl为我们的案例)。 您可能会收到以下错误,如果不进行下一步。

连接到安全Samba共享

连接到安全Samba共享

尝试使用其IP地址访问服务器,例如\\192.168.43.168这样。 然后输入用户aaronkilik的凭据(用户名和密码),然后单击确定

Samba共享用户登录

Samba共享用户登录

您现在将查看所有共享目录,单击安全打开它。

Samba安全共享

Samba安全共享

您可以将网络上的其他许可用户安全地与这个目录一起分享一些文件。

在Samba Share上添加文件

在Samba Share上添加文件

在Ubuntu的UFW防火墙中启用Samba

如果您的系统启用/启用了UFW防火墙,则必须添加规则以允许Samba通过防火墙。

为了测试这个,我们使用了192.168.43.0网络方案。 运行以下命令,指定您的网络地址。

$ sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
$ sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
$ sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
$ sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

您还可以在网络上查看有关Samba文件共享的有用文章。

  1. 设置Samba4 Active Directory域控制器 - 第1部分至第14部分
  2. 如何在Linux中挂载/卸载本地和网络(Samba和NFS)文件系统
  3. 使用ACL(访问控制列表)和安装Samba / NFS共享
  4. 如何在Linux系统中修复SambaCry漏洞(CVE-2017-7494)

就这样! 在本指南中,我们向您展示了如何设置Samba4以在Ubuntu和Windows机器之间进行匿名和安全的文件共享。 使用下面的反馈表单与我们分享任何想法。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏