cifs简介
CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。
CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其他主机并访问其中的共享文件夹
一、samba安装及其调试
服务端ip:172.25.254.205
yum install samba-client samba-common.x86_64 samba.x86_64 -y ##安装sam及其相关软件
(samba服务器的应用程序 samba-client客户端应用程序 samba-common是samba的支持文件)
systemctl restart firewalld.service ##重启火墙
setsebool -P samba_enable_home_dirs on ##SELinx布尔值开关
smbpasswd -a student ##创建smb用户
pdbedit -L ##查看已有smb用户
pdbedit -x student ##删除已有smb用户
修改火墙策略
客户端想要连接服务端,服务端的火墙 要么允许服务 要么关闭。
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
firewall-cmd --list-all
二、samba共享目录
服务端
1、配置共享目录
vim /etc/samba/smb.conf ##编辑
322 [HAHA] ##[共享名称]
323 comment = gongxiangshuoming ##共享说明
324 path = /westoss ##共享目录路径
systemctl restart smb.service ##重启smb服务
mkdir /westos ##建立目录
2、修改安全上下文
方式1:
semanage fcontext -a -t samba_share_t '/westos(/.*)?' ##给目录sam的安全上下文
restorecon -FvvR /westos/ ##刷新
方式2:
共享系统建立目录要修改的linux属性,此方式修改针对所有目录,一旦开放,selinux不保护目录访问
getsebool -a | grep samba ##查看SELinux的布尔值
samba_export_all_ro --> off ##可以只读
samba_export_all_rw --> off ##可以读写
3、测试
smbclient -L //172.25.254.205 -U student ##查看student共享名称
smbclient //172.25.254.205/HAHA -U student ##HAHA是自己写的共享名称
格式:smbclient //服务端IP/共享目录 -U sam用户名称
三、samba匿名访问
服务端
vim /etc/samba/smb.conf
123 security = user
124 passdb backend = tdbsam
125 map to guest = bad user
327 guest ok = yes
systemctl restart smb
mount //172.25.254.205/HAHA /mnt -o username=guest ##可在挂载处管理文件
四、实名共享
服务端
vim /etc/samba/smb.conf ##修改主配置文件
#hosts deny =172.25.254.205 172.25.254.105 ##只拒绝
172.25.254. ##只拒绝网段
hosts allow =172.25.254.5 ##只允许
systemctl restart smb.service
只允许主机ip172.24.254.105连接
测试
服务端:
smbclient //172.25.254.205/HAHA -U student ##登陆
登陆失败
客户端:
主机ip:172.25.254.105(挂载成功)
mount //172.25.254.205/HAHA /mnt -o username=student,password=123 ##挂载
主机ip:172.25.254.5(挂载失败)
五、挂载
服务端
mount //172.25.254.205/HAHA /mnt -o username=student,password=123 ##挂载
vim /etc/fstab ##自动挂载
//172.25.254.205/HAHA /mnt cifs defaults,username=student,password=123 0 0
mount -a
客户端
mount //172.25.254.228/student /mnt/ -o username=student,password=123 ##临时挂载
vim /etc/rc.d/rc.local ##编写脚本永久挂载
chmod +x /etc/rc.d/rc.local ##给脚本一个可执行权限
六、samba共享目录的管理参数
##注意
#关于读写被拒绝问题
#1)查看SELinux的安全上下文
#2)查看目录权限
#3)查看配置文件
#4)查看布尔值
##################
vim /etc/samba/smb.conf
[westos] ##共享名称
comment = haohaiyo ##共享说明
path = /westos ##共享途径
guest ok = yes ##允许匿名访问
writable = yes ##允许可写
write list = +student ##允许可写名单(student这个组,+和@意思相同)
valid users = student
valid users = @student
browseable = yes ##查询时显示这个DIR目录
admin users = student ##登陆获得student身份
systemctl restart smb
七、smb多用户挂载
客户端
yum install cifs-utils.x86_64 -y ##在客户端上管理的软件是cifs-utils
vim /root/passfile ##写入smb服务上真实存在的用户和密码
1 username=student
2 password=123
mount //172.25.254.205/HAHA /mnt -o credentials=/root/passfile,multiuser,sec=ntlmssp
##挂载多用户(credentials=/root/smbpass指定挂载时用到的用户身份,sec=ntlmssp认证方式为smb认证,multiuser支持多用户认证)
useradd text
su - text
cifscreds add -u redhat 172.25.254.205 ##增加samba用户
cifscreds clear -u redhat 172.25.254.205 ##清除samba用户
yum install cifs-utils.x86_64 -y ##在客户端上管理的软件是cifs-utils
[root@desktop rc.d]# vim /root/passfile ##写入smb服务上真实存在的用户和密码
1 username=student
2 password=123
[root@desktop rc.d]# mount //172.25.254.205/HAHA /mnt -o credentials=/root/passfile,multiuser,sec=ntlmssp
##挂载多用户(credentials=/root/smbpass指定挂载时用到的用户身份,sec=ntlmssp认证方式为smb认证,multiuser支持多用户认证)
[root@desktop rc.d]# useradd text ##添加一个用户
[root@desktop rc.d]# su - text
[text@desktop ~]$ cd /mnt
[text@desktop mnt]$ ls ##因为没有做smb的认证所以无法访问smb共享
ls: reading directory .: Permission denied
[text@desktop mnt]$ cifscreds add -u student 172.25.254.205 ##用smb用户作认证
Password:
[text@desktop mnt]$ ls
file file1
[text@desktop mnt]$
[text@desktop mnt]$ cifscreds clear -u student 172.25.254.205 ##清除认证