LINUX 安全运维-文件安全

辰星2年前技术文章593
文件的ACL

针对文件以及文件夹我们在新建的时候,通常会有一个默认的权限:image.png

[rootobogontmplmkdirtest
[rootcbogontmp]touchtestxt
[rootcbogontmp]it
totale
doxr-xr-x.2rootroot6Jan721:40test
n-p--r-a.lrootrootoJan721:41test.txt
[rootabogontmpi

我们会发现文件夹是755,而我们的文件是644,这是为什么呢,原因就是在linux中默认的umask权限,这个umask一般在我们的/etc/profile
#/r/share/doc/setupuidgidfie
ifISUID-qt199158Lid-gn2
:then
Umask002
else
Umask@
image.png
umask值:022代表什么意思呢,umask其实是权限的补码,就是在777权限上减去的值,所以我们文件夹的权限是7-0/7-2/7-2=755,那为什么我们文件的是644呢,因为创建文件的时候还需要减去一个默认的执行权限1,所以文件的权限就是7-1/7-3/7-3=644
平时我们修改文件权限的常用命令有这些:chmod、chown、chattr等,但是对于文件还有一个ACL(访问控制列表)机制,下面就以Centos7中来介绍一下文件的访问控制,对于ACL常见的命令有3个:setfacl、getfacl、chacl
LrootebogonD
totale
dnwxr-xr-x.2root
hoot6Jan1020:55test
root6
.lrootrooteJan1020:55test.txt
[rootabogonDesktoplcgetfacltest.x
file:test.txt
owner:root
group:root
USeR::RW-
group::f..
other::[..
LrootooogonDesktoplagetfacltes
file:test
owner:root
group:root
User::nx
group::r-x

image.png
通过上图我们可以发现对文件的描述是一样的,文件名、拥有着、所属组、以及他们对应的权限;对于getfacl获取文件的权限没有什么可说的,这里详细说一下对文件权限的设置:
首先是参数:
#!bash
setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-b:删除所有的acl参数
-k:删除预设的acl参数
-n:不重新判断是否有效
-d:设置预设的acl参数(只针对目录,在目录中的新建文件同样使用此acl)
-R: 递归设置后面的acl参数
-x:删除后面指定的acl参数
-m:设置后面指定的acl参数
针对acl参数:
#!bash
[u/g/o]:[username/groupname/空]:[rwx] filename
命令记录功能
在Linux系统中,有一个很重要的命令可以帮助我们曾经使用过的命令记录,但是也许有的时候我们并不需要这个功能,或者某些用户需要某些用户不需要,这个时候我们可以都配置文件进行配置:
配置文件:/etc/bashrc
在里面加入这4行
#!bash
HISTFILESIZE=1000 #保存命令的记录总数
HISTSIZE=1000 #history命令输出的命令总数
HISTTIMEFORMAT='%F %T' #定义时间显示格式
export HISTTIMEFORMAT #载入

HISTFILE=/root/test #里面命令保存目录
export HISTFILE #载入,重新登陆用户生效
export HISTCONTROL #忽略重复的命令
export HISTIGNORE="[ ]*:&:bg:fg:exit" #忽略冒号分割这些命令
我们如果不想使用保存命令将记录总数设置为0就可以了;
若需要“高性能构建Linux服务器”中提到的一个使用history记录用户的操作,在/etc/profile文件中添加如下代码:
</pre>
<div>
<div>#!bash</div>
<div>#history</div>
<div>USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'` #这句话就是先获取用户及IP信息,将标准错误输出到黑洞当中,然后使用awk命令获取最后一组参数,再通过sed将()替换掉;</div>
<div>HISTDIR=/usr/share/.history</div>
<div>#判断IP</div>
<div>if [ -z $USER_IP ]</div>
<div>then</div>
<div>USER_IP=`hostname`</div>
<div>fi</div>
<div>#判断是否存在日志目录</div>
<div>if [ ! -d $HISTDIR ]</div>
<div>then</div>
<div>mkdir -p $HISTDIR</div>
<div>chmod 777 $HISTDIR</div>
<div>fi</div>
<div>#生成日志日文件</div>
<div>if [ ! -d $HISTDIR/${LOGNAME} ]</div>
<div>then</div>
<div>mkdir -p $HISTDIR/${LOGNAME}</div>
<div>chmod 300 $HISTDIR/${LOGNAME}</div>
<div>fi</div>
<div>export HISTSIZE=4000</div>
<div>DT=`date +%Y%m%d_%H%M%S`</div>
<div>export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"</div>
<div>export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"</div>
<div>chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null</div>
</div>
<pre>
rootobogonDesktop]
p]#who-uami2-/dev/null
3063(192.168.174.1)
2016-01-1020:55
root
pts/日
rootcoogonDesktopjho
(192.168.174.1
uamiz/dev/null/awklprintFsede's/to
192.168,174.1
[rootcoogonDesktop]#
image.png

如果我们是想给不同的用户设置history配置,我们就可以在相对应的账户家目录中的.bash_profile文件中进行编辑,然后重新登录系统就修改成功


相关文章

证书过期问题之IPV6协议

证书过期问题之IPV6协议

1、首先了解情况:客户的SSL/TLS证书要过期了,所以进行了证书替换工作,但是替换之后,有一部分客户端还是提示证书已过期,如图所示:2、看这个报错是非常的清晰的,就是证书过期的问题,但是为什么同事没...

HDP部署Tez UI

HDP部署Tez UI

首先部署tomcat在官网下载apache-tomcat-9.0.22.tar.gz[root@hdp02 opt]# wget https://archive.apache.org/dist/tom...

Ranger部署

安装前准备1.1. 创建用户和用户组groupadd rangeruseradd -g ranger ranger1.2. 数据库配置mysql -uroot -p -hxxx.xxx.xxx.13 ...

数据建模用的哪些模型?

星型模型星形模式(Star Schema)是最常用的维度建模方式。星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。星形模式的维度建模由一个事实表和一组维表成,且具有以下特点:a....

EMR-java配置国密SM4加密

EMR-java配置国密SM4加密

首先找到bcprov-jdk15on-1.56.jar这个包<dependency>    <groupId>org.bouncycastle</groupId> ...

Kafka 手动调整分区副本存储

Kafka 手动调整分区副本存储

              在生产环境中,每台服务器的配置和性能不一致,但是Kafka只会根据自己的代码规则创建对应的分区副本,就会导致个别服务器存储压力较大。所有需要手动调整分区副本的存储。测试:创...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。