SAMBA(Server Message Block)
文件服务器之:samba服务器
1.作用:
提供cifs协议实现文件共享,让文件在window和unix like两个不同的操作系统平台沟通
2.samba所使用的服务及一些基础设置:
软件包:
samba-commom ##samba的支持文件
samba-client ##客户端应用程序
samba ##服务器应用程序
服务:
nmbd:这个服务的主要功能是用来管理工作组,NetBIOS Name等的解析。主要利用udp协议开启137,138端口来负责名称的解析的任务
smbd:这个服务是用来管理SAMBA主机的共享目录,文件与打印机等,主要利用TCP协议传输,开放的端口为139和445
基础设置:
/etc/samba/smb.conf ##是samba的主配置文件,基本模型如下:
[global]
参数项目 = 设置内容
...
[共享资源名称]
参数项目 = 设置内容
...
/etc/sysconfig/samba ##提供启动smbd,nmbd还想加入的相关服务参数
3.实验:
1).安装samba服务
yum install samba samba-common samba-client -y
systemctl start smb nmb
systemctl enable smb nmb
2).添加smb用户
smb用户必须是本地用户
smbpasswd -a student ##添加一个本地用户为smb用户
pdbedit -L ##查看smb用户信息
pdbedit -x ##删除smb用户
3).共享目录的基本设定
vim /etc/samba/smb.conf ##samba服务的主配置文件
[public] 共享名称(自定义)
comment = 对共享目录的描述
path = 共享目录的绝对路径
**当共享目录为用户自建立目录时
虽然能登陆smb用户但是在服务端和和客户端都无法看到目录里所建立的文件,这是因为在建立目录时,没有修改安全上下文的原因
修改新建目录的安全上下文之后重新操作;
semanage fcontext -a -t samba_share_t'目录名称(/.*)?' ##修改自建立目录的安全上下文
或chcon -R -tsamba_share_t 目录名称
restorecon -RvvF 目录名称
**当共享目录为系统建立目录
samba_export_all_ro --> on
samba_export_all_rw --> on
4).samba的配置参数
#匿名用户访问
guest ok = yes
map to guest = bad user
systemctl restart smb
#访问控制
hosts allow = ip ##仅允许某个ip访问
hosts deny = ip ##仅拒绝某个ip访问
valid users = westos ##当前共享的有效用户为westos
useradd westos
smbpasswd -a westos
客户端测试:
smbclient //172.25.254.122/public -Uwestos
validusers = @westos 或 +westos ##当前共享的有效用户为westos组
smbclient//172.25.254.122/haha -U student
usermod -G westosstudent
客户端测试:
smbclient //172.25.254.122/haha -Ustudent
5).读写控制
所有用户均可写
chmod o+w /smbshare
setsebool -P samba_export_all_rwon
vim /etc/samba/smb.conf
writeable = yes
测试:mount -ousername=westos,password=westos //172.25.254.222/haha /mnt
cd /mnt
设定指定用户可写
write list = student ##可写用户
write list = +westos ##可写用户组
write list = @westos ##可写用户组
admin users = westos ##共享的超级用户
6.smb多用户挂载
在client上
vim /root/haha
username=studnet
password=westos
chmood 600 /root/haha
yum install cifs-utils -y
mount -ocredentials=/root/haha,multiuser,sec=ntlmssp //172.25.254.122/haha /mnt
#credentials=/root/haha 指定挂载时所用到的用户文件
#multiuser 支持多用户认证
#sec=ntlmssp 认证方式为标准smb认证方式
su - kiosk
ls /mnt
ls:cannotaccess /mnt:Permission denied ##因为没有做smb的认证所以无法访问smb共享
cifscreds add -u westos172.25.254.122
Password: ##smb用户westos的密码
ls /mnt