一、Linux文件和目录权限管理
1、权限说明:
(1)r:表示具有读取文件内容的权限;
(2)w:表示具有新增,修改文件内容的权限;
(3)x:表示具有执行文件的权限,同时需要有r权限;
2、目录权限说明;
(1)r:表示具有浏览目录下有哪些文件的权限,必须同时用x权限才可以;
(2)w:表示具有新增、删除、移动目录内容文件的权限,同时需要有x权限;
(3)x:表示具有进入目录的权限;
3、权限获取顺序
先看用户是不是文件所有者,再看是不是所属组,最后看是不是其他用户,如果是其中一个,就有权限;
对普通用户来说,没有权限是不能访问资源的;
读写权限对root用户不受限制,但x权限受控制;
需要注意的是:对root用户来说,如果root没有x权限,只要属组和其他有x权限,root用户就能执行,而普通用户不行;
4、文件/目录的属主、属组和其他用户
有3种不同类型的用户可对文件和目录进行访问:文件所有者(属主)、同组用户(属组)、和其他用户(其他人),所有者一般指文件的创建者,该类用户可以将文件的访问权限赋予系统中的其他用户
二、文件和目录的默认权限与umask
(1)root用户默认umask为022,普通用户默认为002
(2)umask表示用户创建文件的默认权限,目录的最高权限为777,文件最高666;
(3)目录默认权限=777-umask;文件默认权限=666-unamk,所得结果奇数位加1
(4)目录新创建后的默认权限是755,文件创建后的默认权限是644;
三、改变文件/目录的访问权限——chmod
(1)文字设定法:
格式:chmod [who][+][-][=][mode] filename
操作对象:
• u表示“用户(user)”及文件或目录的所有者。
• g表示“同组(group)”及文件或目录属主有相同组ID的所有用户。
• o表示“其他(others)用户”
• 表示“所有用户(all)”
操作符号:
+ :添加某个权限。
- :取消某个权限。
= :赋予给定权限并取消其他所有权限。
设置mode所表示的权限:
r 读取权限,数字代号为“4”;
w 写入权限,数字代号为“2”;
x 执行或切换权限,数字代号为“1”;
(2)数字设定法:
格式:chmod [mode] filename
四、更改文件/目录的所有权——chown
格式:chown [option] [user|group] filename
选项:
-c或——changes:效果类似“-v”参数,但仅回报更改的部分; -f或--quite或——silent:不显示错误信息; -h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件; -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理; -v或——version:显示指令执行过程; --dereference:效果和“-h”参数相同;五、Linux系统文件的特殊权限(SUID,SGID,Sticky)
Set UID
当s这个标志出现在文件所有者的x权限上时,例如 “-rwsr-xr-x” ,此时被称为Set UID,简称为SUID的特殊权限。
SUID权限仅对二进制程序有效;
执行者需要对此程序具有x的可执行权限;
本权限仅在执行该程序的过程中有效;
执行者将具有该程序所有者的权限;
Set GID
SGID可以针对文件或目录设置。
当s标志出现在用户组的x权限上时,例如“-rwx–s–x”为Set GID,简称为SGID的特殊权限,SGID可以针对文件或目录设置。
对于文件来说:SGID对二进制程序有用;程序执行者对于该程序来说,须具备x的可执行权限;执行者在执行的过程中将会获得该程序用户组的支持;