Linux文件权限管理
介绍
如下图,使用ls -l(-l表示long format,长格式)查看当前目录的完整信息。左侧画框处就表示该文件的权限部分。当使用.AppImage软件时,往往需要为其添加可执行权限,否则无法运行。
如果对文件安全十分在意,可以为文件或目录设置最低权限。
| 权限 | 硬链接数量 | Owner | Group | 文件大小 | 时间 | 文件名 |
|---|

关于软硬链接可参考博客软链接和硬链接对比。
相关概念
[!NOTE]
文件和目录的权限存在差异,请仔细甄别。
cp复制文件或目录会同时复制其权限。
参数
-
-:- 位于起始位置,表示文件
- 位于之后位置,则表示空
-
d:表示目录(directory) -
r:read- 文件:可读该文件的实际内容
- 目录:可读该目录下的文件名,而不是文件内容
-
w:write- 文件:可写。对该文件内容可编辑,但是不能删除该文件
- 目录:可写。具有改变该目录结构的权利,即可以对目录内的所有内容进行修改。权限很大,需要小心使用,尤其是在服务器上。
- 创建新的文件和目录
- 删除已经存在的文件和目录(目录权限决定文件是否可以被删除),即文件被删除的权限不在文件自身
- 移动该目录内文件和目录的位置(包含了文件和目录的重命名)
- 等等
-
x:execute- 文件:可执行。并不是有可执行权限该文件就可执行。如果该文件自身不支持,比如
.txt文本,有可执行权限也无济于事 - 目录:能否进入该目录
- 文件:可执行。并不是有可执行权限该文件就可执行。如果该文件自身不支持,比如
用户
- 文件所有者(Owner):文件的所有者,通常是文件的创建者或者是被授予权限的人
- 群组(Group):类似某公司的同一个部门的同事的权限
- 其他用户(Other Users)
只有用户所有者和超级用户(sudo $ \rightarrow $ super user do)才可以修改文件或者目录的权限。

权限管理
chmod:改变文件权限chown:改变文件拥有者chgrp:改变文件所属群组
符号模式
操作对象
| who | 用户类型 | 说明 |
|---|---|---|
| u | user/owner | 文件所有者 |
| g | group | 文件所有者所在组 |
| o | others | 其他用户 |
| a | all | 所有用户,相当于ugo |
操作符
| 操作符 | 说明 |
|---|---|
| + | 添加权限 |
| - | 去除权限 |
| = | 重新设置权限 |
八进制语法
rwx对应三个bit位,1表示对应位置的权限生效,然后将该二进制转化为八进制(与转换为十进制的方法相同),常用的有777(rwx-rwx-rwx)、755(rwx-r-x-r-x)
| 八进制 | 权限 | 符号 | 二进制 |
|---|---|---|---|
| 7 | 读 + 写 + 执行 | rwx | 111 |
| 6 | 读 + 写 | rw- | 110 |
| 5 | 读 + 执行 | r-x | 101 |
| 4 | 只读 | r-- | 100 |
| 3 | 写 + 执行 | -wx | 011 |
| 2 | 只写 | -w- | 010 |
| 1 | 只执行 | --x | 001 |
| 0 | 无 | --- | 000 |
示例
chmod
chmod [-R] 权限 fileName/dirName
# 最常用的,添加可执行权限
chmod u+x file.txt
# 去除可执行权限
chmod u-x file.txt
# 设置权限
chmod u=rwx file.txt
# 如果该电脑只是自己使用的话,可以直接添加所有权限
chmod a=rwx file.txt
chmod 777 file.txt # 与上者相同
# 为当前目录下的所有目录和子目录添加可读权限。-R -> recursive 递归的
chmod -R u+r *
chown
chown [-R] newOwner fileName/dirNamechown [-R] newOwner:newGroup fileName/dirName,可以同时修改群组chown [-R] newOwner.newGroup fileName/dirName,写法二chown [-R] .newGroup fileName/dirName,只修改群组
chgrp
chgrp [-R] newGroup fileName/dirName
-R:表示可选参数,同上

浙公网安备 33010602011771号