Linux中的两种用户
1.超级用户(root):拥有最高权限,可以再Linux系统下做任何事情,不受限制。
2.普通用户(user):在Linux系统下做有限的事情
值得注意的是普通用户和超级用户的命令提示符是不一样的,普通用户为”$“,而超级用户为”#“。
在命令行使用whoami可以查看当前用户身份,同时可以使用su来从普通用户切换为超级用户(也可以su 用户名的方式切到普通用户,此时不需要密码),ctrl+d可以退回普通用户。普通用户之间的su需要输入对应账户的密码。
以上说明了超级用户在用户切换上不受权限约束
身份切换并不会改变所处的目录位置
Linux中所有账户都需要密码。
Linux权限管理
文件访问者的分类
文件和目录的u--user
文件和目录的所有者所在的组的用户 g--group
其他人 o --other
文件类型和访问权限
什么叫权限?
一件事情是否允许你(用户)操作。
1.权限认证的是身份
2.权限也和事物的属性有关系
注意:other太多了因此并没有被列举出来
文件的类型:Linux系统中文件名后缀没有直接的意义,但是如果你将一个.c文件改为.txt将不能通过gcc编译,说明者不代表Linux系统上的软件不需要文件后缀。
文件类型
-:普通文件 文本、可执行程序、库
d:目录文件
b:块设备文件 磁盘文件
c:字符设备文件 键盘、显示器文件等等
p:管道文件 用来进行通信
基本权限
读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
“—”表示不具有该项权限
表示读写的方式可以分为字符表示和数值表示(八进制)
字符表示
八进制数值表示
权限的更改
1.chmod
功能:设置文件的访问权限
只有拥有者和root可以修改文件权限
R -> 递归修改目录文件的权限
格式:
1.chmod [参数] 对象 +/- 权限 文件名
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
2.chmod [参数] ---(三个八进制数字分别对应拥有者、所属组、其他人) 文件名
相对第一种,该方式可以一次性修改三方的权限
2.chown
功能:修改文件的所有者
格式:chown [参数] 用户名 文件名
3.chgrp
功能:修改文件的所属组
格式:chgrp [参数] 用户组名 文件名
4.umask 权限掩码
作用:用于设置新建文件和目录的默认权限掩码。
我们在命令行可以直接输入umask来查看其值,其实我们最初是创建的文件的编码为0666,新建的目录的文件为0777,但在实际情况中,因为一些因素的影响,我们可能需要改变其权限,所以就有了umask,它可以让我们创建目标权限的文件和目录。
修改 umask 权限值
凡是在umask中出现的权限,不会再最终创建的文件中出现
最终权限=起始权限&(~umask)
超级用户的umask默认为0022,普通用户默认为0002
问题
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
那么一个人可以进入他人目录(该目录oher权限也为rwx)删除他不能进入的文件(该文件other为---)
我使用root用户在该目录下创建了一个dic但是我切换为普通用户后我仍然可以删除这个文件,这说明 一个文件能否被删除并不是由本身决定,而是由这个文件所处的目录的属性决定。
我们为了让other可以写入文件但无法删除文件,我们可以将x改变为t,这就是粘滞位。(一般都是chmod +t 文件名的方式)
此时我们将dic中other的权限改为r-t
现在我们就不能在dic中随意删除文件了
此时可以在该目录中删除的用户:超级管理员、所有者