文件权限
1.文件属性的查看
ls - l file
- ll file
-|rw-r--r--| 1 |root| root| 0 |Apr 2 16:17 |file
2.文件的类型
- 空文件
d 目录
l 软连接
s socket套接字
b block 块设备
c 字符设备
2.目录属性的查看
ls -ld test/
ll -d test/
drwxr-xr-x 2 root root 6 Apr 2 16:18 file
在/mnt/下新建3个文件和1个目录westos,在westos目录下在建3个文件,实施每秒监控 watch -n -1 ls - lR /mnt/ ,在新建一个lee用户和linux用户
3 chown命令 :更改文件/目录所有者
chown username file|dir ##更改文件的所有人
chown username:groupname file|dir ##更改文件的所有人所有组
chown -R username dir ##更改目录本身及里面所有内容的所有人
chgrp:更改文件/目录所有组
chgrp username dir ##更改文件的所有组
chgrp -R groupname dir ##更改目录本身及里面所有内容的所有组
4.文件普通权限
rw-|r--|r--
u g o
r :有读取权限 w:有写入权限 x:有执行权限
u部分(user) :文件所有人对文件可以读写
g部分(group):文件组成员对文件可读
o部分(other):其他人对文件可读
权限详解
1.r(读)
对文件:可以查看文件中的字符
对目录:可以查看目录中文件的信息
2.w(写)
对文件:可以更改文件内记录的字符。
对目录:可以在目录中子目录或子文件的元数据(子目录、子文件)进行更改,对子目录、子文件的写即是对目录、文件的重命名,删除等操作
3.x(执行权限)
对文件:可以运行文件内记录的程序动作。执行、运行文件
对目录:可以进入目录中
4.修改该文件权限
1.字符方式修改权限
chmod u-x file1 文件 file1拥有者去掉x权限
chmod g+w file1 文件 file1拥有组添加w权限
chmod u-x,g+w file1 文件 file1拥有者去掉x权,file1拥有组添加w权限
chmod u+rwx 文件 file1拥有着加读写执行权限
chmod ugo-r file2 文件 file2的用户组其他人去掉r权限
chmod ug+x,o-r file3 文件 file3用户和组添加x权限,其他人去掉r权限
chmod g=rx file1 不管之前文件所有组的权限如何,使file1所有组权限变成读、执行
chmod +r 或 +x file1 注意:文件file1对所有的用户增加读和执行权限,惟独写权限不能全部添加,优先给用户添加,为了安全,不给用户组和其他人添加。
2.数字方式修改该文件权限
文件权限数字表示方式
小科普:在linux文件权限表示中
r=4 (2的2次方)
w=2 (2的1次方)
x=1 (2的0次方)
-=0(-表示没有对应权限,故为0)
举个栗子:
rw-|r--|r--
u g o
u=rw-=4+2+0=6
g=r--=4+0+0=4
o=r--=4+0+0=4
所以文件权限表示为644
命令:chmod 修改后权限值 file
chmod 777 file --------> 该文件权限全部开放
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---
5.系统默认权限的设定(umask)
从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
所以系统设定新建文件或目录会去掉一些权限
设定方式:
umask 查看系统保留权限默认为022umask 077 修改该系统保留权限为077,此设定为临时设定,只当前shell中生效
永久设定方式:
编辑文件:vim /etc/bashrc
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002 -----------> 普通用户umask
72 else
73 umask 077 -----------> 超级用户umask
74 fi
编辑文件:vim /etc/profile
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002 ------------> 普通用户umask
61 else
62 umask 077 ------------> 超级用户umask
63 fi
以上两个文件umask设定值必须保持一致!
让设定立即生效:
source /etc/bashrc
source /etc/profile
6.特殊权限
1.sticky 粘制位
只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被其所有者删除。
设定方式:
chmod o+t 目录
t = 1,故又可以:
chmod 1xxx 目录
2.sgid 强制位(只针对二进制可执行文件)
对文件:只针对二进制可执行文件,
当文件有sgid权限时,任何人执行此文件产生的进程都属于该文件的文件所有组,和程序发起人组的身份无关
对目录:
当目录有sgid权限后,目录中新建的所有文件的所有组,都自动归属到目录的所有组之中,和文件建立者所在的组无关
设定方式:
chmod g+s file/dir
s = 2,故还可以:
chmod 2xxx file/dir(xxx代表文件的普通权限数值)
进程查看:ps ax -o comm,user,group | grep watch
3.suid 冒险位置
只针对与二进制的可执行文件,当文件上有suid时,任何人执行这个文件,程序产生的进程都属于该文件所有人,即以文件所有者的身份运行该文件。用于程序执行中权力的提升或者下降。
设定方式:
chmod u+s file
s = 4,故还可以
chmod 4xxx file (xxx代表文件的普通权限数值)
7.acl列表
1.acl定义
acl = 访问控制
指定特殊用户对特殊文件有特殊权限
drwxrwx---+ 2 root root 17 Jul 18 01:39 file
^
这个'+'表示acl开启,如果对应位置上是'.'则表示没有acl或者acl是关闭的
查看文件是否有acl列表:
getfacl file 查看acl开启的文件权限
file: file 文件名称
owner: root 文件所有人
group: root 文件所有组
user::rwx 拥有者权限
user:student:rwx 特殊用户权限
group::r-x 文件所有组权限
mask::rwx 能赋予用户的最大权力伐值
other::r-x 其他人权限
注意:当文件上有权限列表时,ls -l 能看到的权限是不真实的
2.acl列表管理
a. setfacl -m u:student:rwx file 设定用户对file文件有rwx权限
b. setfacl -m g:group:rwx file 设定组成员对file文件有rwx权限
3.删除acl列表中的用户或者组
setfacl -x u:student file 从acl列表中删除student用户
4.关闭acl列表
setfacl -b file 关闭文件上的acl列表
5.acl mask
mask:权限掩码(表示能生效的权力值)
mask用来标实能够赋予用户最大权限阀值
当存在acl列表时,用chmod减小acl的文件权限时mask值可能会发生改变
修复文件mask值:
setfacl -m m:rwx 文件名称
6.acl 默认权限设定
acl默认权限只针对目录设定
注意: 默认权限只对设定完成之后新建立的文件或者目录生效,而已经存在的文件不会继承默认权限。
setfacl -m d:u:student:rwx /mnt /westos
setfacl -k /mnt/westos