文件权限
概述
- 针对系统中的每一个文件linux可以做到不同用户对同一文件具有不同的操作权限
- 权限分为读(read,简称r);写(write,简称w);执行(execute简称x)
- 对文件而言,用户分为三类,文件拥有者(user简称U);同组用户(group简称G);其他组用户(other简称O)。而这就是UGO模型,将9个字符均分为3组用以描述三类用户的权限
查看文件权限
- ls -l
- 这里展现的第一列除第一个字符外的9个字符用UGO模型对该文件权限进行了描述
- 第一个字符
-
表示普通文件- d 代表目录
- i 代表链接(软链接)
- b 代表块设备(硬盘等存储设备)
- c 字符设备(以字节流的方式访问)
- p 管道文件(用于进程间通信)
- s 套接字文件(用于网络通信)
- 例:-rw-r----- 表示普通文件,文件拥有者有读写权限,同组用户有读权限,其他组用户没有权限访问
修改文件权限
- chmod
- 用于修改权限
- 基于UGO
- chmod 用户类型简写(+/-)权限简写 文件名
- 用户类型简写见概述(u,g,o)
+
为增加权限,-
为删除权限- 权限简写见概述(r,w,x)
- 例:chmod g+w o-r hello.txt 给同组添加写权限,给其他组删除读权限
- 基于421
- 4表示读,2表示写,1表示执行,0表示无权限
- 7(4+2+1)表示读+写+执行;6(4+2)表示读+写;5(4+1)表示读+执行
- 注意,不存在什么3(2+1)
- 例:chmod 751 hello.sh 表示拥有者有读写执行权限,同组有读和执行权限,其他组只有执行权限
修改文件拥有者
- chown
- 修改文件拥有者,后接[所有者]:[所属组] 文件名
- 所有者和所属组可以是名称或者是id
- 若省略
:
和所属组,则默认为修改文件的所有者 - -R
- 递归修改,包括子目录和文件
- 例:chown -R li:dev hello 则递归将该文件及其子文件的所有者修改为li,所属组修改为dev