Linux系统下的CIFS服务(smb文件共享以及权限管理、smb的多用户认证)
SMB文件共享
CIFS全称(Common Internet File System),CIFS文件存储主要作用是实现存储分离。
Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,将linux中的资源共享出去。
Samba服务的组成部分
组成部分 | 解释 |
---|---|
Samba-common | Samba的支持文件,里面有Samba服务用到的命令 |
Samba-client | 客户端应用程序 |
– | 服务名称 |
Samba | 服务端应用程序 |
/etc/samba/smb.conf | 主配置文件 |
服务端口:通常使用TCP/445进行所有连接。还使用UDP137、UDP138和TCP/139进行向后兼容。
在实际的生产环境中,用户的信息注册假设存储在某一台服务器中,那么当这台服务器无法正常工作就会影响用户的认证和使用。而如果采用将该服务器的所有数据进行同步和备份,会造成资源的大量浪费,所以我们使用共享仓库,任何一个服务器都能访问这个共享仓库里的数据,这样无论哪台服务器崩溃,都不会对用户产生影响
samba服务的搭建(将linux中的资源共享出去)
服务端
1.
yum install samba ##samba主服务 yum install samba-common ##包含samba服务的命令 yum install samba-client ##samba的客户端软件
2.
systemctl start smb.service netstat -antulpe | grep smb ##查看服务端口是否开启
3.火墙允许samba服务和samba-client
fireall-cmd --permanent --add-service=samba fireall-cmd --permanent --add-service=samba-client firewall-cmd --reload firewall-cmd --list-all
4.samba用户的建立.使用smbpasswd创建samba账户和密码,smb用户必须是本地存在的用户。
pdbedit -L ##查看samba用户,当前系统中没有samba用户
因为smb用户必须是本地存在的用户,所以需要先建立本地用户
useradd westos ##建立westos用户 useradd lee ##建立lee用户 smbpasswd -a westos ##添加westos为smb用户 smbpasswd -a lee ##添加lee为smb用户
如果添加本地不存在的用户为samba用户,则会出现如下报错
pdbedit -L ##查看samba用户
在客户端上
1.下载客户端软件
yum install samba-client -y
2.
smbclient -L //172.25.254.165(服务端IP) ##列出的登陆信息
共享方式一:
smbclient //172.25.254.165/westos -U westos ##以westos用户访问172.25.254.65主机中的/westos中的文件 !ls ##查看现在可以操作的文件
共享方式二:
mount //172.25.254.251/westos /mnt -o username=westos,passwd=westos
测试
在客户端上传一个文件,然后在服务端中查看用户家目录,查看是否上传成功。
这时就算客户端宕机也不造成影响,因为服务端数据可以共享给其他正常工作的主机
samba服务权限设置
——————————————————————————————
更改用户的权限
mkdir /westos vim /etc/samba/smb.conf
更改samba的工作组
workgroup = WESTOS
对该文件进行隐藏
browseable = no ##隐藏 browseable = yes ##不隐藏
browseable =
7ff7
yes ##不隐藏
browseable = no ##隐藏
在客户端进行测试:登录看是否能查看
对所有用户可写
writabel = yes
此时还是不可写,是因为目录本身对westos用户不可写
对用户/用户组成员可写
write list = lee ##对用户lee可写 write list = +lee ##对lee的用户组成员可写 write list = @lee
但是对于westos用户不能写入
将westos用户加入lee用户组即可(lee是westos用户的一个附属组)
用户/用户组成员可登录
valid users = lee ##lee用户可登录 valid users = +lee @lee ##lee用户组的成员
valid users = lee ##lee用户可登录
westos用户不能挂载
valid users =+lee ##lee用户组的成员可登录
匿名用户使用本地用户的身份登录
map to guest = bad user ##将匿名用户映射到本地用户 guest ok =yes ##允许用户登录
匿名用户不允许登录
更改配置文件
、
将本地用户当成一个超级用户
admin users = westos ##把westos设置成超级用户身份
——————————————————————————————
selinux,samba加密
对于用户自己创建的文件目录,在selinux=enforcing时,可以改变文件的安全上下文对文件权限的更改
mkdir /westos_smb ##创建目录 touch /westos_smb/file{1..10} vim /etc/smaba/smb.conf 在配置文件中写入: [WESTOS] ##以该配置文件中的目录名称为主 comment =Share Directory path = /westos_smb ##文件路径
在selinux=enforcing的情况下,直接在客户端上使用
mount //172.25.254.165(服务端IP)/WESTOS /mnt -o username=westos,password=westos ##无法挂载成功
或者
smbclient //172.25.254.104/WESTOS -U westos
原因是由于selinux的作用,使得服务不可用
解决办法
对文件进行samba服务的安全上下文的修改,使得samba共享可以使用
semanage fcontext -a -t samba_share_t '/westos_smb(/.*?)?' restorecon -RvvF /westos_smb/ ##刷新安全上下文
在客户端重新测试
mount //172.25.254.165(服务端IP)/HAHA /mnt -o username=westos,password=westos ##正常挂载
或者
smbclient //172.25.254.104/WESTOS -U westos ##ls正常查看
但是还是无法可写,若要可写,则在配置文件中
vim /etc/smaba/smb.conf
在配置文件中写入:
[HAHA] ##以该配置文件中的目录名称为主
comment =Share Directory
path = /westos_smb ##文件路径
writable = yes ##给予写权限
chmod 777 /westos_smb ##满权限不安全,可以使用权限列表 setfacl -m u:westos:rwx /westos_smb/ ##对westos用户给rwx权限
对于系统级目录
对于系统级的目录,不能通过添加安全上下文的方式,这样的做法可以使samba服务正常访问,但是因为是系统级别的目录,这样会让其他服务无法正常访问该目录。
解决办法:bool值的设定
以/mnt 这个系统目录为例
vim /etc/smaba/smb.conf 在配置文件中写入: [mnt] ##以该配置文件中的目录名称为主 comment =Share System /mnt Directory path = /mnt ##文件路径
直接在客户端进行访问,访问失败
解决
getsebool -a | grep samba ##c查看当前samba服务所涉及到的selinux相关的权限 setsebool -P samba_export_all_ro on(1) ##--p表示永久设定该bool值为1,开启
在客户端测试,该文件只开启只读,只能查看,没有写权限
服务端 setsebool -P samba_export_all_rw on(1) ##读写权限开启
这种操作会下降samba的安全级别,但是可以让其他服务在selinux开启的情况下,正常访问/mnt这个目录
samba的多用户认证
在客户端登录时,登录必须是以已经认证的用户进行登录
yum install cifs-utils -y
vim /root/smbpasswd 写入用户和对应的密码 username=westos password mount //172.25.254.104/WESTOS /mnt -o credentials=/root/smbpasswd,sec=ntlmssp,multiuser
测试
cifscreds add -u lee 172.25.254.104 ##如果密码输入不正确,不会报错,但还是无法查看
cifscreds add -u lee 172.25.254.104 ##直接重新认证会报错 cifscreds clearall ##先清除 cifscreds add -u lee 172.25.254.104 ##再次认证
- Linux-Fedora 9系统管理之SMB (主要用于window与linux之间的文件共享)(一定要添加samba 用户,否则进不去共享文件)
- Linux系统基础知识(二)基于linux系统下的用户管理操作以及文件操作补充
- linux下可执行程序如何定位共享库文件以及如何让系统找到用户指定的库
- Linux系统运维初学之用户管理与文件权限
- linux下可执行程序如何定位共享库文件以及如何让系统找到用户指定的库 .
- Linux系统用户权限管及目录、文件的管理(基础详解,操作演示,通俗易懂)
- linux下可执行程序如何定位共享库文件以及如何让系统找到用户指定的库
- Linux~文件系统之SMB和CIFS服务
- Linux系统管理命令: 管理用户和文件权限
- linux下可执行程序如何定位共享库文件以及如何让系统找到用户指定的库
- linux中应用程序的安装以及用户和文件权限的管理
- linux管理(修改文件所有组,以及访问权限和新建用户密钥)
- 04 Linux系统管理—(管理用户和文件权限)
- Linux中目录命令、文件命令、远程管理命令、用户权限命令、用户管理命令、系统信息相关命令、打包压缩命令等
- Linux系统用户、组以及文件权限简介
- 浅谈Linux用户权限管理之三(文件与权限的设定)
- Linux系统中vim、find、bash环境变量、文件系统权限及磁盘管理相关命令
- Linux下简单配置SAMBA服务,实现与Windows系统文件共享.
- linux系统用户以及用户组管理
- 第七章 linux系统用户以及用户组管理