一、samba的简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

二、samba服务的管理
1.服务端的配置
yum install samba-client  samba-common.x86_64  samba.x86_64 -y
#                          (主要文件)         (服务提供)
systemctl stop firewalld.service   ##关闭火墙
getenforce                         ##查看selinux的状态
rpm -qc samba-common               ##查看samba的配置文件

samba共享自动运行 samba共享服务有什么用_samba共享自动运行

vim /etc/samba/smb.conf            ##编辑共享配置

[YY] 			        		   ##共享名称
path=/mnt                          ##实际共享目录  

semanage fcontext -a -t samba_share_t '/mnt(/.*)?'      ##修改共享目录的安全上下文
restorecon -RvvF /mnt/             ##目录全部内容生效

samba共享自动运行 samba共享服务有什么用_linux_02


samba共享自动运行 samba共享服务有什么用_linux_03

getsebool -a | grep samba                      ##查看在selinux开启的时候一些被默认限制的服务
setsebool  -P samba_enable_home_dirs on        ##允许进入samba的用户家目录
smbpasswd -a student						   ##给smb服务添加一个可以让客户端登录使用的用户身份,且 student 必须是本机用户
pdbedit -L									   ##查看能使用smb服务的用户身份
systemctl restart smb                          ##重启服务

samba共享自动运行 samba共享服务有什么用_服务端_04


samba共享自动运行 samba共享服务有什么用_服务端_05

#在客户端进行测试:

yum install samba-client.x86_64 -y               ##安装samba客户端软件
smbclient -L  //172.25.254.100

samba共享自动运行 samba共享服务有什么用_smb_06


samba共享自动运行 samba共享服务有什么用_服务端_07

2.服务端对共享目录匿名用户的管理:
chmod 777 /westos                                      ##开启文件目录本身可写的权限
vim /etc/samba/smb.conf

[westos]
comment = local directory westos   		  			   ##显示说明
path = /westos
guest ok = yes										   ##允许匿名用户登陆
writable = yes										   ##服务允许所有人可写

测试:

samba共享自动运行 samba共享服务有什么用_smb_08


samba共享自动运行 samba共享服务有什么用_linux_09


samba共享自动运行 samba共享服务有什么用_服务端_10


samba共享自动运行 samba共享服务有什么用_samba共享自动运行_11


samba共享自动运行 samba共享服务有什么用_smb_12

3.服务端对smb用户的权力限制:
vim /etc/samba/smb.conf

[westos]
comment = local directory westos    ##显示说明
path = /westos
guest ok = yes						##允许匿名用户登陆
writable = yes						##服务允许所有人可写
#write list = +lee					lee组成员可写
#valid users = lee westos 			有效用户,中间可以用空格隔开指定多个
#valid users = @lee(+lee) 			lee组成员可以访问共享目录
#browseable = no					no为隐藏目录
#admin users = lee 					lee在登陆共享目录后它就会变成共享目录的root用户

systemctl restart smb               ##修改配置文件后重启smb服务

samba共享自动运行 samba共享服务有什么用_samba共享自动运行_13


samba共享自动运行 samba共享服务有什么用_共享目录_14


#客户端测试:

samba共享自动运行 samba共享服务有什么用_samba共享自动运行_15


#服务端修改参数:

samba共享自动运行 samba共享服务有什么用_samba共享自动运行_16


samba共享自动运行 samba共享服务有什么用_samba共享自动运行_17


##客户端测试:

samba共享自动运行 samba共享服务有什么用_服务端_18


samba共享自动运行 samba共享服务有什么用_smb_19


#服务端修改参数:

samba共享自动运行 samba共享服务有什么用_smb_20


##客户端测试:

samba共享自动运行 samba共享服务有什么用_服务端_21


#服务端修改参数:

samba共享自动运行 samba共享服务有什么用_linux_22


##客户端测试:

samba共享自动运行 samba共享服务有什么用_linux_23


#服务端参数设置:

samba共享自动运行 samba共享服务有什么用_linux_24


samba共享自动运行 samba共享服务有什么用_linux_25

4.smb共享目录的挂载使用:
mount //172.25.254.121/YY /media -o username=tom,password=123          ##将共享目录挂载到本地进行操作

samba共享自动运行 samba共享服务有什么用_共享目录_26


##匿名用户挂载的方法:

#服务端设置:

vim /etc/samba/smb.conf

129      map to guest = bad user                       
##把匿名用户映射成guest,让mount识别到匿名用户的身份,可以被客户端挂载到本地使用

samba共享自动运行 samba共享服务有什么用_服务端_27


samba共享自动运行 samba共享服务有什么用_smb_28

5.smb服务的多用户挂载:

#为什么要使用多用户挂载:

samba共享自动运行 samba共享服务有什么用_共享目录_29

6.客户端实现多用户挂载的设定:
yum install cifs-utils 		  ##安装提供服务所用的软件

vim /root/passfile       
##将密码和smb用户名写在文件里,避免输入时暴露用户密码(挂载后mount仍然可以看到使用的smb用户名称)

username=smb用户名称
passowrd=smb用户密码

chmod 600 /root/passfile 	 ##让普通用户无法看到这个密码文件

samba共享自动运行 samba共享服务有什么用_共享目录_30


samba共享自动运行 samba共享服务有什么用_smb_31

mount   //172.25.254.100/YY  /mnt  -o  credentials=/root/passfile,multiuser,sec=ntlmssp
#                                                          (读取用户名和密码文件)     (身份验证) (密码验证)
df                       ##查看挂载是否成功,成功即可以文件里的smb用户身份对共享目录进行操作

samba共享自动运行 samba共享服务有什么用_服务端_32


#切换成普通用户测试:

df 				 ##root挂载过的目录仍然存在
cd /mnt			 ##共享目录仍然可以进入
ls				 ##无法查看到内容

samba共享自动运行 samba共享服务有什么用_linux_33

cifscreds add -u westos 172.25.254.121     ##给这个普通用户添加一个smb的用户身份,输入密码通过验证(即使输入错误密码也不会报错,但是仍然无法查看目录,而且不能再直接以相同方式输入正确密码)

cifscreds clear -u westos 172.25.254.121   ##删除缓存中的这个身份认证信息,可以重新添加用户并输入密码

samba共享自动运行 samba共享服务有什么用_服务端_34


samba共享自动运行 samba共享服务有什么用_linux_35

smb共享目录的自动挂载
vim  /etc/fstab
//172.25.254.121/YY     /media  cifs    defaults,credentials=/root/smbfile,multiuser,sec=ntlmssp        0 0

samba共享自动运行 samba共享服务有什么用_共享目录_36


samba共享自动运行 samba共享服务有什么用_服务端_37