Linux中的权限问题
root用户和普通用户
Linux中有root
用户(超级用户)和普通用户之分.
超级用户:可以再
linux
系统下做任何事情,不受限制
普通用户:在linux
下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
我们通过xShell
登录云服务器,使用root
用户登录,登录界面如下:
在使用root用户时,想要切换普通用户,使用su [用户名]
命令来进行切换用户
切换成功
文件访问权限
访问者的分类
- 文件和文件目录的所有者:u—User(中国平民 法律问题)
- 文件和文件目录的所有者所在的组的用户:g—Group(不多说)
- 其它用户:o—Others (外国人)
文件类型分类
- d:文件夹
- -:普通文件
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
drwxrwxr-x 2 laq laq 4096 Apr 14 10:26 learn
文件权限的表示方法:
权限符号 | 说明 | 八进制 | 二进制 |
---|---|---|---|
r– | 只读 | 4 | 100 |
-w- | 仅可写 | 2 | 010 |
–x | 仅可执行 | 1 | 001 |
rw- | 可读可写 | 6 | 110 |
r-x | 可读可执行 | 5 | 101 |
-wx | 可写可执行 | 3 | 011 |
rwx | 可读可写可执行 | 7 | 111 |
— | 无权限 | 0 | 000 |
创建一个文件后,权限已经设置好了,如何更改权限呢?
更改权限
chmod
设置文件的访问权限
命令的使用如下:
八进制使用如下:
chown
修改文件的拥有者
使用如下:
文件的拥有者发生了改变
chgrp
修改文件的所属组
使用如下:
文件的所属组发生了改变
umask
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask
的影响。假设默认权限是mask,则实际创建的出来的文件权限是:mask & (~umask)
将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002
目录的权限
可执行权限: 如果目录没有可执行权限, 则无法
cd
到目录中
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
粘滞位
就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉?
为了解决这个问题,Linux引入了粘滞位的概念
当一个目录被设置为"粘滞位"(用
chmod +t
),则该目录下的文件只能由
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除