文件权限
1.文件权限查看
ls -l file
ls -ld dir
ll file = ls -l file :ll是ls -l 的别名
ll -d dir
2.文件权限的读取
解析文件权限每部分对应的含义:
- | rw-rw-r-- | 1 | root| root| 189 | 9月 13 10:09 | test.txt
[1] [2] [3] [4] [5] [6] [7] [8]
[1]
文件类型
- 空文件,或者文本
d 目录
l 软链接
s socket套接字文件
b block块设备
c 字符设备
[2]
rw-rw-r--
1 2 3
1.文件的拥有者对文件能做什么操作
2.文件的所有组对文件的操作权限
3.其他人对文件的操作权限
[3]
对文件:文件的硬链接个数(文件内容被记录的次数)
对目录:目录中子目录的个数(不是文件)
[4]
文件的所有者
[5]
文件的所有组
[[6]
对文件:文件的大小
对目录:目录中子文件元数据的大小(所有元数据类加)
[7]
内容最后一次被修改的时间
[8]
文件名称
4.如何改变文件的所有者和所有组
chown | chgrp
chown username file|dir
chown user.group file|dir
chown -R user.grop dir 递归修改
修改文件夹及其内文件和文件夹的所有者和所有组
chgrp group filr|dir
chgrp group dir
5.对文件权限的修改
1)对权限的理解
r:
对文件:是否可以查看文件中的内容 -->cat file
对目录:是否可以查看目录中有什么子文件或子目录-->ls dir
w:
对文件:是否可以改变文件中记录的字符
对目录:是否可以对目录中子目录或者子文件的元数据进行更改
x:
对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
2)更改方式
chmod <u|g|o><+|-|=><r|w|x> file|dir
chmod u+x file1 将file1的所有者权限加上x
chmod g-r file2 将file2的属组权限去掉r
chmod ug-r file3
chmod u-r,g+x file4
chmod -r file5
chmod o=r-x file6 将file6的其他人权限设为r-x
也可以用数字r=4,w=2,x=1
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---
6.umask
umask是系统建立文件时默认保留的权限
umask 077 临时设定系统预留权限为077
永久更改umask需修改两个文件
vim /etc/profile 系统配置文件
vim /etc/bashrc shell环境配置文件
改了之后要重新加载配置文件修改才会生效
source /etc/profile
source /etc/bashrc
------------------------------------
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002 //普通用户的umask
else
umask 022 //超级用户的umask
fi
------------------------------------
7.特殊权限
1.sticky 粘制位
作用:只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir
2.sgid 强制位
作用: 对文件:只针对二进制可执行文件,当文件上有sgid时,任何人执行此文件产生的进程都输入文件的组
对目录:当目录上有sgid权限时,任何人在此目录三种建立的文件都属于目录的所有组
设定方式:
chmod g+s file|dir
chmod 2xxx file|dir
3.suid 冒险位
作用:只对二进制可执行文件有用,当文件上有suid时,任何人执行这个文件中记录的程序时产生的进程都属于文件的所有人
设定方式:
chmod u+s file
chmod 4xxx file
应用:给rm命令加上suid,并让他的所有者不是root,这样可以降级处理,避免不小心删根操作。