目录
一、Linux文件系统权限:
1、优先级:
user 权限覆盖 group 权限, group 覆盖 other 权限。
2、类别:
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
r(读取) | 可以读取文件内容 | 可以列出目录内容 |
w(写入) | 可以更改文件内容 | 可以创建或删除目录中的文件 |
x(执行) | 可以作为命令执行文件 | 目录可以作为当前的工作目录(但仍需 r 权限才能列出目录中的文件) |
注:管理员可以根据需求,对文件所属用户、所属组和其他用户设置不同权限。
3、查看权限及所有权:
ls -l 命令可显示文件的权限和所有权,使用 -d选项可显示所属目录的权限和所有权。
上述命令均以长列表格式显示,其中的第一个字符(下图红色方框处)表示文件类型,存在如下文件类型:
(1)- 是常规文件;
(2)d 是目录;
(3)l 是符号链接;
(4)c 是字符设备文件;
(5)b 是块设备;
(6)p 是命名管道文件;
(7)s 是本地套接字文件。
文件类型的后九位(下图绿色方框处)代表文件权限,每三个字符一组,每组分别对应所属用户、所属组、其他用户权限。
二、使用命令行管理文件权限:
1、chmod :
chmod 命令可从命令行修改文件与目录权限,有符号和数值两种方法。
(1)符号法:
上图中命令中 g+w 各部分含义如下:
1)g 表示用户类,所有用户类如下表所示:
用户类 | 集合 | 含义 |
---|---|---|
u | user | 文件的所有者 |
g | group | 文件所属组的组成员 |
o | other | 既不是文件所有者也不是文件所属组成员的用户 |
a | all | 以上三组 |
注:不提供用户类时,chmod命令将默认用户类为all。
2)+ 表示修改权限的操作符,所有操作符如下表:
操作符 | 操作 | 含义 |
---|---|---|
+ | add | 添加文件权限 |
- | remove | 删除文件权限 |
= | set exactly | 精确设置所提供的文件权限 |
3)w 表示要添加的权限,所有模式如下表:
权限 | 模式 | 含义 |
---|---|---|
r | read | 读取文件权限;列出目录权限 |
w | write | 文件或目录的写入权限 |
x(小写) | execute | 文件的执行权限(进入目录、访问目录中的文件与子目录) |
X(大写) | special execute | 目录的执行权限(在不更改大部分文件权限的情况下,访问目录的内容) |
注:X选项需谨慎使用。若某个文件设置有任何执行权限,则使用X选项也会为该文件设置指定的执行权限。
(2)数值法:
三个数字分别代表user、group、other的权限,用数字4、2、1代表读取、写入与执行权限。
以上图为例,7=4+2+1,故770表示为 user 设置 rwx 权限、为 group 设置 rwx 权限、为other设置无权限,如下图:
2、chown :
使用 chown 命令可更改文件或目录的所有权。
例如,将/home/aaa文件的所有者更改为operator1,所有组更改为database1,如下图:
再例如,将consultant1.txt文件的所有组更改为consultants,如下图:
注:(1)新文件由创建该文件的用户所有,只有 root 用户可以更改文件的所有者;
(2)root 用户或文件的所有者可以设置文件所有组,但普通用户仅可将文件所有权授予其所属的组(root 用户可将文件所有权授予任何组)。
三、特殊权限:
特殊权限构成了除了基本用户、组和其他类型之外的第四种权限类型,提供了额外的访问相关功能。
1、类型:
特殊权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
u+s(suid) | 以文件的所有者身份执行文件 | 无影响 |
g+s (sgid) | 以文件的所有组身份执行文件 | 将目录中最新创建文件的所有组,设置为此目录的所有组 |
o+t (sticky) | 无影响 | 对目录具有写入访问权限的用户,仅可删除自己拥有的文件(无法删除其他用户拥有的文件) |
2、设置特殊权限:
同样使用 chmod 命令来设置特殊权限。
(1)符号法:
例如,为文件aaa设置sgid权限(其余特殊权限的符号表示见上表),如下图:
(2)数值法:
用数值表示,setuid=4、setgid=2、sticky=1,使用时将欲设置的特殊权限对应数值加在表示文件权限的三个数值前,如下图:
四、文件默认权限:
创建新文件或目录时,系统会为其分配初始权限,初始权限受创建类型与umask值影响。
1、默认权限:
(1)如创建新目录,操作系统会为其分配权限 0777 (drwxrwxrwx) ;
(2)如创建文件,操作系统则为其分配权限 0666 (-rw-rw-rw-)。
2、umask命令:
不带参数运行 umask 命令将显示shell umask 的当前值。
在 umask 后加权限值可修改 umask 值。
3、修改默认权限:
/etc/login.defs文件为用户设置默认的umask,root用户可通过更改此文件修改默认权限。
标签:文件,管理,umask,用户,设置,Linux,权限,目录 From: https://blog.csdn.net/m0_68756914/article/details/143526221