文件及目录的权限
1.文件属性的查看
ls + -l + 文件名称
具体属性的含义:
- rwx-rw-r-- 1 kiosk kiosk 0 Oct 2 17:05 file
[1] [2] [3] [4] [5] [6] [7] [8]
[1] ##文件类型
- #普通文件
d #目录
s #socket套接子
l #软链接
p #管道
c #字符设备
b #块设备
[2] ##读写权限
rwx|rw-|r--
@ $ *
@ #文件拥有者对文件能做的动作
$ #文件所在组的组成员能对文件做的动作
* #其他人对与文件能做的动作
[3] #文件内容被系统记录的次数
[4] #文件拥有者
[5] #文件所在组
[6] #文件大小
[7] #文件最后一次被更改的时进
[8] #文件名称
2.目录属性的查看
ls + -ld + 目录名称
具体属性的含义:
d rwxr-xr-x 3 kiosk kiosk 33 Aug 27 09:47 directory
[1] [2] [3] [4] [5] [6] [7] [8]
[1] ##类型(同文件)
[2] ##读写权限(同文件)
[3] ##子目录个数
[4] ##目录拥有者
[5] ##目录所在组
[6] ##目录中内容的属性的大小
[7] ##目录中文件增加或减少或被更名的时间
[8] ##目录名称
3.文件/目录用户/组的更改
对于文件:
chown + 用户名 + 文件名 ##更改文件所有人(拥有者)
chgrp + 组名称 + 文件名 ##更改文件所在组
对于目录:
chown + -R + 用户名 + 目录 ##更改目录本身以及目录中的子文件的所有人
chgrp + -R + 组名称 + 目录 ##更改目录本身以及目录中的子文件的所在组
4.权限的识别
ls -l 中2-10字符为文件权限(例如 -rwx-wxr-x)
rwx -wx r-x
用户权限(u) 组成员权限(g) 其他用户权限(o)
5.权限种类
r
对于文件,表示可以查看文件内容
对于目录,表示可以ls 查看目录中存在的文件名称
w
对于文件,表示可以更改文件的内容
对于目录,表示是否可以删除目录中的子文件或者子目录
x
对于文件,表示是否可以开启文件当中记录的程序
对于目录,表示是否可以进入目录中
6.权限的更改
chmod + 权限 + 文件名/目录名称
例:u=rwx=7 g=rwx=7 o=rwx=7 777(满权限)
u=rw-=6 g=r--=4 o=r--=4 644
注: r=4 w=2 x=1 -=0
7=rwx 6=rw- 5=r-x 4=r-- 3=-wx 2=-w- 1=--x 0=---
7.文件的默认权限
umask ##显示系统预留权限值
umask + 数字 ##临时修改umask值
注:##永久修改的方法
vim /etc/bashrc ##71行是普通用户的更改,73是超级用户的更改
vim /etc/profile ##60行是普通用户的更改,62是超级用户的更改
source /etc/bashrc ##刷新bash配置
source /etc/profile ##刷新系统配置
8.特殊权限
stickyid ###强制位
o+t ###之针对目录,当一个目录上有t权限时,
这个目录中的文件只能被文件拥有者删除
格式: chmod + o+t + 目录名(t=1)
等同于 chmod + 1777 + 目录名
sgid ###粘制位
g+s ###针对目录,在目录中创建的文件都自动归属到目录所在组,针对
二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,
而是以二进制文件的所有组的身份执行的
格式: chmod + g+s + 文件名/目录名
等同于 chmod + 2777 + 文件名/目录名
suid ###冒险位
u+s ###针对文件,文件记录动作在执行时是一文件所有人身份执行的,
与是谁发起的无关
格式: chmod u+s file
等同于 chmod + 4777 + 文件名/目录名
9.权限列表
acl ##指定特定的用户对特定的文件拥有特殊权力那么这个文件的普通权限也在权限列表中识别,
ls -l 看到的权限是不准确的
(1)文件详细权限的查看
getfacl + 文件名
##具体内容及含义如下:
file: mnt/file ##文件名称
owner: root ##文件的拥有者
group: root ##文件的组
user::rw- ##文件拥有者的权限
user:westos:rw- ##特殊指定用户的权限
group::--- ##文件组的权限
group:student:rwx ##特殊指定组的权限
mask::rwx ##权限最大值
other::--- ##其他人的权限
(2)权限的设定
开启权限:
setfacl -m u/g:用户名/组名:权限+文件名 #设定用户/组对文件可以读写执行
setfacl -x u/g:用户名/组名+文件名 #在权限列表中删除用户/组对文件的特殊权限
ls +文件名
-rw-rwx---+ 1 root root 0 Mar 28 02:39 file(有”+”出现)
关闭权限:
setfacl -b + 文件名 (关闭权限列表后”+”消失)
改变mask的值:
setfacl -m m:权限 + 文件名
(3)与mask有关的操作
mask值:是能够赋予用户权限的最大值
chmod + 权限 + 文件 ##改变mask值
注:当设定acl列表后,如果用chmod命令缩小/放大文件的权限,那么mask值也会被更改
#####更改前#####
file: mnt/file
owner: root
group: root
user::rw-
user:lee:rwx
group::---
mask::rwx
other::---
#####更改后######
file: mnt/file
owner: root
group: root
user::rw-
user:lee:rwx effective:--- ##此位置表示有效的权力
group::---
mask::---
other::--
#####恢复######
setfacl -m m:rwx /mnt/file ##用此命令可以恢复mask的值
(4)acl列表的默认权限
#权限针对于目录生效
#当对目录设定普通的权限列表后,是不能取定特定用户对在目录中新建的文件由指定权限的
#如果需要权限自动添加到新建文件上那么要设定目录的默认权限
setfacl -m d:u:用户名:权限 + 目录名 只对目录新建文件生效
setfacl -m u:用户名:权限 + 目录名 只对目录本身生效
setfacl -Rm u:用户名:权限 + 目录名 只对目录本身和原有文件生效