一. 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的权限,但是只能对这个写入文件,不能删除别人存在里面的文件。














