比如rwxr-xr-x
linux中正是这9个权限位来控制文件属主(User)、属组(Group)、其他用户(Other)基础权限。
用户对资源来说, 有三种角色
User(u): 属主用户(文件所有者)
Group(g): 属组用户(包含组成员)
Other(o): 匿名用户(其他人)
//一个用户访问文件流程如下
1. 判断用户是否为文件的所有者,如果是,按所有者的权限进行访问
2. 判断是否为文件的所有组成员,如果是,就按组的权限去访问
3. 最终用户就是文件的其他的人,按其他人的权限去访问
rwx, rwx, r-x
User Group Other
权限与属主属组
文件权限对应表
字母 | 含义 | 对应权限 |
---|---|---|
r(read) | 读取权限 | 4 |
w(write) | 写入权限 | 2 |
x(execute) | 执行权限 | 1 |
-(没有权限) | 没有权限 | 0 |
如果权限位不可读、不可写、不可执行,则用-来表示。
权限修改命令chmod
chmod //修改文件目录权限rwx -R级联修改 mkdir dir //建立目录 touch dir/file //建立文件 示例1: chmod 777 dir/ //修改dir目录权限为777 chmod u+rwx,g+rwx,o+rwx 示例2: chmod 666 dir/file //修改file文件权限为666 chmod u+rw,g+rw,o+rw 示例3: chmod -R 766 dir/ //修改目录及子目录权限
属主属组修改命令chown
chown //更改属主以及属组 -R:级联修改 mkdir dir //创建目录 touch dir/file_test //创建文件 mkdir dir/dir_test //创建目录 示例1: chown bin dir/ //修改所属主为bin ll -d dir/ //检查属主 drwxr-xr-x 2 bin root 4096 7月 22 00:50 dir/ 示例2: chown .adm dir/ //修改所属组为adm ll -d dir/ //检查属组 drwxr-xr-x 2 bin adm 4096 7月 22 00:50 dir/ 示例3: chown -R root.root dir/ //递归修改目录及目录下的所有文件属主和属组
基础权限设置案例
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
读取权限(r) | 具有读取阅读文件内容权限 | 具有浏览目录及子目录 |
写入权限(w) | 具有新增、修改文件内容的权限 | 具有增加和删除目录内文件 |
执行权限(x) | 具有执行文件的权限 | 具有访问目录的内容(取决于目录中文件权限) |
文件权限与目录权限说明
1) 文件权限 r 代表文件可读 w 代表文件可编辑修改 x 代表文件可执行 通常情况下,文件至少要有r权限。例如,只有w权限,文件除了通过重定向方式外,是无法编辑的。 2) 目录权限 r 代表目录可读,即可查看该目录 w 代表目录可编辑修改,即目录下的文件可以改名、删除等(文件名信息存放在目录block中) x 代表目录可执行,即代表可进入该目录 通常情况下,目录至少要有x权限,即至少能进入该目录 3) 其他说明 文件的删除、创建、重命名需要至少有该文件所在目录的wx权限 4) Linux访问文件过程 例如:访问/a/b.txt ① 访问/的inode ② 通过/的inode找到/的block ③ 访问/的block,并且在/的block中找到a目录的名字与inode号码 ④ 访问/a的inode ⑤ 通过/a的inode找到/a的block ⑥ 访问/a的block,并且在/a的block中找到b.txt文件的名字与inode号码 ⑦ 访问/a/b.txt的inode ⑧ 访问/a/b.txt的block,访问文件内容 其中步骤③⑥⑧过程涉及权限,即通过inode访问block过程涉及权限。
默认权限
1) 文件的默认权限是644,目录的默认权限是755 2) 通过umask来控制默认权限,umask默认值为022 3) 默认权限计算方法 文件的默认最大权限是666,目录的默认最大权限是777,用默认最大权限减去umask值可得到文件、目录的默认权限,如果文件的结果为奇数,需要+1。 例如:修改umask为033后,新建文件的默认权限为644,新建目录的默认权限为744。 4) 修改默认权限 临时修改:umask 032 永久修改:编辑/etc/profile
权限测试实例
## 创建环境: [root@Test01 ~]# useradd oldboy [root@Test01 ~]# mkdir -p /oldboy/oldboydir [root@Test01 ~]# chown oldboy.oldboy /oldboy/oldboydir [root@Test01 ~]# cd /oldboy/oldboydir [root@Test01 oldboydir]# touch {01..5}.txt [root@Test01 oldboydir]# ls -la total 8 drwxr-xr-x 2 oldboy oldboy 4096 Jun 26 00:30 . drwxr-xr-x 3 root root 4096 Jun 26 00:28 .. -rw-r--r-- 1 root root 0 Jun 26 00:30 01.txt -rw-r--r-- 1 root root 0 Jun 26 00:30 02.txt -rw-r--r-- 1 root root 0 Jun 26 00:30 03.txt -rw-r--r-- 1 root root 0 Jun 26 00:30 04.txt -rw-r--r-- 1 root root 0 Jun 26 00:30 05.txt ## 修改为oldboydir目录为只读权限 [root@Test01 oldboydir]# ll -d drwxr-xr-x 2 oldboy oldboy 4096 Jun 26 00:30 . [root@Test01 oldboydir]# chmod u=r . [root@Test01 oldboydir]# ll -d dr--r-xr-x 2 oldboy oldboy 4096 Jun 26 00:30 . ## 在oldboy用户下,查看oldboydir目录 [oldboy@Test01 oldboy]$ ls -l /oldboy/oldboydir/ ls: cannot access /oldboy/oldboydir/05.txt: Permission denied ls: cannot access /oldboy/oldboydir/01.txt: Permission denied ls: cannot access /oldboy/oldboydir/03.txt: Permission denied ls: cannot access /oldboy/oldboydir/02.txt: Permission denied ls: cannot access /oldboy/oldboydir/04.txt: Permission denied total 0 -????????? ? ? ? ? ? 01.txt -????????? ? ? ? ? ? 02.txt -????????? ? ? ? ? ? 03.txt -????????? ? ? ? ? ? 04.txt -????????? ? ? ? ? ? 05.txt
总结:
1. 目录的x权限决定用户是否能进入目录,同时x权限可以显示目录中文件属性信息 2. 如果只有r权限,则目录中文件属性信息不能显示,会出现以上情况 3. 在目录中对文件进行创建、删除和重命名需要有目录的w权限 4. 因此对于目录来说,默认权限是755
rwx
对文件的影响
读取权限(r)
文件只有r权限: 具有读取阅读文件内容权限
1.能使用查看类命令cat、head、tail、less、more
2.不能复制、不能移动、不能编辑,不能删除
写入权限(w)
如果文件只有w权限: 具有新增、修改文件内容的权限
1.使用vim
编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容
2.使用echo、cat
命令重定向或追加重定向技术可以往文件内写入数据
3.不能复制、不能移动、不能删除,(删除需要看上级目录w的权限)
执行权限(x)
文件只有x权限,具有执行文件的权限。
//注意: 普通用户需要有r权限,管理员不需要
1.不能执行、查看、编辑、复制、移动、删除
权限小结:
文件rw权限, 可以查看和编辑文件内容
文件rx权限, 只能查看和执行文件、不能编辑、复制、移动、删除
目录rx权限, 允许浏览目录内文件以及子目录、并允许在目录内新建文件, 不允许创建、删除文件和目录
注意事项:
文件, x权限小心给予,建议赋予r或rw即可
目录, w权限小心给予,建议无特殊需求赋予rx即可