Linux安全优化之权限详解
Table of Contents
一、linux中文件属性信息说明
二、linux中文件属性详解
三、linux中更改文件用户及用户组
四、普通文件系统权限理解
五、文件权限设定
六、系统默认权限的设定
七、特殊权限stickyid
八、特殊权限SGID
九、特殊权限SUID
十、facl的理解以及设定
十一、facl列表中的mask
十二、facl中的default默认权限
十三、各种权限匹配优先级
十四、chattr和lsattr命令
文件权限存在的意义:系统最底层安全设定方法之一,保证文件可以被可用的用户做相应操作/
文件权限的查看
ls -l file 查看文件属性
ls -ld dir 查看目录属性
ll是“ls -l"的别名,相当于Windows里的快捷方式。可以理解为 ll 和 ls -l 的功能是相同的, ll 是 ls -l 的别名。
ll file
ll -d dir
ln -s /mnt/ 创建快捷方式
2.1、文件的类型
- |rw-r--r-- | 1 |root | root | 0 | oct 1 21:07 |lee
[1] [2] [3] [4] [5] [6] [7] [8]
第一个[1]-表示文件的类型其还有如下类型:
- ##空文件,或着文本
d ##目录
l ##软连接
s ##socket套结字
b ##block块设备
c ##字符设备
2.2、文件的权限
[2] rw- | rw-|r--
1 2 3
1.[u]文件拥有着对文件能做什么操作
2.[g]文件所有组对文件能做什么操作
3.[o]其他组能对文件做什么操作
[3] 1 ##文件内容被系统记录的次数(硬链接的个数)
[4] 文件的所有人root
[5] 文件的所有组root
[6] 0 文件的大小
[7] oct 1 21:07 文件最后一次被修改的时间
[8]lee 文件的名称
1..7为用户的属性,在数据中叫matadate原数据,原数据的每一个类型用一个字节来记录1byte,名称的一个字符是一个字节。
对目录而言[3]表示目录中子目录的个数,[6]表示子文件或者子目录属性的大小即字节的大小。
ls -l /mnt/ 查看/mnt/目录下的文件的属性
ls -lR /mnt/ 查看/mnt/目录下所有文件的属性(包括子目录中的文件)
chown lee westos 改变文件的用户
chgrp westos westos3 改变文件的用户组
chown lee.student westos 同时改变文件的用户和组
chown -R lee test 改变目录的所有人的同时也更改目录里面所有内容的所有人
chgrp -R westos westos3 改变目录的所有组的同时也更改目录里面所有内容的所有组
chown -R lee.student westos 同时改变目录的用户和组同时也更改里面内容的所有人所有组
r
对文件:是否可以产看文件中的内容 ---->cat file
对目录:是否可以查看目录中有什么子文件或者子目录---->ls dir
w
对文件:是否可以改变文件里面记录的字符
对目录:是否可以进入目录
x
对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
修改文件的权限:字符、数字、权限复制三种方式。
字符:
chmod <+|-|=>
chmod u+x /mnt/file1
chmod g-r /mnt/file2
choomd ug-r /mnt/file3
chmod u-r,g+r /mnt/file4
chmod -r /mnt/file5
chomd o=r-x /mnt/file6
数字:
rwx = 111=7
--- = 000=0
r-- = 100=4
-w- = 010=2
--x = 001=1
利用八进制数字的方式修改权限
复制权限
chmod --reference=/mnt/test /mnt/westos3
umask 系统建立文件是默认保留的权力
umsak 077 ##临时设定系统与刘权限为077
永久更改umask
vim /etc/profile ##系统配置文件
59 if [$UID -gt 199]...
umask 002 ##普通用户的umask
else
umask 077 ##超级用户的umask
vim /etc/bashrc ##shell配置文件
59 if [$UID -gt 199]...
umask 002 ##普通用户的umask
else
umask 077 ##超级用户的umask
source /etc/profle #让更改立即生效
source /etc/bashrc
1.sticky ##粘制位
作用:只针对目录生效,当一个目录上有sticky权限时在这个目录中的文件只能被文件的所有者删除。
chmod o+t dir
chmod 1xxx dir
任何用户均可以对/pub/进行新建文件和删除文件
利用sticky粘制位之后,在一个目录当中的的文件只能被文件的所有人删除
之前最后一位x变成t.表示目录权限当中有sticky权限。
tom建立的file2不能被lee删除(有t和没t就是能不能删除别人的文件。)
sgid ##强制位
作用
对文件: 只针对与二进制可执行文件
当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录:
当目录上有sgid权限时任何人在此目录中建立的文件都属于所有组
设定方式:
chmod g+s file|dir
chmod 2xxx fike|dir
suid ##冒险位
作用
对文件: 只针对与二进制可执行文件
当文件上有suid时任何人执行此文件产生的进程都属于文件的所有人
设定方式:
chmod u+s file
chmod 4xxx file
1.作用
让特定的用户对特定的文件拥有特定的权限
2.acl列表查看
-rw-rwxr--+ 1 root root 0 Jul 21 15:45 file
^
acl开启
getfacl file ##查看acl开启的文件的权限
# file:file ##文件爱你名称
#owner:root ##文件拥有者
#group:root ##文件拥有组
user::rw- ##文件拥有人的权限
user::kiosk:rwx ##指定用户的权限
group::r-- ##文件拥有组的权力
mask::rwx ##能赋予用户的最大权力阀值
other::r-- ##其他人的权限
3.acl列表的管理
getfacl file
setfacl -m u:username:rwx file ##设定username对file拥有rwx权限
setfacl -m g:group:rwx file ##设定group组成员对file拥有rwx权限
setfacl -x u:username file ##从acl列表中删除username
setfacl -b file ##关闭file上的acl列表
mask值
在权限列表中mask表示能生效的权力值
当用chmod减小开启acl的文件权限时mask值会发生改变
chmod g-w westos
如果要恢复mask值
setfacl -m m:rw westos
5.acl的默认权限设定
acl 默认权限只针对目录设定
“acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件时不会继承默认权限”
setfacl -m d:u:student:rwx /mnt/westos 开启default权限
setfacl -k /mnt/westos 关闭default权限
userperm > acluser > aclgroup > groupperm >otherperm
开放权力不一定会使得权力变得更大,需要根据自己开放的权力来选则,可能变大也可能变小。
lasttr -d /mnt/westos 查看目录权力
chattr +i /mnt/westos/ 用chattr命令防止系统中/mnt/westos/关键文件被修改:
chattr -i /mnt/westos/ 解除设定
chattr +a /mnt/westos/ 那么只能在文件中増加数据,但是不能删除和修改数据
i既不能建立也不能删除,a时能建立不能删除,是对系统的一种保护措所。