一、什么是samba?
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
二、实验环境配置
desktop:
主机名:node1
ip:172.25.254.113
安装3个软件:samba-client samba-common samba.x86_64
yum search samba #可以看到
systemctl start samba
ststemctl stop firewall
server:
主机名:node2
ip:172.25.254.213
安装:yum install samba-client -y
三、samba用户的建立及客户端查看共享目录
服务端:
useradd westos
smbpaswd -a westos #添加为samba用户
pdbedit -L #查看samba用户
vim /etc/samba/smb.conf
添加:
[HA] #samba服务对外共享的总名称
comment= test share #共享目录的说明
path=/westos #对外共享的实际目录
:wq
systemctlrestart smb
客户端:
smbclient -L //172.25.254.113 #查看匿名用户的共享目录
smbclient -L //172.25.254.113 -U westos #查看westos用户的共享目录
smbclient -//172.25.254.113/westos -U westos #进入westos用户的共享目录
效果:
匿名用户登陆
用户登陆此查看目录:
用户登陆此查看目录内容:
默认情况下匿名用户不能查看共享目录
如何查看?
vim /etc/samba/smb.conf
map to guest = bad user
[HA]
guest ok =yes
:wq
systemctlrestart smb.service
四、用户(服务端的)在客户端的权限
mount -o username=westos,password=123 //172.25.254.113/westos /mnt #用户身份westos挂载
1.写权限
挂载后客户端能写,且服务端可以看到;
如何关闭写权限?
vim /etc/samba/smb.conf
writeable =no #关闭
write list=@lee #只有lee组的可以写
:wq
systemctl restart smb
客户端再次写入:
2.哪个用户可以登陆?
vim /etc/samba/smb.conf
[HA]
valid users=sun #只有sun可以挂载,可以登陆查看共享目录
valid users=+sun或者@sun #属于sun的组的可以
:wq
systemctl restart smb
用户westos不可以:
用户sun 可以
把westos归属为sun的组
再次测验:
3.是否隐藏共享目录
vim /etc/samba/smb.conf
[HA]
browseable=no
:wq
systemctl restart sma
设置后的效果
4.是否可以上传
默认不可以上传:
因为服务端的/westos 对其他人没有写权限:
chmod 777 /westos.
客户端就都可以上传了。
五、selinux开启
1.服务端selinux开启后,客户端不能查看:
这是为什么?
因为我们新建的共享目录安全上下文不匹配
更改一下:
再次测验:
2.不能上传文件
六、smb多用户挂载
客户端上以用户westos(服务端的用户)挂载并建立的文件,客户端的stuedent用户也可以看到,这样是很不安全。
westos用户挂在并建立的westos文件
student 也可以看见:
最好客户端的每一个用户在smb服务端都有自己的帐号
如何实现?
客户端:
yum install cifs-utils.x86_64 -y #安装可以多用户挂载的服务
vim /root/smbpassfile
username=sun
pssword=123
:wq
chmod 600 /root/smbpassfile
ls -l /root/smbpassfile
mount -o credentials=/root/smbpassfile,sec=ntlmssp,multiuser //172.25.254.113/HA /mnt #以多用户方式挂载并读取/root/smbpassfile文件里的内容
实验效果,再次切换到student 用户就不能看了:
使用个smb帐号又可以看了: