Linux下有两种用户:普通用户 和 超级用户(root)
超级用户命令提示符是“#” ,普通用户的命令提示符是“$”
如何快速切换用户?
命令: su 用户名
如果切换成root用户还可以写成: su -
然后会让你输入用户的密码,这里输入的密码是不会显示的 ,输入完按一下回车就行了
文件的权限由两个决定因素: 角色 和 文件属性
由于Linux是一个多人多任务的环境,所以一个项目是由多个人共同完成,所以这里的group就起到至关重要的作用。例如:你和你的组在共同完成一个任务,你希望你完成的文件被组员看到,而不被非组员的任何人看到,那你只需要对g 和 o设置权限即可。
对于每一个角色都要规定文件的属性:所以我们把【rwx】作为一组,如果没有相应的权限就用 - 代替
例如:该文件只可以读 就表示为:【r–】
由于一个文件要面向三个角色,所以就有三组!
首先创建一个文件:
然后我们用 指令 ls -al
查看一下这个文件的详细信息
这里的每一个符号都代表一个意义
ls -l --full-time 文件名
来查看符号类型也就是前面所讲的 【rwx】表示方法:
表示 | 说明 |
---|---|
r w x | 可 读、写、执行 |
- - - | 不可读、不可写、不可执行 |
-wx | 可写、可执行 |
r-x | 可读、可执行 |
rw- | 可读、可写 |
- - x | 可执行 |
r- - | 可读 |
-w- | 可写 |
我们用二进制位来表示,如果在该位上有权限则为1,否则为0
例如:rwx 就为 111
表示 | 二进制 | 八进制 | 说明 |
---|---|---|---|
r w x | 111 | 7 | 可 读、写、执行 |
- - - | 000 | 0 | 不可读、不可写、不可执行 |
-wx | 011 | 3 | 可写、可执行 |
r-x | 101 | 5 | 可读、可执行 |
rw- | 110 | 6 | 可读、可写 |
- - x | 001 | 1 | 可执行 |
r- - | 100 | 4 | 可读 |
-w- | 010 | 2 | 可写 |
指令:chmod 八进制 文件名
例如我们想要把 一个文件名为 test 的文件 的权限修改成 rwx rwx rwx
就需要输入:chmod 777 test
例如:
如果想要把所有角色的权限修改成 rwx,则需要输入指令:chmod a=rwx test
指令: chgrp 新的用户组 老的用户组
但是注意: 要修改成的用户组一定要存在!
指令:chown 新用户名 文件名
但是注意: 要修改成的用户一定要存在!
目录权限也十分重要,前面讲过ls -al打印出来的文件信息的第一位是文件的类型,那么目录文件的开头第一个字母一定是d
那我们就要重新认识一下在目录文件下的文件的属性:
这里要重点理解x权限,如果每有x权限,就无法进入目录,也就无法读取、修改目录里面的内容,也就是每有x权限即使拥有rw权限也没有什么用
还有一个重点就是关于文件删除的问题:
不知道大家有没有发现,一个文件是否可以被删除,不是取决于文件的权限,而是取决于该文件所在目录对用户的权限,如果目录有w权限(当然肯定要有x权限),该用户就可以删除该目录里面的任何文件,所以目录的权限一般设置为r-x
但是root用户想删谁删谁,想进哪个目录进哪个目录,不管权限啥的
这种连用户自己创建的文件都进不去的,root照样能进去,还能写入读取
注意这里还有一种特殊的目录权限设置 -wx
这里虽然无法读取目录里文件名,但是可以对文件进行操作,就像一个盲盒一样虽然你看不见,但是你知道里面的东西,并可以对立面的东西修改
那如何让用户拥有目录w、x权限但是又不允许删除特点文件呢?
这里就要用到粘滞位:
指令:chmod +t 目录的路径
我们用root用户创建了一个目录dir
并在目录里创建了两个文件
对kksk使用粘滞位:
这是设置粘滞位之后,我们发现kksk的other权限的x的位置变成t
这里我们切成普通用户:
并执行删除命令,结果发现无法删除:
那么kksk只能由
以后再Linux操作系统下如果再遇到“permission denied ”的报错大概率是文件的权限出了问题,检查的时候可以从两个方面出发:文件的权限 和 文件所在目录的权限
其次 一定要注意目录的x权限所代表的意义!