文件权限管理
在Linu中<span style="color:#FF5252">文件或目录</span>一共有三种权限。
- 读取权限[r]<——>[4]: 浏览文件和内容的权限
- 写入权限[w]<——>[2]: 对浏览的文件或者目录进行修改
- 执行权限[x]<——>[1]: 对可执行的文件赋予执行权限
与文权限相关的用户分类
在Linux中可以对文件或者目录针对单独用户进行权限分配管理。
- 文件所有者[u]: 创建文件的用户,也就是文件的拥有者
- 同组用户[g]: 与文件中所属群组相同群组的用户,也就是和文件建立者在一个组内
- 其他用户[o]:既不是文件所有者,也不是和文件建立者同一个组下的其他用户。
查看文件和目录权限的方法
- 可以使用命令<code>ls -l [指定目录]</code>或者使用[ll]便捷方式来显示。
- 执行命令后可以看到
-rw-r--r-- 1 root root 1421 Aug 9 14:15 sql.cfg
drwxr-xr-x 2 root root 4096 Sep 1 14:52 sys.sql
#细分各类参数表示的意思
drwxr-xr-x #表示文件的权限类型
2 #表示文件的连接个数
第一个root #表示文件的拥有者
第二个root #表示文件的所属群组
4096 #表示文件的大小
Sep 1 14:52 #表示文件最后修改的时间
sys.sql #是文件的名称
再一步细分文件权限
代码语言:javascript复制-rwx rwx rwx 1 hellen staff autg 9 13:00 file.sh
#权限展示
- #代表的是文件类型,其中一共有三个类型
[-]代表的是普通文件
[b]代表的是块文件
[l]代表为链接文件(相当于快捷方式)
第一个rwx #代表的是文件所有者的权限
第二个rwx #代表的是同组用户的权限
第三个rwx #代表的是其他用户的权限
1 #和上方权限展示一样,代表文件连接个数
hellen #文件的所有者
staff #表示文件的所属组群
aug 9 13:00 #文件最后的修改时间
file.sh #文件的名称
权限的表示方式
代码语言:javascript复制r #表示可读[4]
w #表示可写[2]
x #表示可执行[1]
—— #表示无权限
数字代码对应421
操作用户的表示
代码语言:javascript复制u #表示文件的拥有者
g #表示同组用户
o #表示其他用户s
g #表示所有用户
更改文件的拥有者以及所属群组
- 改变文件的拥有者,并且可以修改文件所属群组。<code>chown [文件拥有者]:[群组] [文件]</code>
#例如
chown root file.sh #将file.sh文件的拥有者改为root
chown test:root file.sh #将file的拥有者改为test,并且所属群组也更改为root组
- 如何单独修改文件所属群组<code>chgrp [群组] [文件/目录]</code>
#例如
chgrp root file.sh #将file.sh文件的群组改为root
预设权限umask
- umask又可以叫被剪掉的权限,root用户管理文件默认值为0022,后三位有效,也就是022,普通用户管理文件的默认值是0002,最后三位有效也就是002
- 默认的最高权限减去umask的值就是说创建文件或者,目录的最终权限。
- 其中,默认文件的最高权限为666[rw rw rw],默认目录的最高权限为777[rwx rwx rwx]
- root用户最终权限减去umask为[644][755]
- 普通用户最终权限减去umask为[664][773]