配置Samba文件服务器

配置Samba文件服务器

故里.
2021-05-26 / 0 评论 / 31 阅读 / 正在检测是否收录...

配置文件服务器之Samba
(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

准备工作

1、准备两台机器,一台centos-8作为服务器,一台windows作为客户机。
2、两台机器放在同一个lan区段。
3、关闭防火墙
4、关闭selinux

操作步骤:

1、使用root用户登录centos-1

终端输入命令:

rpm -qa|grep samba

使用该命令后如果得到以下信息(顺序可能变化):
samba 服务器端软件
samba-client samba客户端软件
samba-common Samba服务器和客户端均需要的文件
samba-winbind 可选的winbind服务(此项可以没有)
但我们的机器得到的信息截图如下:
kp4z3xzn.png

对比以上信息,也是不全的,缺少samba服务器端、客户端主文件,需要安装samba服务。

2、安装samba服务器所需要的安装包

输入命令:
1)挂载光盘到media目录下

mount /dev/cdrom /media

2)制作用于安装的yum源软件
(DNF已取代yum正式成为centos8的软件包管理器,也可以通过rpm –ivh 软件包名称来安装软件,但是有的时候一个软件包的安装时依赖于其他软件的,那么rpm不能解决以来关系,安装人员需要很清楚他们的依赖关系,而使用yum源可以很好地解决依赖关系)

cd /etc/yum.repos.d
mkdir  repo
mv CentOS* repo
vim dvd.repo

输入以下代码:

[c8-media-AppStream]
name=AppStream
baseurl=file:///media/AppStream
gpgcheck=0
enabled=1

[c8-media-BaseOS]
name=BaseOS
baseurl=file:///media/BaseOS
gpgcheck=0
enabled=1

输入后:wq!保存退出。
3)清空并重建cache

yum clean all
yum makecache

4)安装samba

dnf -y install samba

(centos 7命令为:yum install samba -y)
//samba服务器端软件安装
过程如下:
kp4z4r7u.png
kp4z554n.png
kp4z5gks.png

dnf -y install samba-client

//samba客户端软件安装

kp4z5ozy.png

再次用命令rpm -qa|grep samba查询安装的samba软件包情况,截图如下,发现与开始的截图不同,安装完成。

kp4z60kx.png

3、建立共享目录

mkdir  /share

用命令touch 创建两个测试文件。如下。

touch f1
touch f2

4、修改“smb.conf”配置文件的文件识别项。
使用vim或者gedit命令打开。
在root用户下,打开终端,输入

gedit /etc/samba/smb.conf

打开配置文件编辑。
在global部分下设置如下三行,如果没有则直接输入,

workgroup=workgroup
server string = Mysamba Server Version  %v
netbios  name=Mysamba

第一行表示工作组设置,工作组名称需要在windows中已有的工作组,第二行第三行表示显示名称和版本。
注意:在“smb.conf”配置文件中的代码前以#或者;开头的都为注释,不起作用。
5、修改“smb.conf”配置文件的日志文件及共享级别。
在global部分下输入或者修改以下行:

logfile=/var/log/samba/log.%m
security=user
map to guest = Bad User

第一行是定义了samba用户的日志文件,%m代表客户端主机名。第二行是安全级别,本例为了做实验特加第三行,相当于“share”级别,即不需要账号密码就可以登陆samba服务器。
6、修改“smb.conf”配置文件的共享目录
输入一下内容,这部分基本是直接添加的:

[public]
      comment=Public  Stuff
      path=/share
      public=yes

其中第一行表示共享标题,第二行后面表示提示,可以输入任何内容,第三行为实际的目录名称,第四行表示该共享目录允许匿名访问,允许所有人操作,浏览内容,若想要修改还需要用户名、密码以及设置权限。
第4-6步骤编辑后的整体如下截图。设置完毕后保存。

kp4z8w5p.png

7、启动samba服务

kp4z973c.png

若要重启samba服务,可以用

systemctl restart nmb

8、本地测试samba服务

测试分为两个阶段,第一个是测试配置文件的完整性,使用命令testparm,这时会显示刚刚的配置文件是否有问题,主要看自己输入的是否有红字。没有问题后可以使用命令:

smbclient  //192.168.10.8/public

测试能否访问文件。这里的ip时本服务器的IP地址,之后会出现提示要求输入root用户的密码,输入正如的后会出现
“smb:>”提示符,再输入命令“ls”就会显示之前步骤3创建的两个测试文件,说明samba服务器配置成功。

kp4z9klt.png

9、linux测试samba服务与挂载

也可以从另一台centos与该samba服务器相连接,找到另一台centos作为客户机(设置网络、关闭防火墙和selinux)

mount   /dev/cdrom   /media
cd  /media/ BaseOS/ Packages
rpm  -ivh  samba-client-4.9.1-8.el8.x86_64.rpm

输入如下命令:

smbclient  //192.168.10.8/public

可以得到和上面一样的结果。
或者使用mount命令将服务器上的目录挂载到本地,
先安装cifs-utils

cd  /media/ BaseOS/ Packages
rpm -ivh cifs-utils-6.8-2.el8.x86_64.rpm

然后
创建目录sc

mkdir /sc

挂载服务器端的共享文件夹到本地sc目录下
mount.cifs //192.168.10.8/public /sc
在/media目录下可以看到如下:

kp4za3vw.png

10、windows下测试samba服务

从另一台与该samba服务器相连接的windows系统登陆,打开网络邻居查找“WORKGROUP”工作组,就会看到标识有“Mysamba Server Version。。。”之类,如下:
kp4zaifu.png

双击打开,可以看到如下截图,即在服务器共享目录创建的测试文件,但本实验只可浏览,不可以在下面新建文件或者修改文件.
kp4zavat.png

Win10中在资源管理器输入\192.168.10.8public,得到如下结果
kp4zb5ne.png

进阶

操作步骤:
(进行下面步骤前检查(1)centos-1也就是samba服务器是否已关闭selinux,及是否关闭防火墙;(2)windows的防火墙也关闭 (3)服务器和客户机的网络是否配置好)
1、配置smb.conf文件
使用root用户登录centos-1。
输入命令:gedit /etc/samba/smb.conf编辑samba配置文件,添加两个共享保存,如下:

[readf]
        comment=Readonly File Space
        path=/readf
        readonly=yes
        public=yes
[writef]
        comment=My Write File Space
        path=/writef
        readonly=no
        public=yes

那么全文smb.conf如下:

#See smb.conf.example for a more detailed config file or
#read the smb.conf manpage.
#Run 'testparm' to verify the config is correct after
#you modified it.

[global]
    workgroup = workgroup
      server string=Mysamba Server Version %v
      netbios name=Mysamba
      logfile=/var/log/samba/log.%m
    security = user
      map to guest = Bad User
    passdb backend = tdbsam

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw
        

[homes]
    comment = Home Directories
    valid users = %S, %D%w%S
    browseable = No
    read only = No
    inherit acls = Yes

[public]
      comment=Public Stuff
      path=/share
      public=yes

[readf]
        comment=Readonly File Space
        path=/readf
        readonly=yes
        public=yes
[writef]
        comment=My Write File Space
        path=/writef
        readonly=no
        public=yes

[printers]
    comment = All Printers
    path = /var/tmp
    printable = Yes
    create mask = 0600
    browseable = No

[print$]
    comment = Printer Drivers
    path = /var/lib/samba/drivers
    write list = @printadmin root
    force group = @printadmin
    create mask = 0664
    directory mask =0775

2、建立共享文件夹
在终端中根目录下输入命令:
mkdir /readf
mkdir /writef
3、改变共享文件夹的所有权(该步骤也可以不做)
输入以下命令将readf和writef文件夹的所有权由“root”用户转换成“nobody”用户
chown nobody.nobody /readf
chown nobody.nobody /writef
4、设置共享文件夹的权限
输入命令,设置两个共享文件夹的权限对所有用户是全权
chmod 777 /readf
chmod 777 /writef
5、重启Samba服务
输入以下命令:
systemctl restart smb
systemctl restart nmb
6、测试Samba服务
登录windows计算机,打开网上邻居或者资源管理器,
(1)Win10中在资源管理器输入\192.168.10.8readf,在其中新建文件或文件夹,看能否成功。可得如下结果,表示不能新建,因为该readf目录权限为只读。
kp4zc0hj.png

(2)Win10中在资源管理器输入\192.168.10.8writef,在其中新建文件或文件夹,看能否成功。
可得如下结果,表示能新建,因为该writef目录权限为可读写。
kp4zcfu3.png

回到centos-1(服务器端)中,查看writef,也可以看出来该目录下多了一个目录。

kp4zcr89.png

项目7-任务3
操作步骤:
(进行下面步骤前检查(1)centos-1也就是samba服务器是否已关闭selinux,及是否关闭防火墙;(2)windows的防火墙也关闭 (3)服务器和客户机的网络是否配置好)
1、创建本地用户
使用root登录centos-1后,输入以下命令:
useradd writer1
passwd writer1
输入两次同样的密码后,新用户writer1创建成功。
2、将账户添加到samba账户:
输入命令:
smbpasswd -a writer1
两次输入samba密码后,将writer1账户添加到samba账户中。
注意:
Samba服务器与linux操作系统使用不同的密码文件,所以无法以linux操作系统上的账户和密码登录samba服务器,必须重建samba密码系统。在登录服务器时,使用的是samba密码系统。
3、创建本地共享目录并更改目录属性。
mkdir /usrwrite
chown writer1.writer1 /usrwrite
4、配置smb.conf文件(gedit /etc/samba/smb.conf)
首先注释掉map to guest = Bad User,即在前面加上#,表示登录samba服务器必须使用用户登录方法登录。
其次是新建[usrwrite]的共享目录,内容为:
[usrwrite]
comment=User write for w
path=/usrwrite
writable=yes
valid users=writer1
其中writable=yes表示该共享可以读写,valid users=writer1表示所有者是writer1.

那么全文smb.conf如下:

See smb.conf.example for a more detailed config file or

read the smb.conf manpage.

Run 'testparm' to verify the config is correct after

you modified it.

[global]

workgroup = workgroup
server string=Mysamba Server Version %v
netbios name=Mysamba
logfile=/var/log/samba/log.%m
security = user
#map to guest = Bad User
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw

[homes]

comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes

[usrwrite]
comment=User write for w
path=/usrwrite
writable=yes
valid users=writer1
[printers]

comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No

[print$]

comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775

5、重启Samba服务
输入以下命令:
systemctl restart smb
systemctl restart nmb
6、测试Samba服务
(1)在本机,即samba服务器端自行测试。
打开终端,输入命令:
smbclient //192.168.10.8/usrwrite -U writer1%123456
能够看到下面界面:
kp4zdfwd.png

表示连接成功。
(2)登录windows计算机,打开网上邻居或者资源管理器,输入\192.168.10.8usrwrite

弹出如下窗口:
kp4zdrjb.png

输入用户名和密码,为之前在samba服务器设置的samba账户和密码,分别为writer1和123456.

输入后:
kp4zdzie.png

因为该共享可实现用户writer1对它的可读写,打开后可以在里面创建文件或文件夹,大家可以试试。

注意:如果出现以下情况
若该界面一直提示输入用户名和密码,用下面办法解决:
在WindowsXP中,点击开始菜单->运行->输入secpol.msc,打开“本地安全设置”->"本地策略"->"安全选项",在右侧的列表里找到“网络安全:LAN Manager 身份验证级别”
kp4zeskx.png

双击打开,在下拉列表框中选择“仅发送 NTLMv2 响应拒绝 LM”,点击确定按钮,关闭本地安全设置。
kp4zf54o.png

课后拓展实训作业提示:
课后拓展实训作业作业中,我们涉及到限制访问的配置。
要限制使用者使用共享目录,有两种做法,一是限制使用者得IP地址,另一种是限制使用者的账户。限制用户访问即为上面的操作步骤一样结果只能让writer1访问,那如果要限制主机访问,我们需要在global的设置中,加入下面内容:
hosts allow=192.168.xx.
表示只允许IP地址为192.168.xx.0-192.168.xx.255的主机存取samba服务;如果要限制特定IP地址的使用者不能浏览共享目录,可以在global的设置中加入下面内容:
hosts deny=192.168.xx.
表示拒绝来自IP地址为192.168.xx.1-192.168.xx.255的主机存取samba服务器。
修改好后保存重启samba服务器。


2

评论 (0)

取消