ACL-设置权限,selinux,网络用户介绍,nfs客户端的使用

取消acl权限:

setfacl -x u:用户名 file/dir

setfacl -x g:组名 file/dir

在这里插入图片描述

设置mask权限


mask权限的作用是,临时让已经配置过acl的权限生效。

设置mask权限:setfacl -m m::r-- hosts(文件)

取消mask权限:setfacl -m u:任意一用户名即可:rw- hosts(文件)

在这里插入图片描述

针对权限,权限位—时,实际上文件还是可读的,因为other有r权限,规则是:只要mask没有设置—,则mask权限生效,如果mask设置了—,则other生效

在这里插入图片描述

设置默认权限(只能对目录执行)


设置默认权限以后,该文件后选择的所有文件权限都为该默认权限。(注:设置默认权限仅对新文件生效,之前存在的文件权限不会改变其属性。)

设置默认权限:setfacl -m d:u:用户名:rwx 文件

在这里插入图片描述

可以看到创建默认权限的时候给了x权限,但查看的时候并没有x权限,是因为创建文件的时候最多的权限是666,也就是rw,所以无论通过何种方式创建文件,都不可能有x权限的,只有后期手动的修改权限。

取消默认权限:setfacl -x d:u:用户名 文件

在这里插入图片描述

selinux

======================================================================

selinux工作方式


selinux是用于提高系统安全性的;

selinux会为所有的文件及进程分配一个标签,这个标签我们称之为标识,或者 上下文,只有特定的上下文的进程,才能访问特定的上下文资源。 如果上下文不匹配,即使权限是777,依然不能访问。

在这里插入图片描述

setenforce 1:开启selinux

setenforce 0:关闭selinux

systemctl stop firewalld

selinux使用方法:先开启selinux,然后安装APACHE阿帕奇(httpd)服务:yum -y install httpd,启动服务:systemctl start httpd, 启动以后打开浏览器网址栏输入该服务器ip,能正常访问内容即可:

在这里插入图片描述

现在http访问的是/var/www/html/index.html 里的文件,所以可以简单定义里面内容,然后就会正常显示啦,如,echo 11111111 > /var/www/html/index.html (也可以在/var/htm/中新建文件,然后输入网址的时候ip/新建文件名):

在这里插入图片描述

selinux的上下文


selinux会为所有的文件及进程分配一个标签,这个标签我们称之为标识,或者 上下文,只有特定的上下文的进程,才能访问特定的上下文资源。 如果上下文不匹配,即使权限是777,依然不能访问。

所以现在来说一下 上下文不匹配的情况是什么样:以上述的apache为例,在/var/www/html/**该目录下的任何文件都是可以通过浏览器正常访问的,这时候,我们在根目录下建一个www:mkdir /www ,然后 cd /var/www/html目录中,建一个/www的软连接:ln -s /www www :

在这里插入图片描述

在软连接www目录中新建index.html(默认访问该文件内容,所以该文件必须有) 并在里面写入任意内容:echo wwwwww > /www/index.html,这时候通过浏览器访问该软连接地址:

在这里插入图片描述

/var/www/html/www/index.html确实存在,为什么会Forbidden呢,这就是之前说的 上下文不一样,因为www实际是属于根目录下的www,并非/var/www/html/中的原生文件,所以解决这个问题就是,必须把上下文改成一致:

在这里插入图片描述

ps auZ |grep 服务名称:查看上下文信息

ls -ldZ 文件名:查看文件的上下文(::中间的便是上下文信息)

chcon -R -t 上下文 目录名称:修改上下文

在这里插入图片描述

修改成功以后,再次到浏览器访问该目录,即可正常访问了:

在这里插入图片描述

restorecon -R 目录名:撤销定义的上下文信息。

在这里插入图片描述

自定义文件默认的上下文信息:semanage fcontext -a -t 上下文 文件名,如:semanage fcontext -a -t httpd_sys_content_t '/www(/.)?’ ——(/.)?解释:()?代表括号里的内容可有可无,(/.*) /固定存在,.代表一个或多个,所以整体可以理解为递归/www(?前为不存在),(/.)?问号前内容存在:/www/adf,/www/adf/adf,/www/adf/adf/adf,…

在这里插入图片描述

删除自定义默认上下文:semanage fcontext -d -t 上下文 文件名

不知道上下文的情况下可以用–引用参考:chcon -R --reference=引用参考文件 文件名,如:chcon -R --reference=/var/www/html /www :

在这里插入图片描述

万能(通用)上下文,改为此以后就不存在上下文不匹配的情况了,chcon -R -t public_content_t 文件 :

在这里插入图片描述

selinux的几种模式


输入setenforce可以看到介绍selinux有1和0两种模式:

在这里插入图片描述

enforcing——强制模式,必须要满足selinux的条件,不满足的话,则阻止访问且警报。

在这里插入图片描述

permissive——允许模式,可以不满足selinux的条件,不满足也可以访问,但是有警报。

所以有时我们访问不了服务的时候,想想是不是selinux导致的,可以临时关闭selinux,就是切换到pemissive模式:setenforce 0(关闭selinux)→允许模式, setenforce 1(开启selinux) → 强制模式 , getenforce → 查看状态

在这里插入图片描述

修改selinux的默认选项:vi /etc/selinux/config 中修改SELINUX=项内容即可;

在这里插入图片描述

selinux的布尔值(真或假)


所谓的布尔值我们可以理解为一个开关功能;

getsebool -a :查看所有布尔值,其中on为启用,off为禁用

在这里插入图片描述

在没有selinux的情况下,我们要启用某服务的某功能,只要在这个服务的配置文件里配置即可,但有了selinux之后,你还得要让selinux同意开启这个功能才行;所以,需要记住一条规则,就是当我们搭建某个服务然后从客户端往这个服务里写东西写不进去的时候,请按照下面的三个步骤进行检查:

检查配置文件是否允许

检查文件系统的权限

检查selinux上下文或布尔值让以ftp为例: 先直接ftp上传任意一个文件,如果put或get后面不跟设备名,则代表当前设备名,就是使用ftp…这个设备名:

在这里插入图片描述

排查1:检查配置文件是否运行:vi /etc/vsftpd/vsftpd.conf,发些权限被关闭了,把#删掉,然后重启服务:systemctl restart vsftpd

在这里插入图片描述

现在重新上传文件,发现依然报错,只是报错与1中不一样:

在这里插入图片描述

排查2:检查文件系统的权限 ls /var/ftp -ld

在这里插入图片描述

然后ftp进入到新建的目录中重新上传文件:

在这里插入图片描述

排查3:检查selinux上下文或布尔值 → 先关闭selinux试试:setenforce 0 ,关闭后再次ftp中上传文件,可以正常上传:

在这里插入图片描述

然后把selinux开启:setenforce 1 ,然后查看布尔值:getsebool -a |grep ftp :

在这里插入图片描述

setsebool 服务 on / setsebool 服务 1:开启布尔服务(临时生效)

setsebool 服务 off / setsebool 服务 0:关闭布尔服务(临时生效)

在这里插入图片描述

setsebool - P 服务 on / setsebool 服务 1:开启布尔服务(永久生效,会自动写入进配置文件中)

setsebool -P 服务 off / setsebool 服务 0:关闭布尔服务(永久生效)

把ftp的布尔服务(2个服务连接一起的)开启:

在这里插入图片描述

因为配置文件中有说明:

在这里插入图片描述

然后在到ftp中上传文件 也是可以正常上传(为了简单起见,所以一般直接关闭selinux即可):

在这里插入图片描述

可以通过图形化配置selinux和布尔值:system-config-selinux &

安装:先通过yum查找包名:yum whatprovides */system-config-selinux

在这里插入图片描述

筛选出报名后 :yum -y install policycoreutils-gui-2.2.5-15.e18.x86_64

在这里插入图片描述

安装成功后运行:system-config-selinux &

在这里插入图片描述

在这里插入图片描述

说一个关于上下文的实例: 新增http端口号808:

因为http默认端口为80,所以可以筛选查看:netstat -nutlp | grep :80

在这里插入图片描述

vi /etc/httpd/conf/httpd.conf,然后在配置文件中 :Listen ,再该处添加一个808

在这里插入图片描述

重启服务:systemctl restart httpd ——会报错

在这里插入图片描述

查看80端口的上下文:semanage port -l | grep ‘\b80\b’

在这里插入图片描述

然后更改端口的上下文:semanage port -a -t http_port_t -p tcp 808 (把端口类型是tcp的端口号808的上下文改为http_port_t)然后重启,正常:

在这里插入图片描述

再到浏览器使用808端口访问文件,正常:

在这里插入图片描述

尝试修改ssh的默认端口为2000

网络用户介绍

=====================================================================

查看网络用户的详细信息:getent passwd 用户名

网络用户有2种方式

1、使用LDAP客户端(使用服务器较少的场景,家目录需要手动创建)

2、配置freeIPA(域的概念,适合服务器较多的场景,可以自动给网络用户创建家目录)

nfs客户端的使用

========================================================================

主服务器配置


先关闭防火墙:systemctl stop firewalld

vim /etc/exports :如果里面有内容,全删除

systemctl restart nfs-server, systemctl enable nfs-server:启动nfs服务并设置为开机启动

vim /etc/exports :在里面编辑以下内容(/aa是挂载目录)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值