samba服务

1.什么是samba服务

Samba是用来实现SMB的一种软件,SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。Samba服务可用于将linux文件系统作为CIFS/SMB网络文件共享进行共享,并将linux打印机作为CIFS/SMB打印机共享进行共享。

2.samba服务端与客户端的安装与配置

(1)服务端的安装与配置

进行软件安装之前可以先search一下要安装的软件,以确定具体安装哪一些。

samba服务_第1张图片

[root@smb-server ~]# yum install samba-client.x86_64 samba.x86_64 samba-common.x86_64 -y
[root@smb-server ~]# systemctl start smb

[root@smb-server ~]# netstat -antlupe | grep smb  #查看该服务的端口状态

samba服务_第2张图片

[root@smb-server ~]# smbclient -L //172.25.254.212 #以匿名用户身份列出samba服务器的信息,"-L"表示列出

samba服务_第3张图片

[root@smb-server ~]# smbpasswd -a student #为samba服务器添加一个用户,但是必须是已经存在的系统用户。


[root@smb-server ~]# smbclient -L //172.25.254.212 -U student #以student用户身份列出samba服务器信息

[root@smb-server ~]# smbclient //172.25.254.212/student -U student #以student用户身份进入samba服务器(匿名用户不能直接进入)

samba服务_第4张图片

注意:若是出现如下报错,则是由于selinux的作用,做第三行操作即可



(2)客户端的安装与配置
[root@smb-client ~]# yum install samba-client -y
[root@smb-client ~]# mount -o username=student,password=student //172.25.254.212/student /mnt

挂载后的效果:

samba服务_第5张图片

注意:若是出现如下图问题,先检查服务端和客户端的网是否能ping通,再就有可能是服务器端的防火墙没有关闭。


3.服务器端创建一个目录,客户端以samba用户挂载并访问该目录

(1)服务器端

[root@smb-server ~]# vim /etc/samba/smb.conf #编辑该服务的配置文件,如下图

samba服务_第6张图片

[root@smb-server ~]# mkdir /freya        #与该配置文件添加的path对应
[root@smb-server ~]# systemctl restart smb

[root@smb-server ~]# smbclient -L //172.25.254.212 #以匿名用户身份查看该samba的信息

如图:下图标注部分与配置文件添加的comment对应

samba服务_第7张图片

(2)客户端

[root@smb-client ~]# mount -o username=student,password=student //172.25.254.212/DATA /mnt

samba服务_第8张图片

如图:挂载后进入该目录,想要删除一个文件出现如下报错,这是属于该samba服务器端的本身不允许。


只需要在服务器端做如下更改,将/ferya目录变为允许write


成功删除:


如图:想新建一个文件,出现如下报错,该samba服务是允许的,但是服务端的/freya目录本身对student用户不可写,属于文件系统的拒绝。


只需要在服务器端令student用户对该目录有w的权限

[root@smb-server ~]# setfacl -m u:student:rwx /freya

成功建立:


Tips:若是想以samba用户student身份永久性挂载在客户端

[root@smb-client ~]# vim /etc/fstab 如图


4.客户端以匿名用户的身份挂载指定samba服务目录

由于默认情况下是不允许以匿名用户的身份挂载指定samba服务目录的。

如图:


(1)服务端

[root@smb-server ~]# vim /etc/samba/smb.conf


 第256行表示是将所有匿名用户都匹配到guest,第325行表示允许guest用户
[root@smb-server ~]# systemctl restart smb

成功以匿名用户身份进入服务目录

samba服务_第9张图片

(2)客户端测试

永久性挂载

samba服务_第10张图片

5、客户端配置文件的一些参数添加

samba服务_第11张图片

326行表示该服务对samba用户student可写

327行表示该服务对samba用户student的组可写,即一个用户加入到student组中,那么它对该服务写的权限。

328行表示给freya用户以超级用户的身份,但是仍然要与writeable=yes 配合使用,因为writeable=yes表示该服务可写,而328的参数表示freya用户对该共享名DATA所在的目录/freya有写的权限,是以超级用户的身份进入该目录做一系列操作。

samba服务_第12张图片

如上图,/freya目录对用户freya并不可写,只对student用户可写,而如下图以freya用户身份在客户端上挂载使用,却可以touch一个文件,这正是admin users = freya 在生效。

samba服务_第13张图片

329行表示其浏览功能已经被关闭,则该共享名DATA不会出现在浏览列表中,如下图,看不到DATA信息。

samba服务_第14张图片

330行表示samba用户zxy是非法用户,即不能以该用户的身份挂载使用

6、SMB多用户挂载

samba服务_第15张图片

如上图,若是使用samba用户在远程主机(客户端)上挂载使用共享文件的办法,将共享文件挂载上后,若该客户端有其他用户,仍旧可以进入挂载目录并查看文件内容,这样是不安全的。故我们有以下办法,上图的student是客户端的用户和samba用户student不同

客户端配置:

(1)软件安装


(2)将服务端samba用户student的用户名和密码保存在/root/smb-multiuser.txt文件中


(3)为了安全起见,给该文件一个600的权限

(4)客户端用户root以samba用户student身份挂载使用DATA共享

samba服务_第16张图片

如上图,root用户使用了student身份挂载使用DATA,那么student用户对该目录有W权限,自然就可以touch一个文件了,那么该文件的所属人以旧所属组仍旧是student而不是root,而之前建立的/root/smb-multiuser.txt文件则就是使用 student身份的钥匙。

那么这个时候客户端用户切换,再查看该挂载目录下的文件,则权限不足

samba服务_第17张图片

(5)那如果需要客户端上的其他用户能够进入该挂载目录并使用该共享文件的时候(下图以student用户为例),我们可以做如下操作

samba服务_第18张图片

你可能感兴趣的:(samba服务)