Linux之cifs文件系统

1.smb的介绍

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

        CIFS (Common Internet File System)是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文本传输协议和超文本传输协议的一个实现。

2.samba的安装与启用

服务端IP:172.25.254.104;客户端IP:172.25.254.204

(1)服务端

yum install   samba   samba-common   samba-client   -y    ##安装samba服务软件
systemctl   start  smb                                                      ##开启samba服务
systemctl   stop  firewalld.service                                     ##关闭防火墙

(2)samba的基本信息

ss -anltuple | grep smb                        ##查看smb占用的端口

端口:139/tcp  139/udp  445/udp 445/tcp

主配置文件: /etc/samba/smb.conf

(3)基本的配置信息

workgroup =  westos                 ##工作组的设定
server string= xiaofeng              ##全局共享信息


host deny  |  allow 172.25.254.204   ##客户端 黑|白 名单


设置172.25.254.204为黑名单之后,客户端就不能查看共享信息


(4)客户端测试

yum install samba-client -y          ###客户端安装samba-client服务

smbclient -L //172.25.254.104     ###连接172.25.254.104 共享的目录

3.本地用户的建立及访问
(1)本地用户建立
服务端:

samba用户必须是本地用户
useradd westos
useradd harry
smbpasswd -a westos         ###把westos用户添加到smb服务中


pdbedit -L              ##列出samba用户


pdbedit -x 用户名   ##删除samba用户

(2)客户端测试

smbclient  -L  //172.25.254.104  -U harry            ###查看harry用户共享信息

可以看到harry用户的共享名称,类型以及说明(默认共享为家目录)

在服务端设置的默认共享家目录的配置文件

smbclient //172.25.254.104/harry  -U harry      ##进入samba服务的harry用户

setsebool -P samba_enable_home_dirs on    ##在服务端开启访问权限

成功访问harry的家目录

在服务端查看harry家目录与客户端看到的一致

挂载之后可以方便samba用户使用系统命令,因为samba命令和系统命令不太一样;在服务端samba用户家目录下建立文件,samba用户在客户端也可以查看
(3)mount //172.25.254.104/harry /mnt/ -o username=harry,password=123   ##临时挂载
(4)vim /etc/fstab            ##永久挂载
:
//172.25.254.104/harry /mnt cifs defaults,username=harry,password=123   0  0


mount -a     ##激活

在服务端harry用户家目录建立文件

在客户端查看samba用户harry的共享信息

4.共享目录设定(服务端)
(1)当共享的目录是用户自己建立时
mkdir  /sambadir1
semanage fcontext -a -t samba_share_t '/sambadir1(/.*)?'    ##永久更改安全上下文
restorecon -RvvF /sambadir1                     ##刷新
vim /etc/samba/smb.conf   (不用注释原本的系统家目录,因为是以DATA进入,不冲突)
:
[DATA]
comment = xiaofen
path = /sambadir1

测试(客户端):
smbclient -L //172.25.254.104/ -U harry


smbclient //172.25.254.104/DATA -U harry

一开始不能访问用户自己建立的目录,因为不符合samba服务的安全上下文,修改安全上下文之后成功访问

其实在服务端的配置文件中,已经给出了用户自己建立目录时不能访问的解决办法


(2)当共享的目录是系统目录时(系统目录也就是系统本身拥有的目录)

vim /etc/samba/smb.conf 
:

[SYSTEMDATA]
comment = /mnt
path = /mnt


测试:
smbclient   //172.25.254.104/SYSTEMDATA -U harry

可以看到没有访问到系统目录,内容不符

setsebool -P samba_export_all_ro on   ##和samba有关的端口全都打开,不用对特定的目录修改安全上下文

smbclient   //172.25.254.104/SYSTEMDATA -U harry 成功访问

5.权限控制

(1)匿名用户登陆权限开放
vim /etc/samba/smb.conf
:
guest ok = yes            ##匿名用户可以登陆


map to guest = bad user   ##把所有的匿名用户映射到guest上,以guest名称挂载


mount //172.25.254.104/DATA  /mnt -o  username=guest

  

测试:
smbclient   //172.25.254.104/DATA

(2)用户可写
chmod 777 /sambadir1        ###/sambadir1只对root可写,所以给权限777
setsebool -P samba_export_all_rw  on             ###开启selinux里samba服务写的权限

samba服务没有给权限,不可写


vim /etc/samba/smb.conf
:
writable = yes         ##开启写权力

mount //172.25.254.104/DATA  /mnt -o  username=westos   ##DATA挂载到/mnt


write list = harry      ##写的权力对harry用户开放,开放write list = harry,设置writable = no

westos用户不可写,写的权力仅对harry开放

write list = +harry    ##写的权力对harry组开放

一开始tom用户不能写

usermod -G harry tom         ##把tom添加为harry的从属组,tom可以有了写的权力


在这里设置chmod 755 /sambadir1   ###因为设置westos用户为共享的root,满权限无法区分

admin users = westos   ##设定westos用户为当前共享的root

创建file4,共享root为westos(1002)


valid users = harry        ##设定当前共享的有效用户,不是有效用户不能挂载

westos用户不是有效用户不能挂载


browseable = yes | no   ##当前共享目录是否隐藏(no为隐藏,共享目录是/DATA)



6.samba多用户挂载()
(1)客户端
yum install cifs-utils -y
vim /root/sambapasswd
:
username=harry
password=123

chmod 600 /root/sambapasswd          ###只有超级用户能看
mount -o credentials=/root/smbpasswd,sec=ntlmssp,multiuser //172.25.254.104/DATA  /mnt
credentials=/root/smbpassword    ###挂载时的用户认证
sec=ntlmassp                              ###其他用户的认证方式
multiuser                                     ###支持其他用户的认证方式


(2)测试(要把valid users = harry注释,否则别的用户都不是有效的)
ls /mnt
su - student
ls /mnt
ls: reading directory .: Permission denied
在student下
cifscreds add -u westos 172.25.254.104         ###以服务端本地用户身份去查看
ls /mnt


touch /mnt/file9
可以看见建立file9所用到的用户身份时samba用户westos


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值