一. Linux下的用户
我们购买服务器后最开始都是以root为用户名登陆的,这个root用户我们称为超级用户,他可以再linux系统下做任何事情,不受限制。除了超级用户root外我们还可以自己创建普通用户。
1. 普通用户的创建
首先要保证在root用户下(因为root权限最大)
操作
-
输入 adduser 用户名 创建用户 -
输入 passwd 用户名 输入密码,和再次确认输入密码 -
注意你输入的密码是不回显的,输错了也不能按取消键取消。两次都输入正确他会提示你密码更新成功,下次登录时就可以用你创建的这个普通用户登录了。
2. 普通用户和root用户的区别
- root用户可以在linux系统下做任何事情,不受限制;普通用户只能做有限的事情。
- root用户的命令提示符是 #,普通用户的命令提示符是 $
2. su指令(switch user)
作用:实现该服务器下各个用户之间的切换 用法:su 用户名
- su root时,root可以省略,也是切换到root用户
- 普通用户的切换切换需要输入对方的密码;普通用户切换到root需要输入root密码;root用户切换到普通用户不需要密码。
二. 文件的访问者
对于一个文件而言,访问他的不外乎有三个对象:拥有者(user)、所属组(group)、其他人(other)。这三个对象既可以是root用户,也可以是普通用户
三. 文件类型和访问权限
我们创建一个file.txt文件和dir目录,并用ls -l得到它们的详细信息
1. 文件类型
最左边表示的就是文件类型
- d:文件夹
- -:普通文件
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
2. 基本权限
三个为一组,从左到右分别表示拥有者,所属组和其他人的对这个文件拥有的权限。
- r:即read。对于文件而言具有读取文件内容的权限;对目录而言具有浏览该目录信息的权限。
- w:即write。对文件而已具有修改文件内容的权限;对目录而言具有删除和移动目录内容的权限。
- x:即execute。对文件而言具有执行文件的权限;对目录而言具有进入目录的权限。
- - 表示不具有该项权限。
- rwx的相对顺序是不变的
- x是r和w的先决条件,没有x权限,那么r和w就不能被指向
- 这些权限是针对特定对象的包括:拥有者、所属组、其他人
3. root和拥有者、所属组、其他人的关系
其实拥有者、所属组和其他人以及他们对应的权限主要针对的是普通用户,root用户的权限是不受他们限制的。即使对这个文件而言root是其他人,并且权限什么都没有即"- - -",root用户依然随便访问这个文件,而普通用户则要严格收到相应的权限的限制。
4. 文件权限值的表示方法
文件权限还有其他的表示方法,我们上面看得到就是其中的一种:字符表示法。
字符表示法
字符 | 说明 |
---|
rwx | 可读可写可访问 | rw- | 可读可写 | r- - | 只可读 | - - - | 无权限 |
二进制数值表示方法
权限符号(字符表示) | 二进制表示 |
---|
rwx | 111 | rw- | 110 | r- - | 100 | - - - | 000 |
八进制数值表示法
权限符号(字符表示) | 八进制表示 |
---|
rwx | 7 | rw- | 6 | r- - | 4 | - - - | 0 |
5. 文件访问权限的相关设置方法
设置文件的访问权限是指设置文件的拥有者、所属组的用户和拥有者、所属组和其他人对该文件的访问权限。只有root和该文件的拥有者才能修改。
5.1 chmod指令(change mode)
作用:设置文件的访问权限 用法:chmod 权限 文件名
①:用户表示符+/-/=权限字符 这种方法常用于对单个用户的权限进行设置,结合权限的字符表示法。
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围取消权限代号所表示的权限
- =:向权限范围赋予权限代号所表示的权限
- 用户符号:
- u:拥有者
- g:拥有者同组用
- o:其它用户
- a:所有用户
②三位8进制数字 适合一次对所有用户的权限进行更改,结合权限的八进制数值表示法,在chmod后面直接加上要设置权限的对应的三位八进制数字即可。
5.2 chown指令(change own)
作用:修改文件的拥有者 用法:chown 用户名 文件名
5.3 chgrp指令(change group)
作用:修改文件或目录的所属组 用法:chgrp 用户组名 文件名
6. umask指令(linux mask)
这个指令可以查看或修改当前用户的权限掩码,从而来控制我们所创建文件的默认权限。
- 新建文件夹默认权限mask=0666
- 新建目录默认权限mask=0777
- 普通用户的权限掩码(umask)默认为0002,超级用户的默认为0022
- 实际创建的文件的权限:mask & (~umask)
7. 粘滞位
有这样一种情况,有好几个普通用户共同完成一件工作,他们最后要把他们的工作成果都汇集到root用户里的一个tmp目录里,也就是把他们各自相应的文件拷贝或移到到tmp里。他们对于tmp这个文件而言是其他人,他们要移动或拷贝自己的文件到tmp里就要有写(w)的权限,这个权限不仅能给tmp里添加文件还能删除文件,也就是说其他普通用户可以把你移动到tmp里的文件删除!在w权限下既要保证你们可以把文件都添加到tmp里,又要你们删除别人的文件,两个都想要怎么办呢?
为了解决这个问题, Linux引入了粘滞位的概念:当一个目录被设置为"粘滞位"(用chmod + t + 目录名),则该目录下的文件只能由:
- 超级管理员(root)删除
- 该目录的拥有者删除
- 该文件的所属组删除
我们把tmp这个目录设置为“粘带位”就可以解决这个问题,这样的话我们放进去的文件只能被tmp目录的所有者(这里是root)、超级用户、文件的拥有者和所属组删除。而不会被其他人输出流,因为其他人,包括我们自己对tmp这个目录的访问权限都是t/T
四. 关于权限的总结
- root用户可以横行霸道,对所有用户的所有文件的访问都无视权限,而普通用户文件的访问要严格遵循他对于这个文件的身份(是拥有者、所属组还是其他人)结合相应的权限来访问。
- 有粘滞位的目录,其他用户虽然有w的权限,但是只能对这个写入文件,不能删除别人存在里面的文件。
|