Linux 权限
权限管理的重要性
linux系统未来可能有程序员、用户、数据库管理员、项目经理等各种角色各种级别人使用,甚至还有身份不明的人链接到linux,不良的权限管理容易导致系统崩溃、数据丢失等问题。
权限的含义
| 权限字母 | 含义 | 对文件 | 代表命令 | 对文件夹 | 代表命令 |
|---|---|---|---|---|---|
| R(r) | 读 | 查看文件内容和复制文件 | more, cat, less, cp, head, tail |
查看文件夹下的文件 | ls |
| W(w) | 写 | 编辑文件 | vi |
在文件夹内创建和删除文件 | rm, touch |
| X(x) | 执行 | 执行该文件 (执行必须具备r权限) | - | 切换到文件夹 | cd |
权限访问控制列表

~/Documents$ ls -l
drwxrwxr-x 9 yangzy yangzy 4096 4月 4 00:43 blog
drwxrwxr-x 3 yangzy yangzy 4096 4月 12 23:53 Java
drwxrwxr-x 3 yangzy yangzy 4096 3月 19 20:33 Python
# 以blog为例,首字母d表示blog为文件目录
# 第一个rwx表示文件所有者对其权限
# 第二个rwx表示文件所属组对其权限
# 第三个r-x表示其他用户对其权限
# `9`表示链接数,即有多少个文件或目录链接到这个目录
# `yangzy yangzy` 第一个`yangzy`表示文件所有者,第二个`yangzy`表示文件所属组
# `4096`: 表示文件的大小,单位为字节
文件权限修改命令:chmod
- 命令所在路径:/bin/chmod
- 执行权限:所有用户
- 功能描述:改变文件或目录权限
- 语法:chmod [options] mode file
- -r 递归地修改目录及其子目录中的文件权限。
- -v 显示修改后的权限信息。
- -c 仅在权限发生变化时显示修改后的权限信息。
mode可以使用不同的格式来表示权限,包括:- 数字形式:用三位数字表示权限,每位数字分别代表文件所有者、文件所属组和其他用户的权限;r是4(100),w是2(010),x是1(001),rwxrw-r–表示为764
- 符号形式:使用符号来表示权限,包括
u(所有者)、g(所属组)、o(其他用户)和a(所有用户),以及+(增加权限)、-(减少权限)和=(设置权限)# 修改目录testdir及其目录下文件为所有用户具有全部权限 $ chmod -r 777 testdir # 赋予文件testfile所属组写权限 $ chmod g+w testfile # 给文件的所有者添加执行权限 $ chmod u+x testfile # 给文件的其他用户删除所有权限 $ chmod o-rwx testfile # 给文件的所属组设置读写权限 $ chmod g=wx testfile
文件所有者修改命令:chown
$ chown [-r] new_user_name:new_group_name testfile
# 修改文件所有者
$ chown new_user_name testfile
# 修改文件所属组
$ chown :new_group_name testfile
# 修改文件所有者和所属组
$ chown new_username:new_groupname testfile
文件所有组修改命令:chgrp
$ chgrp [options] new_group_name file
一些常用的chgrp命令选项包括:
-R:递归地修改目录及其子目录中的文件的所属组-v:显示修改后的所属组信息--reference=RFILE:从参考文件RFILE复制所属组信息到指定文件
设置当前默认权限:umask
$ umask
0002
# 第一位0,表示特殊权限,固定
# 第二位0,表示用户权限,表示从预设权限(文件为7,目录为6)异或0
# 第三位0,表示用户组权限,表示从预设权限(文件为7,目录为6)异或0
# 第四位2,表示其他用户权限,表示从预设权限(文件为7,目录为6)异或2,去除掉写权限
# 设置权限
$ umask 0027
$ umask u=rwx,g=rx,o=
查看文件权限命令:ll/ls
$ ls -l testfile
$ ll testfile