目录
前言
当我们把指令全都熟悉了解了的时候,我们就要开始思考,有了这些操作,如果我们没有任何访问限制,那我们是不是就是乱糟糟的,没有任何章法,这显然是不可能的奥,下面我们就来介绍一下Linux中的权限的理解吧。
1.Linux权限的概念
Linux下一共有两种用户:超级用户(root)和普通用户
- 超级用户:所有文件的最终BOSS,可以在Linux下做任何事情,不受限制。
- 普通用户:在Linux下受权限的限制做有限的事情
超级用户的提示符是#,普通用户是$
切换用户
命令 :su [用户名]
1.1文件访问者分类
我们看见这个是不是会有个疑问这个是什么呀,为什么那么长呀,他具体代表着什么呢。我们在第一篇文章里面介绍了Linux下的文件属性。
- 文件和文件目录的所有者--------u------>user(中国公民)
- 文件和文件目录的所有者所在的组织--------g------>group(中国政府)
- 其他用户:---------o--------->others(外国)
1.2文件类型和访问类型
基本权限:
- 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
- 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
- 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- “—”表示不具有该项权限
思考一下为什么上面会有4、2、1呢,这是什么意思呢?怎么会这样来表示呢,下面引入文件权限值的表示方法
1.3文件权限值的表示方法
1.3.1字符表示方法
1.3.2 8进制表示方法
权限符号 | 八进制 |
r | 4 |
w | 2 |
x | 1 |
rw- | 6 |
r-x | 5 |
-wx | 3 |
rwx | 7 |
--- | 0 |
1.4文件访问权限的设置方法
1.4.1 chmod指令
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
注意点:只有文件的拥有者和root账户才能对文件的权限进行修改
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围取消权限代号所表示的权限
- =:向权限范围赋予权限代号所表示的权限 用户符号:
- u:拥有者
- g:拥有者同组用
- o:其它用户
- a:所有用户
测试实例:
也可以使用 三位8进制数字,来进行权限的修改。
测试用例:
1.4.2 chown 修改文件拥有者权限
主要是修改文件创建这拥有者的权限
sudo chown root dir
chown也可以直接讲两个的权限全部修改了
1.4.3 chgrp 修改文件所属者权限
修改组织内的权限,所属者的权限
sudo chgrp root dir
2.Linux权限管理(默认权限)
Linux默认权限由什么决定呢?
一般目录文件,起始权限从0666开始
一般目录文件,起始权限由0777开始
文件掩码umask指令
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
- 格式:umask 权限值
- 说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用 户默认为0002。
创建目录,需要什么权限?W可写,才能创建。
读取目录 ,需要什么权限?R 可读,才能读取。
进入目录,需要什么权限?X可执行,才能进入目录。
3.粘滞位
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除
总结
目录的可执行权限是表示你可否在目录下执行命令。 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录, 即使目录仍然有-r 读权限(这 个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件) 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读取权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。