###########文件权限##############
##########1.文件权限存在的意义#######
系统最底层安全设定方法之一
保证文件可以被可用的用户做相应操作
#######2.文件权限的查看############
ls -l xxx
ls -ld xxx
ll xxx (为上两个命令的简写)
ll -d xxx
ls -R xxx 递归显示
#########3.文件权限的读取###########
[kiosk@foundation68 Desktop]$ ls -l 1
- | rw-r–r-- | 1 | kiosk | kiosk | 142 | Dec 31 06:25 | 1
【1】 | 【2】 | 【3】 | 【4】 | 【5】 |【6】 | 【7】 |【8】
【1】
文件的类型
- ##空文件,或者文本
d ##目录
l ##软连接
s ##sockt 套接字
b ##block 块设备
c ##字符设备
【2】
文件的权限
rw- |rw- |r–
[1] [2] [3]
[1] . u 文件拥有者对文件能做什么操作
[2]. g 文件所有组对文件能做什么操作
[3]. o 其他人能对文件做什么操作
【3】
对文件:文件硬链接个数(文件内容被记录的次数)
对目录:目录中子目录的个数
【4】
文件的拥有人
【5】
文件的所有组
【6】
对文件:文件的大小
对目录:目录中子文件元数据(matedate理解为文件的属性)大小
【7】
文件的内容被修改的时间
【8】
文件的名称
#######更改文件的所有者或所有组
chown xxx(用户名).xxx(组名) xxx(文件名)
chown -R xxx(用户名).xxx(组名) xxx(文件名)
chgrp xxx(用户名).xxx(组名) xxx(文件名)
chgrp -R xxx(用户名).xxx(组名) xxx(文件名)
下面实际操作:
首先我们先监控/mnt/这个目录: watch -n 1 ls -lR /mnt/
我们输入命令 更改 用户和组后 会发现文件的 用户和组分别发生变化!
#########如何改变文件的权限
1.对权限的理解
r
对文件: 是否可以查看文件中的内容 ----->cat xxx(文件名)
对目录: 是否可以查看目录中有什么子文件或者子目录 ----->ls xxx(目录名)
w
对文件: 是否可以改变文件里面记录的字符
对目录: 是否可以对目录中子目录或子文件的元数据进行更改
x
对文件: 是否可以通过文件名称调用文件内记录的程序
对目录: 是否可以进入目录
2.更改方式
chmod (u|g|o)(+|-|=)(r|w|x) xxx(文件名,目录名)
chmod u+x xxx
chmod g-r xxx
r w x
2 1 0
##########
r = 4
w = 2
x = 1
r-x|r–|--x
5 4 1
chmod 541 /xxx(文件名或目录名)
7=rwx (可以读写执行)
6=rw- (可以读写,不能执行)
5=r-x (可以读和执行,不能写)
4=r-- (只能读,不能写和执行)
3=-wx (不能读,可以写和执行)
2=-w- (不能读和执行,可以写)
1=–x (不能读写,可以执行)
0=— (什么都不行)
继续监视/mnt/文件
他们的文件权限发生了变化!
######umask####
umask 系统建立文件是默认保留的权力
umask 022 ##临时设定系统预留权限为022
永久更改umask
vim/etc/profile ##系统配置文件
if [ $UID -gt 199 ] && [ “/usr/bin/id -gn
” = “/usr/bin/id -un
” ]; then
umask 002
else
umask 022
fi
vim /etc/bashrc ##sell配置文件
if [ $UID -gt 199 ] && [ “/usr/bin/id -gn
” = “/usr/bin/id -un
” ]; then
umask 002
else
umask 022
fi
实验如下:
source /etc/profile ###让更改立即生效
source /etc/bashrc
验证刚才配置!
#######特殊权限##########
1.sticky ##粘制位
作用:
只针对目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件的所有者删除
设定方法:
chmod o+t xxx(目录名)
chmod 1xxx(权限数字) xxx(目录名)
2.sgid ##强制位
作用 :
对文件: 只针对与二进制可执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录: 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式:
chmod g+s xxx(目录名)
chmod 2xxx(权限数字) xxx(目录名)
3.suid ##冒险位
只针对与2进制可执行文件
当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
设定方法
chmod u+s xxx
chmod 4xxx(权限数字) xxx(目录名)
#######acl权限列表#######
1.作用
让特定的用户对特定的文件拥有特定权限
2.acl列表查看
-rw-rwxr-- + 1 root root 0 jan 3 04:50 xxx(文件名)
^
acl开启
getfacl xxx(文件名) ##查看acl开启的文件的权限
#file : xxx ##文件名称
#owner: xxx ##文件拥有着
#group: xxx ##文件拥有组
user::rw- ##文件拥有人的权限
user:xxx:rwx ##指定用户的权限
group::r-- ##文件拥有组的权力
mask::rwx ##能赋予用户的最大权力伐值
other::r-- ##关闭xxx(文件名)上的acl列表
3.acl列表的管理
getfacl xxx(文件名)
setfacl -m u:xxx(用户名):rwx xxx(文件名) ##设定用户对文件拥有rwx权限
setfacl -m g:xxx(组名):rwx xxx(文件名) ##设定组成员对文件的权限
setfacl -x u:xxx(用户名) xxx(文件名) ###从acl列表中删除用户
setfacl -b xxx (文件名) ###关闭文件上的acl列表
4.mask值
在权限列表中mask标示能生效的权力值
当用chmod减小开启cal的文件权限时mask值会发生改变
chmod g-w xxx(文件名)
如果要恢复mask值
setfacl -m m:rw xxx(文件名)
5.acl的默认权限设定
acl默认权限只针对目录设定
“acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限”
setfacl -m d:u:xxx(用户名):rwx /xxx/xxx(目录名)
setfacl -k /xxx/xxx(目录名) ##移除默认访问控制列表