权限
个人理解权限就是系统 对于一个目录或者文件可不可以进行一些操作进行设置.
Linux将用户分为了两种: 超级用户(root),普通用户
超级用户:拥有系统中的最高权限,做任何事不会受到限制.
普通用户:只能做一些有限的操作
下图Linux下文件的详细信息:
一.Linux文件类型:
- -普通文件 比如.exe , 库文件
- d目录文件
- l 链接文件
- p 管道文件
- c 字符设备文件
- b 块设备文件
二Linux中常见的权限有:
1.读(r) :Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限,可以ls下进行查看
2.写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
3.执行(x):Execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限,可以cd进去的
4.“—”表示不具有该项权限
Linux中文件的访问者有三种: 拥有者,所属组,其他(other)
三文件权限设置的方法:
1添加/删除权限(chmod)
格式:
chmod 选项 用户表示符 +/-= 权限字符 文件名
- 选项: R 递归修改文件权限
- 用户标识符: u:拥有者 g:所属组 o:其它用户 a:所有用户
- +:增加 - :删除 =: 赋给
- 权限字符: r : 读 w :写 x :执行
还有一种更为简单的设置方式:
chmod 三位8进制数字 文件名
这三位数字是有顺序的,从左到右对应:拥有者, 所属组,其他
下面是这八进制数字对应表
2.修改文件拥有者(chown)
格式:chown [参数] 用户名 文件名
例如: chown -R name1 filename
3.修改文件或目录的所属组(chgrp)
格式:chgrp [参数] 用户组名 文件名
4.辨识文件类型(file)
格式:file [选项] 文件或目录...
注意:在进行以上操作是有可能有些操作不会在普通用户下被允许,我们可以在指令之前sudo 就可以了
粘滞位
粘滞位(粘着位)最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件. 假如一个目录具有粘滞位,则在other的X位会表现为 t,或者T. 大小写的区别在于,原来x位上有x权限,有了粘滞位则表现为t. 否则,表现为T
下面是一个具体的例子(没有设置粘滞位和设置粘滞位的)
没有设置粘滞位
1.进入root用户
2.进入 /workplace 目录下临时创建 file文件
3.登出root用户,进入个人用户.
4.进入 /workplace 目录下直接删除在root 用户创建的file
我们发现我们在root用户下创建的file竟然在普通用户下能被删除.
为了解决这个问题就有了粘滞位.
重复以上过程,稍微改变下.
设置粘滞位
1.进入root用户
2.在 /workplace创建myfile目录,再进入myfile创建file文件 然后退出到myfile将myfile权限全部开放,只是这次多了一个步骤,就是在原先的基础上对其他人o加上t粘滞位权限,在查看myfile目录详细信息时可以发现,other其他人后面多了一个t。
3.然后登出root用户,进入普通用户
4.再进入 /workplace/myfile目录下,删除file,这时我们会发现无法删除
注意点:
1.当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
- 一、超级管理员删除
- 二、该目录的所有者删除
- 三、该文件的所有者删除
2 目录的三个权限:
- 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
- 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
- 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
3.如果一个目录没有x执行权限,则该目录无法执行任何命令(包括cd),即使目录具有r读权限
4.如果一个目录有x执行权限但无r读权限,可以进入cd目录,但无读目录权限.但不能读出目录下的文件.