Linux系统中CIFS文件系统

本文介绍了Linux系统中使用CIFS(Common Internet File System)进行文件共享和服务,包括SMB共享的配置、CIFS功能概述、用户管理、匿名用户访问控制、共享目录的设置以及多用户访问控制。通过设置smb用户、修改配置文件和安全上下文,实现了文件系统的安全共享和访问权限管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、SMB共享

用internet文件系统(CIFS)也称为服务器信息是使用于Microsortwindosw 服务器和客户端的标准文件和打印机共享系统信息块(SMB
Samba 服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux打印机作为CFIS/SMB打印共享进行共享

CIFS简介

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

CIFS可以提供以下功能:

1.访问服务器本地文件并读写这些文件
2.与其它用户一起共享一些文件块
3.在断线时自动恢复与网络的连接
4.使用统一码文件名

下载smb文件包
下载安装包 [root@apache-server ~]# yum install samba samba-common-tools.x86_64  -y

打开samba,关闭防火墙

[root@apache-server ~]# getenforce               查看selinux级别为enforcing
Enforcing
[root@apache-server ~]# systemctl stop firewalld.service                 关闭火墙
[root@apache-server ~]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off
[root@apache-server ~]# setsebool -P samba_create_home_dirs  on                           开启创建目录的服务
[root@apache-server ~]# systemctl start smb                   开启smb服务

增加smb用户(如果不增加,在客户端只能匿名登陆),增加的smb用户必须是系统中已经存在的用户

smbpasswd -a student 输入两次密码
pdbedit -L 显示系统中的smb用户
pdbedit -x student 删除某一指定smb用户

设置登陆密码
[root@apache-server ~]# smbpasswd -a student
New SMB password:                        输入两次密码
Retype new SMB password:
Added user student.

客户端:
1.安装 samba-client

[root@apache-server ~]# yum install samba-client -y

2,用smb身份登陆用户查看有哪些服务

在这里插入图片描述
3,以smb身份登陆用户查看文件内容

[root@apache-server ~]# smbclient //192.168.100.200/student -U student
在这里插入图片描述

输入密码后,查看内容ls,我们发现系统提示访问被拒绝
这时我们考虑是sebool的问题,在服务端查看samba_enable_home_dirs的sebool值,

并将其打开 getsebool -a | grep samba 查看sebool值
setsebool -P samba_enable_home_dirs on 修改sebool值(-P表示永久设定)

在这里插入图片描述

查看是没有打开的,然后将其打开再次查看

在这里插入图片描述
打开之后在重新以smb身份登陆查看,已经成功
在这里插入图片描述

二.smb用户上传文件与smb用户挂载

pdbedit -L 查看有什么用户
pdbedit -L xxx 查看指定用户
pdbedit -x xxx 删除指定用户
smbpasswd -a xxx 设置共享密码
在这里插入图片描述

(一)smb用户上传文件

1.登陆smb上传文件
注意:上传的文件只能是现在所在目录中的文件,如现在所处位置是/etc,那么我们只能上传/etc下的文件,如果上传别的地方的文件,那么系统会提示找不到该文件。

1 smbclient //172.25.254.210/student -U student 用student身份登陆smb
2 !ls 显示该目录下的文件
3 put passwd 上传passwd文件

在这里插入图片描述

上传完成之后,会在服务端的用户家目录中。

在这里插入图片描述

(二)直接查看共享
做本地域名解析

[root@apache-server ~]# vim /etc/hosts
[root@apache-server ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.200     server.westos.com

以smb身份直接登陆查看
在这里插入图片描述

(三)smb用户挂载
1.我们之前用student用户查看,发现//192.168.100.200/student是一块磁盘,可以将其挂载在/mnt下

方法一:mount //172.25.254.210/student /mnt/ -o username=student,password=student

在这里插入图片描述

方法二:先卸载上边的挂载
编写自动挂载文件
vim /etc/rc.d/rc.local
mount //172.25.254.210/student /mnt -o username=student,password=student
/mnt是挂载点,username是smb用户名称,password是该用户的密码
chmod +x /etc/rc.d/rc.local

2.df查看系统挂载情况,可以看到//172.25.254.210/student已经自动挂载在了/mnt下

在这里插入图片描述

三、匿名用户登陆访问控制

关闭火墙,更改名称做域名解析

[root@apache-server ~]# systemctl stop firewalld
[root@apache-server ~]# hostnamectl set-hostname server.westos.com
[root@apache-server ~]# hostname
server.westos.com
  • 编辑smb主配置文件
    在这里插入图片描述
    匿名用户可以登陆 。允许200的这台主机可以登陆访问,拒绝180这台主机访问

在这里插入图片描述

四.在smb下共享目录
1.创建新的共享目录,并且更改目录的安全下文和smb服务的安全上下文保持一致
[root@server ~]# mkdir /bbo
[root@server ~]# semanage fcontext -a -t samba_share_t '/bbo(/.*)?'
[root@server ~]# restorecon  -RvvF  /bbo                   刷新
restorecon reset /bbo context unconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
2.修改主配置文件
[root@server ~]# vim /etc/samba/smb.conf

在这里插入图片描述
####### 3.服务重启

[root@server ~]# systemctl restart smb.service

6.在客户端登陆,查看是否可以查看到该目录

smbclient -L //192.168.100.200/ -U student

在这里插入图片描述

(二) 共享系统目录

服务端:

1.修改主配置文件,在最后加上
vim /etc/samba/smb.conf
[mnt]
comment = /mnt dir
path = /mnt

在这里插入图片描述
2.在客户端能看到/mnt目录,但是不能看到/mnt里边的文件,修改selinux为警告模式,可以看到文件。如果将/mnt的安全上下文修改为samba_share_t,显然不太合适,因为/mnt是系统目录,还有别的用处。

3.在主配置文件中有关于该问题的说明,做如下设置

setsebool -P samba_export_all_ro on

4.在客户端可以看到/mnt里边的文件

 smbclient //192.168.100.200/mnt -U student

在这里插入图片描述

五.多用户访问控制
1.下载插件
下载 yum install cifs-utils.x86_64  -y
2.创建新的共享用户并且编辑

vim /root/smbpass
usernmae =kok
password =kok

3.赋于权限只能自己查看
chmod 600 /root/smbpass
4.挂载
mount //192.168.100.200/bbo  /mnt -o credentials=/root/smbpass,sec=ntlmssp,multiuser
5.在别的未经认证的用户中不能看到/mnt里边的内容,如果想看,必须用smb用户加以认证

在这里插入图片描述

su - hello
cifscreds --help
cifscreds: unrecognized option ‘–help’
Usage:
cifscreds add [-u username] [-d] <host|domain> 添加认证用户
cifscreds clear [-u username] [-d] <host|domain> 清除指定已认证的用户
cifscreds clearall 清除所有认证用户
cifscreds update [-u username] [-d] <host|domain> 更新认证信息
cifscreds add -u jay 172.25.254.210 认证jay用户
如果在输入密码的时候输入错误,我们需要清除缓存,重新认证

在这里插入图片描述
6.jay用户认证之后可以看到/mnt底下的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值