Lesson28 linux中samba服务器的搭建与使用
文章目录
- 1. 什么是samba服务器
- 2.搭建samba服务器
- 3. samba服务的配置文件权限修改
- 3.1 samba服务器域名的修改
- 3.2 samba服务器黑白名单的设置
- 3.3 samba服务器共享目录
- 3.4 samba系统目录的共享
- 3.5 samba目录的隐藏权限的修改
- 3.6 samba的write list——指定用户可写共享目录
- 3.7 samba的write list = +lee(write list = @lee)——lee组内用户可写共享目录
- 3.8 samba的valid users = @lee(valid users = +lee) ——允许登录samba客户端的组内名单
- 3.9 samba的guest ok = yes—以游客身份登陆samba客户端
- 3.10 samba的admin user = westos—以管理员身份登陆samba客户端
- 4. samba的多用户挂载
1. 什么是samba服务器
samba是一个能让你的Linux、unix计算机和其他MS Windows计算机相互共享资源的软件。
samba提供有关资源共享的三个功能,包括,
smdb,执行它可以使用Linux能够共享资源给其他计算机;
而smbclient就是让Linux去存取其它计算机的资源;
最后一个smbmount则是类似MS Windows下“万股咯磁盘驱动器”的功能,可以让你把其他计算机的资源挂在自己的档案系统下。
他们功能虽然简单,但没有Samba,Linux/Unix和Windows的资源就很难共享。
samba的功能十分实用,虽然没有靓丽的外表,但是在局域网中,它是一个很重要的工具
Samba是一个开源 / 自由软件套件
自1992年以来,它为各种SMB / CIFS客户端提供文件和打印服务,包括众多版本的Microsoft Windows操作系统。
Samba可以在GNU通用公共许可证下免费获得。
Samba项目是Software Freedom Conservancy的成员。
可在Linux系统上实现。
```javascript
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议
它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务
smb使用的端口为139和455,TCP和UDP均可
2.搭建samba服务器
这里千万注意,如果desktop虚拟机和server虚拟机是7.0版本的,那么在使用共享yum源的时候版本一定要对应,不要使用7.3版本的共享yum源,否则主配置文件不一样
本节实验我用desktop虚拟机作为服务器端
配置好服务器端和测试端两端的yum源
配置desktop虚拟机的静态IP为172.25.254.114
改desktop主机名字
改server主机名字
在服务器上:
yum search samba
#寻找yum源可以提供的samba安装包
yum install samba-client.x86_64 samba-common.x86_64 samba.x86_64 -y
#(这里一共需要安装三个软件包)
安装完成后,开启samba服务
rpm -ql samba-common
#查看samba服务的主配置文件
rpm -qc samba-common
#查看samba服务的版本
查看smb服务占用的端口:445和139
查看火墙允许的服务列表
给火墙服务添加允许samba的相关服务
systemctl restart smb #重启samba服务
systemctl enable smb #设置samba服务开机启动
systemctl status firewalld #查看samba服务器防火墙的状态
firewall-cmd --add-service=samba #火墙允许samba服务
firewall-cmd --add-service=samba_client #火墙允许samba服务
firewall-cmd --reload #重新加载使其生效
添加两个本地用户
给这两个用户设置密码
pdbedit -L
#查看samba用户
测试:使用ssh连接172.25.254.18主机,在客户端安装samba-client软件包
以匿名用户的身份查看samba服务器共享的目录
以指定用户的身份查看samba服务器共享的目录
以指定用户身份登录samba查看(不加-L)
可以进行上传文件的操作
从172.25.254.18主机对172.25.254.114服务器进行上传文件的操作后,在114主机指定用户家目录中可以看到上传的文件
在172.25.254.18主机上进行挂载,指定westos用户将samba目录挂载在系统目录/mnt下,进入/mnt目录可以看到刚才上传的文件
并且也可以进行文件的删除操作
在172.25.254.18主机上建立的文件,在desktop服务器端用户的家目录下可以查看到
在172.25.254.18主机上对desktop服务器端的文件进行删除操作,那么desktop用户的家目录中可以看到,文件被删除不存在了
3. samba服务的配置文件权限修改
3.1 samba服务器域名的修改
在desktop服务器端
vim /etc/samba/smb.conf
#编辑samba服务的配置文件
将域名改为WESTOS
重启samba服务
测试:在172.25.254.18主机上查看,可以看到,Domain由MYGROUP变成了WESTOS
3.2 samba服务器黑白名单的设置
黑名单的设置:
vim /etc/samba/smb.conf
#编辑samba服务的配置文件
重启samba服务
写入:Hosts deny =172.25.254.18,则除了172.25.254.18,其他站点均能访问172.25.254.114这个服务器端的samba服务器
可以看到,172.25.254.18在登陆我这台samba服务器时网络请求被拒绝
而172.25.254.115这台主机可以正常登录我的smba服务器
白名单的设置:
vim /etc/samba/smb.conf
#编辑samba服务的配置文件
重启samba服务
写入:Hosts allow =172.25.254.18,则除了172.25.254.18,其他站点均不能访问172.25.254.114这个服务器端的samba服务器
在客户端进行测试,可以看到,172.25.254.18这台主机可以正常登录我的smba服务器
而172.25.254.115这台主机登陆我这台samba服务器时网络请求被拒绝
3.3 samba服务器共享目录
vim /etc/samba.smb.conf
#查看samba的主配置文件,可以看到关于selinux的内容介绍
在做这个实验时,要打开selinux, 将selinux状态设置为enforcing, 重启虚拟机,selinux对samba文件系统共享的影响很大
查看火墙是否添加samba服务
getenforce #查看一下selinux的状态
如果selinux开启,必须更改samba共享目录的安全上下文
mkdir /westos_msb #在samba服务器上面建立一个共享目录
查看目录的属性和westos用户id
vim /etc/samba/smb.conf
#编辑配置文件
[HAHAHA] #samba服务器对外共享的总名称
path=/westos_smb #服务器实际共享的目录
在客户端测试,通过ssh root@172.25.254.18连接到18主机上,
smbclient -L //172.25.254.114
#以匿名用户的身份查看samba服务器共享的目录(-L表示list列出)
可以看到我们添加的共享名称
在samba服务器端:
semanage fcontext -a -t samba_share_t '/westos(/.*?)?' #更改安全上下文
restorecon -RvvF /westos #刷新使其生效
可以看到,这个目录的安全上下文从default_t变成了samba_share_t
在测试端:
将/mnt解挂,然后重新将新添加的共享名称挂上去
可以看到,挂载成功
进入/mnt目录,想要创建文件,可以看到权限被拒绝
在samba服务器端:
在配置文件中加入可写权限,重启服务
给本地文件系统777的权限
在测试端:
再次测试,发现可以创建文件
在测试端的/mnt/目录下,可以创建文件,具有读写权利
在samba服务器端:
由于给本地文件系统777的权限过大,导致文件系统不安全,修改本地文件系统权限,因此给本地文件系统755的权限
给指定用户westos对/westos_smb/目录读写的权利
在测试端:
在测试段
smbclient //172.25.254.114/HAHAHA -U westos 加上samba服务器的samba用户之后进入共享名称下的内容(不加-L就是直接进入samba共享)
进入的时候需要知道samba服务器的samba用户的密码
ls查看共享的内容
quit退出
3.4 samba系统目录的共享
在samba服务器端:
在配置文件中编辑,加入/mnt, 共享系统级目录,重启服务
在测试端:
umount /mnt/ #解挂,将/mnt空闲出来,再重新挂载
mount //172.25.254.114/HAHAHA /mnt -o username=westos,password=westos #挂载
将samba服务器的共享目录挂载在本地目录/mnt下面,挂载的时候必须加上samba用户
df查看挂载
cd /mnt进入挂载目录,实际上进入了samba服务器的共享目录
ls查看
rm -rf *删除samba共享目录下的文件 (read-only 服务本身不允许)
在samba服务器端:
查看samba指定用户登陆时可以进行操作的状态
将只读权限打开
在测试端:
进入/mnt, 可以查看这个目录下的内容
不能新建文件,权限被拒绝,这是因为没有开可写权限
在samba服务器端:
将可写权限打开
在测试端:
再次尝试建立文件,可以看到,可以创建文件
3.5 samba目录的隐藏权限的修改
在samba服务器端:
新建一个/lee目录,给满权限
vim /etc/samba/smb.conf
#编辑samba服务的配置文件
browseable = no
重启samba服务
在测试端:
先解挂,释放/mnt目录
再重新挂载
df 查看挂载成功
可以看到,WESTOS共享被隐藏起来了
3.6 samba的write list——指定用户可写共享目录
在desktop服务器端:
mkdir /lee
#新建目录
编辑配置文件,设置lee用户可写共享目录WESTOS, 重启samba服务
在server测试端:
以lee的用户身份挂载共享目录,建立文件;westos用户身份挂载共享目录,尝试删除文件
先解挂
以lee用户身份挂载
可以查看共享目录和建立文件
在desktop服务器端可以查看/lee共享目录的安全上下文
在server测试端:
退出共享目录,解挂
以westos用户身份挂载, 发现可以查看共享目录,但是不能删除文件
3.7 samba的write list = +lee(write list = @lee)——lee组内用户可写共享目录
在desktop服务端:
编辑配置文件,设置lee组内用户可写共享目录WESTOS
设置westos用户属于lee组
在server测试端:
先解挂
以westos用户身份挂载共享目录,可以对文件进行操作,查看,删除文件,建立文件
3.8 samba的valid users = @lee(valid users = +lee) ——允许登录samba客户端的组内名单
在desktop服务端:
编辑配置文件,设置lee组内用户可登陆samba客户端,重启samba服务
修改westos为lee的组内用户
在server测试端:
先解挂,再以lee用户身份挂载
可以查看共享目录的文件
解挂之后再次以lee组内用户westos用户的身份登录,也可以查看文件
3.9 samba的guest ok = yes—以游客身份登陆samba客户端
在desktop服务端:
map to guest = bad user
#编辑配置文件,设置游客身份可以登陆samba客户端,重启samba服务
在配置文件的共享目录中写入guest ok = yes
在server测试端:
以游客身份登陆可查看共享目录中的内容
可挂载共享目录
3.10 samba的admin user = westos—以管理员身份登陆samba客户端
在desktop服务端:
编辑配置文件,设置westos用户以管理员身份登陆,重启samba服务
在server测试端:
以westos用户的身份挂载共享目录, 此时在desktop服务器端westos用户是管理员
df 可以查看到挂载成功
cd /mnt #切换到共享目录, ls #查看共享文件,建立文件fileyy,
ll查看文件的属性,发现虽然是以westos用户身份登陆的,但是建立文件的身份其实是root, 说明此时的westos用户就是系统管理员
4. samba的多用户挂载
此实验必须在客户端操作
在真机端:
安装 cifs-utils 软件
编辑用户文件,写入用户名称和密码
设置文件权限为600,只有超级用户可读写,以保证用户文件的安全性
在desktop服务器端可以查看到,samba的配置文件此时仍然设置westos以管理员身份登录
使用用户文件,westos以管理员的身份挂载共享目录,切换到kiosk用户登陆挂载点对共享目录进行操作,可以查看文件
credentials=/root/smbpasswd #指定挂载时所用到的用户文件
sec=ntlmssp #认证方式为标准smb认证方式
multiuser #支持多用户认证
用户在登陆samba客户端时的时候必须通过samba认证
kiosk用户对共享目录的操作被拒是因为samba服务的可写未开启,共享目录只有超级用户可写
在desktop服务器端的主配置文件中将writeable = yes 的注释放开,使其生效,并且重启samba服务
可以看到,/westos_smb/目录的权限为755
在真机中测试:
先解挂
切换到kiosk用户,发现可以查看共享目录中的文件
为kiosk用户创建挂载用户lee
以验证smb加密的方式使其他用户能够挂载
可以看到, lee用户已经挂载成功
并且可以查看和建立文件