超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
命令:su [用户名]
理解权限,分两个方面来理解,一方面它是针对谁的,另一方面它具有哪些属性。
1.访问者的分类
文件和文件目录的所有者:u---User文件和文件目录的所有者所在的组的用户:g---Group其它用户:o---Others
2.文件类型与访问权限
文件类型
d:文件夹-:普通文件l:软链接(类似Windows的快捷方式)b:块设备文件(例如硬盘、光驱等)p:管道文件c:字符设备文件(例如屏幕等串口设备)s:套接口文件
基本权限
i. 读( r/4 ): Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限ii. 写( w/2 ): Write 对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限iii. 执行( x/1 ): execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限iv.“—” 表示不具有该项权限
3.文件权限值的表示方法
字符表示法
8进制表示法
4.文件权限的设置方法
a)chmod
功能: 设置文件的访问权限格式: chmod [ 参数 ] 权限 文件名说明:只有文件的拥有者和 root 才可以改变文件的权限
+:向权限范围增加权限代号所表示的权限-:向权限范围取消权限代号所表示的权限=:向权限范围赋予权限代号所表示的权限用户符号:u:拥有者g:拥有者同组用o:其它用户a:所有用户
b)chown
功能 :修改文件的拥有者格式 : chown [ 参数 ] 用户名 文件名
举例:
c)chgrp
功能 :修改文件或目录的所属组格式 : chgrp [ 参数 ] 用户组名 文件名
举例:
当然,可以修改拥有者的同时,修改所属组
5.常见权限问题
1.进入一个目录,需要什么权限?
通过观察,不难发现,进入目录,需要 x 权限。
2.umask
为什么创建一个目录和普通文件,目录对应的权限分别为 775(rwx | rwx | r-x)
普通文件对应的权限为 664 (rw- | rw- | r--),为什么呢?
一个目录被创建,起始权限是从 777 开始的;
一个普通文件被创建,起始权限是从 666 开始的。
但是 777 与 775 并不同,666 与 664 也不同,为什么呢?-----这里引入 umask(权限掩码)
目录或者文件被创建,最终的权限 = 起始权限 & (~ umask)
即,先对 umask 按位取反,然后与 起始权限 按位与,结果就是最终权限。
下面,我们只针对 o(Other) 进行验证:
3.粘滞位
我们发现, o(Other) 列最后一个字母是 t,这个是什么意思呢?------这个就是粘滞位
那么粘滞位有什么用呢?
我们惊奇的发现,在 根目录 下的一个目录中创建的一个普通文件,虽然 wmh(普通用户)不能进行写入,对应的权限是 r-- ,不能写入能理解,但是居然能删除。
这里我想说的是,目录中的文件,能不能被删除,不是看文件针对某个对象有没有 w 权限,而是该文件所在的目录有针对该对象,有没有 w 权限。
引入粘滞位的目的就是,当多个用户在同一个目录中创建,修改文件时,本来属于 o(Other) 用户,并没有对应的修改,或者查看,或者删除的权限,但是该文件所在的目录针对 o(Other) 有 w 权限,这就导致了虽然 o(Other) 不能查看,修改,删除,但是却真的能删除。
引入粘滞位以后,该文件就不能被删除了,达到了谁创建的谁才能删除(root 除外,因为root无所不能)。
我们发现,引入粘滞位后,属于o(Other) 的 wmh 删除不了了。