Linux下CIFS文件共享服务:部署、用户、/mnt目录共享、权限、多用户认证等

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Leslie_qlh/article/details/99654072

CIFS文件共享服务


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

Samba是在LinuxUnix系统上实现SMB协议的一个免费软件,提供*CIFS(Common Internet File System)协议,由服务器及客户端程序构成,SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

1.samba服务器的部署

在服务端:
yum install -y samba-client.x86_64 samba-common.x86_64 samba.x86_64  安装客户端/命令/服务

systemctl start smb		开启smb服务
systemctl enable smb	设置开机自启动


firewall-cmd --permanent --add-service=samba	防火墙添加smb服务
firewall-cmd --permanent --add-service=samba-client		防火墙添加客户端服务
firewall-cmd --reload		刷新
firewall-cmd --list-all		查看防火墙

在这里插入图片描述

在这里插入图片描述

2.添加用户

在服务端:
pdbedit -L    列出smb用户

useradd westos			添加用户1
useradd haohao				添加用户2
smbpasswd -a westos		为用户1添加登录smb的密码
smbpasswd -a haohao		为用户2添加登录smb的密码

在这里插入图片描述

netstat -antlupe | grep smb  	查看端口(此时为445/139)

在这里插入图片描述

在客户端:

yum install -y samba-client.x86_64 samba-common.x86_64 samba.x86_64 安装客户端/命令/服务
在这里插入图片描述
方法1:

smbclient -L //172.25.254.128 -U westos  列出共享家目录

smbclient  //172.25.254.128/westos -U westos  登陆westos用户

smb: \> !ls    查看可执行文件(用户端)

smb: \> put file  	(上传到服务端)

smb: \> get file 	(从服务端下载到用户端)

smb: \>quit	退出

在这里插入图片描述
在这里插入图片描述
方法2:

mount  //172.25.254.128/westos /mnt -o username=westos,password=westos   挂载服务端到用户端

cd /mnt  	进入/mnt目录下(也相当于进入服务端westos共享文件夹)

在这里插入图片描述

在服务端:
rpm -qc samba-common			查看配置文件

vim /etc/samba/smb.conf			编辑smb服务配置文件

workgroup = HAOHAO   			修改主机名

systemctl	restart	smb			重启服务

hosts allow = 172.25.254.228		允许此ip主机登录				
hosts deny  =172.25.254.228		禁止此ip主机登录

systemctl restart smb			重启服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其他不允许登陆:NT_STATUS_INVALID_NETWORK_RESPONSE
登陆失败:NT_STATUS_LOGON_FAILURE

3.SeLinux的影响

在服务端:

mkdir /westos_smb 建立共享目录

vim /etc/samba/smb.conf		 	编辑smb服务配置文件

	[HAOHAO]						共享名
        comment = Share Directoty	设置共享
        path = /westos_smb			指定共享目录
        #writable = yes				“写”权限
        
systemctl	restart	smb			重启服务

touch /westos_smb/file{1..3}		在共享目录建立文件

vim /etc/sysconfig/selinux 		编辑SeLinux文件,开启功能

reboot					重启

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在客户端:
smbclient -L //172.25.254.128/westos -U westos 可以看到[HAOHAO]

mount //172.25.254.128/HAOHAO /mnt -o username=westos,password=westos	挂载服务端共享文件夹到用户端上

cd /mnt
ls				尝试查看文件,此时不可以查看
ls: reading directory .: Permission denied

在这里插入图片描述
在这里插入图片描述

在服务端:
setenforce 0				设置SeLinux为警告态

在这里插入图片描述

在客户端:
ls			此时可以查看

在这里插入图片描述

在服务端:
setenforce 1				设置SeLinux为开启
semanage fcontext -a -t samba_share_t '/westos_smb(/.*?)?'	更改共享目录安全上下文

restorecon -RvvF /westos_smb					刷新

在这里插入图片描述

vim /etc/samba/smb.conf		修改smb服务配置文件

writable = yes			服务器读写功能开启

systemctl	restart	smb			重启服务

在这里插入图片描述

在客户端:
touch file4		尝试建立文件,此时无法创建
touch: cannot touch ‘file4’: Permission denied

在这里插入图片描述

在服务端:
chmod 777 /westos_smb或setfacl -m u:westos:rwx /westos_smb	给目录或者用户满权限

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在客户端:
touch file4		尝试建立文件,此时可以创建

ll		查看详细信息,file4的所有者和所属组id均为1001(此处对应的时服务端的westos用户)

在这里插入图片描述
在这里插入图片描述

注:服务端和客户端对于文件的拥有者可能不同,但是id肯定一致

4./mnt系统目录的共享

服务端:
vim /etc/samba/smb.conf			编辑smb服务配置文件

		[mnt]					共享名
        comment = Share System mnt directoty		设置共享mnt系统目录
        path = /mnt				指定路径
        #writable = yes			”写的权限“
        
systemctl	restart	smb			重启服务

在这里插入图片描述

客户端:
smbclient -L //172.25.254.128 -U westos 查看可以看到/mnt
mount //172.25.254.128/westos  /mnt  -o username=westos,password=westos

在这里插入图片描述

服务端:
setenforce 0		设置SeLinux为警告态

在这里插入图片描述

客户端:
ls		此时可以查看

在这里插入图片描述

服务端:
setenforce 1		设置SeLinux为开启
客户端:
ls		此时不可以查看

在这里插入图片描述

服务端:
getsebool -a |grep samba				查看samba服务的权限

setsebool -P samba_export_all_ro=on		打开只读权限

getsebool -a |grep samba				查看samba服务的权限

在这里插入图片描述

客户端:
ls					此时可以查看

在这里插入图片描述

服务端:
vim /etc/samba/smb.conf			编辑smb服务配置文件
writable = yes					开启“写”的权限

systemctl	restart	smb			重启服务

在这里插入图片描述

客户端:
touch file3					尝试建立文件,此时不可以建立

在这里插入图片描述

服务端:
setfacl -m u:westos:rwx /mnt		给用户westos满权限
客户端:
touch file3					尝试建立文件,此时不可以建立

在这里插入图片描述

服务端:
setsebool -P samba_export_all_rw 1		打开读写权限
getsebool -a |grep samba			查看samba服务的权限

在这里插入图片描述

客户端:
touch file3					可以建立

在这里插入图片描述

注:当开启samba_export_all_ro/samba_export_all_rw 权限后,再次登陆非系统文件,只授权可以不用修改selinux和安全上下文

5.相关权限

在服务端:
vim /etc/samba/smb.conf			编辑smb配置文件
browseable = no			不允许列出

systemctl	restart	smb			重启服务

在这里插入图片描述

在客户端:
smbclient -L //172.25.254.128/HAOHAO -U westos			查看信息

在这里插入图片描述

在服务端:
vim /etc/samba/smb.conf			编辑smb配置文件
browseable = yes		允许列出(如果注释此条权限默认为yes)

systemctl	restart	smb			重启服务

在这里插入图片描述

在客户端:
smbclient -L //172.25.254.128/HAOHAO -U westos			查看信息

在这里插入图片描述

在服务端:
vim /etc/samba/smb.conf			编辑smb配置文件

write list = haohao		允许写的用户(可在haohao前面加字符+或者@表示haohao组所有用户)  

systemctl	restart	smb			重启服务

在这里插入图片描述

在客户端:
mount //172.25.254.128/HAOHAO /mnt -o username=westos,password=westos	挂载
cd /mnt
touch fil6			此时不可以创建			
touch: cannot touch ‘fil6’: Permission denied

umount /mnt			卸载

mount //172.25.254.128/HAOHAO /mnt -o username=haohao,password=haohao	挂载

cd /mnt
touch fil6			此时可以创建

在这里插入图片描述

在服务端:
vim /etc/samba/smb.conf			编辑smb配置文件

valid users =haohao				允许浩浩登录

systemctl	restart	smb			重启服务
在用户端:
mount //172.25.254.128/HAOHAO /mnt -o username=haohao,password=haohao	可以成功挂载
在服务端:
vim /etc/samba/smb.conf			编辑smb配置文件

map to guest = bad user

guest ok = yes		游客登陆是否允许

systemctl	restart	smb			重启服务

在这里插入图片描述
在这里插入图片描述

在客户端:
mount //172.25.254.128/haohao /mnt -o username=guest		匿名挂载	

smbclient //172.25.254.128/haohao		匿名登录,需要输入密码直接回车即可

在这里插入图片描述

在这里插入图片描述

vim /etc/samba/smb.conf			编辑smb配置文件

guest ok = no						不允许游客登陆

systemctl	restart	smb			重启服务

在这里插入图片描述

在客户端:
smbclient //172.25.254.128/haohao		匿名登录,需要输入密码直接回车即可

在这里插入图片描述

在服务端:
vim /etc/samba/smb.conf			编辑smb配置文件

admin users = westos 	授权westos用户为root用户 (测试出来的时候组不会变,用户会是root)

systemctl	restart	smb			重启服务

在这里插入图片描述

在客户端:
touch file7					建立文件

在这里插入图片描述

6.smb的多用户认证

需授权westos用户root权限
客户端:

yum install cifs-utils -y 安装多用户挂载软件

vim /root/smbpasswd		编辑用户认证文件

username=westos			服务端用户
passwd=westos			登录密码

在这里插入图片描述

mount //172.25.254.128/HAOHAO /mnt -o credentials=/root/smbpasswd,sec=ntlmssp,multiuser  此时root用户可查看,普通用户不可读写
su - student				切换到客户端本地用户
cd /mnt			进入共享目录
ls			尝试查看
ls: reading directory .: Permission denied

在这里插入图片描述

su - lee				切换到客户端本地用户
cd /mnt			进入共享目录
ls			尝试查看
ls: reading directory .: Permission denied
cifscreds add -u westos 172.25.254.128   使用服务端用户westos身份,客户端本地用户也可读写
ls

touch file8

ls

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Leslie_qlh/article/details/99654072
今日推荐