权限管理
chgrp命令:修改文件和目录的所属组
chown命令:修改文件和目录的所有者和所属组
chmod命令
chmod [{ugoa}+{+=-}][文件或目录] 更改权限
chmod u+x tt.txt
chmod u+x,g-x tt.txt
rwx --421 权限数字 rwxrw-r-- 764
chmod [model = xxx][文件或目录]
chmod 640 tt.txt %%%基本操作要记住
chmod -R 递归修改
删除一个文件的前提是 需要本身对目录是由w权限的
chown [用户][文件或目录] 更改所有者
改变拥有者和群组
chown mail:mail test.txt root root -> mail mail
改变文件拥有者和群组
chown root: test.txt mail mail-> root root
改变指定目录以及其子目录下的所有文件的拥有者和群组
chown -R -v root:mail test1.txt
chgrp [用户组][文件或目录] 更改所有组
umask -S 指定在建立文件时预设的权限掩码。 查看权限掩码
linux系统下默认 新建立的文件没有执行权限 设计权限掩码 推导过程
777 rwx rwx rwx
022 --- -w- -w-
---------------
755 rwx r-x r-x目录
rw- r-- r--文件
777 rwx rwx rwx
077 --- rwx rwx
---------------
700 rwx --- --- 目录
rw- --- --- 文件
umask 077 若想创建目录文件是什么 反推 利用逻辑与和777推导 得到正确的的权限码
修改权限时先看目录的权限,然后是文件的权限,因目录的权限会限制文件的权限。
ACL访问控制权限
ACL目的是提供传统的 owner,group,others 的 read,write,execute 权限之外的细部权限设置。ACL 可以针对单一使用者,单一文件或目录来进行 r,w,x 的权限规范,对于需要特殊权限的使用状况非常有帮助。
目前系统默认开启ACL控制权限
getfacl
:取得某个文件
/
目录的
ACL
设置项目;
setfacl
:设置某个目录
/
文件的
ACL
规范。
setfacl [-bkRd] [{-m|-x} acl参数] 目标文件名
-m :设置后续的 acl 参数给文件使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除“所有的” ACL 设置参数;
-k :移除“默认的” ACL 参数,关于所谓的“默认”参数于后续范例中介绍;
-R :递回设置 acl ,亦即包括次目录都会被设置起来;
-d :设置“默认 acl 参数”的意思!只对目录有效,在该目录新建的数据会引用此默认值
针对常用设置的例子
setfacl -m:给用户或群组添加 ACL 权限
在改目录下新创建的文件和目录,并没有acl权限说明它们没有继承父目录的acl权限。
默认 ACL 权限的作用是,如果给父目录设定了默认 ACL 权限,那么父目录中所有新建的子文件都会继承父目录的 ACL 权限。需要注意的是,默认 ACL 权限只对目录生效。
setfacl -d:设定默认 ACL 权限
可以使用setfacl -k project删除对目录设定的默认ACL权限
setfacl -R:设定递归 ACL 权限
setfacl -x:删除指定的 ACL 权限
setfacl -x u:st project
setfacl -b:删除指定文件的所有 ACL 权限
setfacl -b project