文件权限和管理
三类对象
owner 属主,缩写u
group 属组,缩写g
other 其他,缩写o
三种主要权限
r:Read 读
w:Write 写
x:eXecute 执行
修改文件或目录的权限
(用字符设置) 1: chmod [选项] [ugoa][+-=][rwx] 文件或目录...
(用数字设置)2: chmod [选项] nnn 文件或目录...
-R:常用选项,递归修改指定目录下所有文件、子目录的权限
ugoa:表示权限设置所针对的用户类别,可以是其中字母中的一个或组合:
u(user)表示文件或目录的属主(所有者);
g(group)表示属组内的用户;
o(others)表示其他用户;
a(all)表示所有用户 (即u+g+o)。
+、-、=:表示设置权限的操作动作,
+代表添加某个权限;
-代表取消某个权限;
=表示只赋予给定的权限,并取消原有的权限。
rwx:用字符形式表示的所设置的权限,可以是其中一个字母或组合
nnn用三位八进制数字表示的权限。
r、w、x有着不同的作用
含义作用:
r(read)
可以读取文件的内容 ;
可以列出目录的内容,即目录下的文件的文件名
w(write)
以更改文件的内容:
可以创建或者删除目录中的任一文件
(只有w权限无法创建删除文件,需要和x权限一起使用)
x(execute)
可以作为可执行文件
可以切换到目录
权限
文件: ---、r--、r-x、rw-、rwx
目录:---、r-x、rwx
修改文件或目录的属主和属组
修改所属者
命令格式 : chown [选项] 新属主[:[新属组]] 文件或目录……
选项: -R 可递归设置指定目录下的全部文件(包括子目录和子目录中的文件)的所属关系。
修改所属组
命令1: chown [选项] :新属组 文件或目录……
命令2: chgrp [选项] 新属组 文件或目录……
文件和目录的特殊权限
SUID 权限
在程序的运行期间, 暂时获得该程序文件所属者的权限。
注意:u+s:
suid仅对二进制文件有效。
在执行过程中,调用者会暂时获得该文件的所有者权限。
该权限只在程序执行的过程中有效。
SGID 权限
文件
g+s
如 果 SGID 设置在二进制文件上, 则不论用户是谁,在执行该程序的时候,程序的所属组将会变成该程序文件的所属组。
目录
如 果 SGID 是设置在 A 目录上, 则在 A 目录内所建立的文件或目录的所属组, 将会是此 A目录的所属组。
Sticky Bit权限
0+t
当前只针对目录有效, 对文件没有效果。
■ 在 具 有 SBit 的目录下, 用户若在该目录下具有 w 及 x 权限 , 则当用户在该目录下建立文件或目录时, 只有文件拥有者与 root 才有权力删除。
设置文件和目录的特殊权限
0——表示不设置特殊权限
1——表示只设置sticky
2——表示只设置GUID权限
3——表示只设置SGID和sticky权限
4——表示只设置SUID权限
5——表示只设置SUID和sticky权限
6——表示只设置SUID和SGID
7——表示同时设置SUID、GUID、sticky3种权限
注意:先改所属者和所属组,再去改权限
ACL权限
1、ACL权限管理命令
设定ACL根
setfacl 选项 文件名
选项:
-m:设定 ACL 权限。
如果是给予用户 ACL 权限,
则使用 u:用户名:权限 格式赋予;
如果是给予组ACL 权限,
则使用 g:组名:权限" 格式赋予;
-x:删除指定的 ACL 权限;
-b:删除所有的 ACL 权限;
-d:设定默认 ACL 权限。
只对目录生效,指目录中新建立的文件拥有此默认权限;
-k:删除默认 ACL 权限;
-R:递归设定 ACL 权限。
指设定的 ACL 权限会对目录下的所有子文件生效;
#给用户和用户组添加ACL权限
给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名
给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名
#通过加上选项 -R 递归设定文件的 ACL 权限,所有的子目录和子文件也会拥有相同的 ACL 权限
setfacl -Rm u:用户名:权限 -R 文件名
#如果给父目录设定了默认的 ACL 权限,那么父目录中所有新建的子文件会继承父目录的 ACL 权限
setfacl -m d:u:用户名:权限 文件名
setfacl -md u:用户名:权限 文件名
删除ACL权限:
#删除指定用户的 ACL 权限
setfacl -x u:用户名 文件名
#删除指定用户组的 ACL 权限
setfacl -x g:组名 文件名
#删除文件的所有 ACL 权限
setfacl -b 文件名
查看ACL权限
[root@localhost ~]# getfacle 文件名
2、最大有效权限 mask
setfacl -m m:权限 文件名
权限掩码umask
新建文件的默认权限=0666-umask值
新建目录的默认权限=0777-umask值
查看当前用户的umask权限
umask
修改shell umask值(临时)
umask 000
修改shell umask值(永久)
vim /etc/profile(去到里面编辑信息并且保存)
拓展:修改文件的扩展属性
1、设置文件的扩展属性
命令格式 :
chattr [ -R ] [+-=acdijsuADS] 文件或目录名
-R : 递归设置指定目录及其目录下的所有文件和子目录的属性;
-V : 详细显示目录和文件的属性设置情况。
+ : 增加某项属性;
- : 取消某项属性;
= : 设置文件或目录 只具有哪些属性;
a : 只允许向文件追加数据,不允许任何进程覆盖重写文件的内容。
A : 设置不允许系统更新文件的最后访问时间。
i : 不可修改属性。具有该属性的文件不能被删除、更名或修改其内容。
c : 压缩属性,写入或读取时,系统会自动进行压缩或解压缩。
s : 安全删除属性。
即在删除一个文件时,会使用0填充原文件所在的存贮区,以使恢复工具无法恢复出文件的内容。
u : 可恢复性的删除。
对于具有该属性的文件,在删除时,系统会保留其数据块以便以后能恢复该文件的内容
2、查看文件的扩展属性
命令格式 :
lsattr [-adR] 文件名或目录名
-a:列出目录中的所有文件(包括隐藏文件)。
-d:列出目录文件的扩展属性。
-R:以递归的方式列出目录的属性及其内容。