如何在Ubuntu 20.04/Debian 11上配置Samba服务器

时间:2020-03-21 11:43:02  来源:igfitidea点击:

Samba是开源软件,它使用TCP/IP协议。
基本上,samba是SMB(服务器消息块)和CIFS(公用Internet文件系统)协议的实现。
samba的主要优点是它在Linux和其他操作系统之间提供文件和打印共享服务。

Samba支持的平台:

  • Linux
  • Windows
  • Solaris 2.above
  • Aix
  • OpenBSD
  • SunOS 4 以上

Samba软件包快速查看

  • samba
  • samba-client
  • samba-common
  • samba-winbind

安装SAMBA服务器

首先,现在检查APT是否已配置。
检查必要的DEB

# dpkg –q samba

下一步安装必要的软件包

# apt install samba* -y

之后,将安装samba软件包。

SAMBA守护程序:

  • nmbd:nmbd守护程序提供NetBIOS(网络基本输入/输出系统)命名服务和浏览支持。一个守护程序,它负责Windows Internet名称服务(WINS)并协助浏览。但是根据samba文档,它应该是第一个启动的守护程序。
  • Smbd:它管理文件传输和身份验证。
  • Winbind:它开始处理Microsoft Windows域成员身份。

检查状态

# service nmb status
nmbd is stopped
# service smb status
smbd is stopped
# service winbind status
winbind is stopped

配置文件:

其次,主要配置文件是smb.conf,配置文件的路径是/etc/samba/smb.conf。

它分为四个部分:

  • global:常规的samba配置参数。
  • homes:允许用户访问其主目录。
  • printers:用于配置打印机和与共享打印机相关的打印机条目。
  • 份额:定义其他可用份额。

SAMBA服务器端

之后,让我们开始在服务器端配置SAMBA服务器。

然后,我们共享/theitroad文件。
因此,首先创建一个/theitroad目录,并在/theitroad目录中创建一些文件。

# mkdir /theitroad
# touch /theitroad/file {1..10}

最后,现在我们编辑samba的配置文件,并其中进行一些更改和输入。

# vim /etc/samba/smb.conf

配置SAMBA服务器

现在,我们可以从全局部分更改WORKGROUP。

之后,转到“共享定义”部分。
所以我们首先看到目录共享选项
[theitroad]->将显示的共享名。

comment =访问文件存储-> Network中显示的注释。

path =/theitroad->与共享关联的目录路径。

host allow=地址->指定哪个域可以访问此共享(也可以在全局部分中进行输入)。

host deny = address->指定哪个域无法访问此共享。

valid users=用户名->可以访问共享的用户名。

public =否/是->指定来宾用户是否可以访问此共享。

writable=否/是->指定共享目录是否可写。

Browseable =否/是->指定共享目录是否可见。

因此,让我们从配置开始。

[share]
path = /theitroad
host allow = 127.192.168.0
host deny = 192.168.0.24
browseable = yes
writable = yes
valid users = theitroad

使用:wq保存
现在该启动服务了。

# service smb start
Starting SMB services:                                     [  OK  ]
# systemctl enable smb

我已经有用户拥有theitroad用户名。
如果要添加用户,请按照下列步骤操作。

# useradd theitroad

现在该为用户提供密码了。

# smbpasswd   -a  theitroad
New SMB password : 
Retype new SMB password : 

添加了用户theitroad。

但是由于SELINUX策略,客户端将无法从服务器获得访问权限。
SELINUX是Linux的复杂安全功能。
如果SELINUX在目标模式下配置为“强制”,则会发生这种情况。

我们来谈谈一些布尔值
samba_export_all_ro->启用对任何目录的只读访问。

samba_export_all_rw->启用对任何目录的读写访问。

samba_enable_home_dirs->启用主目录共享。

samba_share_t目录名->启用可以共享的samba。

因此,我们必须启用此策略。
为此,只需做一件事。

# ls -ldZ /theitroad
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /theitroad

因此要启用SELINUX环境,请运行chcon命令更改上下文。

# chcon -R -t samba_share_t /theitroad
# ls -ldZ /theitroad
drwxr-xr-x. root root unconfined_u:object_r:samba_share_t:s0 /theitroad

在Linux客户端上配置SAMBA

现在,我们准备在客户端使用此共享。
为此,我们必须为Linux客户端安装samba-client软件包。
在那之后
“ smbclient”命令用于连接共享。

语法

smbclient  //ipaddr/sharename -U 用户名
#  smbclient     //192.168.0.2/share  -U   theitroad
Enter theitroad's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.4-68.el6]
smb: \>

在Windows客户端上检查

右键单击“我的电脑”,然后单击“属性”。

点击更改设置

用工作组名称更改工作组名称。

开始->运行。

它将询问我们用户名和密码,键入并访问文件。

现在我们已经在Ubuntu和Debian上配置了Samba服务器。