LINUX 安全运维-文件安全

辰星2年前技术文章1064
文件的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文件中进行编辑,然后重新登录系统就修改成功


相关文章

LINUX 安全运维-用户

Linux提供了各种不同的用户和角色,而有些用户和角色,系统根本不需要,应该删除他们,因为帐号越多,系统就越不安全!黑客可能利用他们,威胁服务器的安全。删除不需要的用户:for i in {adm,l...

PG的锁(二)

四、死锁PostgreSQL自动检测死锁情况并会自动回滚其中一个事务进行处理,从而其他事务完成。db1=# select * from t1 where id in (1,2,3);  id | i...

Hive删除外部表

Hive删除外部表

删除外部表操作例:1.首先我们创建一个外部表create EXTERNAL table if not exists mgtest(id int, name string)row format deli...

Linux高并发FastCGI优化

nginx中FastCGI相关参数优化:1)这个指令为FastCGI缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。fastcgi_cache_path /usr/local/ng...

8.0 新特性-Generated Invisible Primary Key

8.0 新特性-Generated Invisible Primary Key

说明MySQL Innodb 引擎采用的是 IOT(索引组织表)存储方式,主键的重要性就不言而喻。在早期版本用户如果没有显式指定主键,会自动生成隐藏主键 row_id 来组织 B+ 树,隐藏主键 ro...

ip_foward未开启导致slb健康检查异常

ip_foward未开启导致slb健康检查异常

现象:在slb上配置一条7层http监听,并开启健康检查,发现健康检查一直异常。处理步骤:针对slb健康检查异常的问题,可从以下四个方面入手,排查原因。1、确认服务器上业务程序正常启动,且在后端服务器...

发表评论    

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