1、文件属性
-(文件) d(目录) c(字符设备) l(链接文件) s(套接字) b(可供存储的接口设备)
例: ls -l file
(1)-表示文件
(2)rw-r—r--表示权限,分别为所属用户的权限 用户组的权限 其他用户的权限
(3)digital表示系统记录文件的次数
(4)所属用户
(5)所属用户组
(6)文件的大小
(7)最后一次修改的时间
Linux文件权限
文件:
r:可查看文件的内容
w:可修改文件
x:可把文件进行执行
目录:
r:可查看目录中子目录和文件
w:可对目录中的文件进行创建和删除(创建需还有x权力)
x:可进入目录,并显示目录中的元数据
例:
- d表示目录
- rwxr-xr-x表示权限,分别为所属用户的权限 用户组的权限 其他用户的权限
- digital表示目录中子目录的个数
- 所属用户
- 所属用户组
- digital表示子文件元数据大小
2、文件/目录权限修改
2.1修改dir的所有者为admin
chown admin dir1
2.2递归修改目录下本身即所有的目录和文件所有者为admin
chown -R admin dir
2.3修改file文件所有者和所有组为admin
chown admin.admin file1
chown admin:admin file1
2.4修改dir1目录所有组为admin
chgrp admin dir1
3、修改文件目录读写执行权限
格式:chmod [参数] files/dir
-c 输出被改变文件的信息
-R 递归遍历修改子目录(所有文件和子目录)
u 用户 g 所属组 o 其他人
+ 添加 - 去除 = 设定
r=4 w=2 x=1
例:chmod ugo=rw- file同等与chmod 666 file
将dir目录权限设定为744并显示改变后的信息。
4、umask
作用:umask用于设置用户创建文件或者目录的默认权限
使用umask可以查看默认权限
在创建文件时,权限将会减少111(去除执行的权力),执行和删除同样非常可怕。
临时设定umask,关闭终端umask恢复默认
4.1永久修改umask
Vim打开/etc/profile 找到以下语句
满足条件(系统用户)umask 002
不满足 umask 022
从中修改自己所需的值,保存退出。
接着Vim打开/etc/bashrc
修改umask,保存退出。
最后重新加载以上两个文件,或者重新登录linux,便可生效
source /etc/profile
source /etc/bashrc
5.特殊权限
5.1 sticky
chmod 1*** dir1 == chmod o+t dir1
##***为rwx对应421之和
其他用户无法删除目录下非所有的文件
5.2 sgid
目录:
chmod 2*** dir1 == chmod g+s dir2
##***为rwx对应421之和
在目录中新建的文件和目录都属于该目录的所属组
文件:(二进制可执行文件)
chmod 2*** file1 == chmod g+s file1
##***为rwx对应421之和
用户使用的该文件产生的进程都属于目录的所属组
查看进程ps -a -o user,group,comm
5.3 suid
文件:(二进制可执行文件)
chmod 4*** file1 == chmod u+s file1
##***为rwx对应421之和
用户使用的该文件产生的进程都属于文件的所有者,用户的身份可提升或者下降
6、acl列表管理
getfacl file 查看ac列表文件权限
# file: file
# owner: admin
# group: admin
user::rw-
group::rw-
other::r--
当前未添加指定用户的权限,添加后会出现mask::(能赋予用户最大的峰值)
acl权限使用场景:
例:班主任新建/homework目录用于本班同学存放作业,班主任是该目录的所有者,具有读写执行权力,本班同学在所属组中,也同样具有读写执行权力,其他人没有任何权力。其他班的想从该班作业拿去做参考,若将其他班的人加入所属组,同样也有读写执行权力,这并不符合实际,若将其他的权限改为读和执行,那非本学校的人也可以查阅,同样也不符合实际,这个时候就用到了acl列表管理
setfacl -m u:username:r-x file //赋予username可读执行权限(mask::r-x)
setfacl -m g:school:r-x file //赋予school组成员权限
setfacl -x u:username file //删除username权限
setfacl -x g:school file //删除school组成员权限
setfacl -b file //关闭file1的acl列表
-R 对目录中的文件递归处理
创建homework目录
对其他student1赋予权力
其他用户无法访问
注(错误操作):当开启acl列表后,使用ls -l命令查看文件在权限中将会出现+,使用chmod修改权限将会改变acl中mask,需使用setfacl -m m:(之前峰值权限) file1
6.1默认权限设置
setfacl -m d:u:username:r-x dir1(只能为目录)
将dir1目录下新创建的文件或者目录赋予该权限,之前存在的文件或者目录不起作用
清除默认设置
setfacl -k dir1
dir1目录下
赋予admin默认权限r-x