权限指令
1、认识Linux下用户的分类
root:超级用户(管理员身份),root基本不受权限的约束
普通用户:我们新建的用户sudo useradd -m 名字
,sudo passwd 名字
设置密码,普通用户是受权限的约束的,在Linux下做有限的事情
1.1 如何切换这两个用户
linux中所有的用户,都要有密码,无论是root还是其他没即便是多个普通用户,也要设置对应的密码,root的账号密码和普通的用户密码不要设置相同的密码。
su
可以使身份变化
在root用户的情况下,直接su 用户名
即可以切换到指定用户下
但是在普通用户下su
然后系统会让输入密码,这里输入root的密码就会回到root用户下,还可以su 用户名
,输入指定用户名密码即可以切换到指定用户下
CTRL+d就可以退回上一个用户
1.2 对当条命令短暂提权成root
命令:
sudo whoami
提升成功后,就会以root的身份来执行命令
2、什么叫做权限
权限简称就是一件事情是否允许被你在
- 权限认证的是身份(权限和“人”有关)
- 权限也和事物的属性有关
2.1 文件属性:可读,可写,可执行
这里发现,文件改了名字后还是可以继续运行的,但是如果在编译的时候不是.c文件那么他就不会被识别,这是因为,gcc是一款在操作系统运行的软件,不代表其他Linux系统上运行的其他软件不需要后缀
文件权限的表示方法
字符表示方法:
8进制数值表示方法:
在root用户下,即可读也可写
3、见一见没有权限会有什么现象
4、权限的修改问题
4.1 文件权限修改(chmod)
格式:chmod[参数] 权限 文件名
功能:设置文件的访问权限
常用选项:
- R -> 递归修改目录文件的权限
- 说明:只有文件的拥有者和root才可以改变文件的权限
chmod命令权限值格式
用户表示符+/-=权限字符
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围增加权限代号所表示的权限
- =:向权限范围增加权限代号所表示的权限
- 用户符号:
- u:拥有者
- g:拥有者同组用
- o:其他用户
- a:所有用户
也可以通过二进制比特位来修改权限
4.2 修改文件权限拥有者(chown)
chown [参数] 用户名 文件名
给拥有这权限交换时,必须使用root才能修改
4.3 当拥有着和所属组是同一人情况
当拥有者和所属组是同一个人的情况下,拥有者只有读的功能,而所属组拥有读写的功能时会进行一次角色认证,在进行认证时,只能选择一个角色进行认证,即在什么角色下就起什么角色的作用,比如在拥有者下只会起拥有者权限的作用。
5、其他问题
5.1 起始权限问题
这里我们看到,刚创建的的目录的权限为775,刚创建的文件权限为664。
这时就有问题为什么刚创建的权限就是这样的呢?这时因为再Linux中存在默认的权限掩码,接下来我们来了解以下权限掩码。
权限掩码
umask
功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
当把权限掩码取消后,再创建出来的就是预备权限了。
5.2 目录文件问题
目录文件:
r:是否允许我们查看指定目录下的文件内容
w:是否允许我们在当前目录下进行创建,更改,删除
x:是否允许用户进入对应的目录
所以这就对应了为什么预备目录或者权限是以下这种情况:
5.3 普通用户权限之间问题
在普通用户下,我们是不可以从一个普通用户跳转到另一个普通用户的,如果要实现资源文件共享在两个用户下,就需要用root用户来创建一个目录,让普通用户进入这个目录来进行共享。
1.普通用户自己的家目录权限都是700,我在家的目录创建的文件,被人看不到
2. 有时候,我们多个用户想进行文件数据的共享
在文件共享的情况下,虽然不可读不可写,但是可以删除
3. 一个文件能否被删除,并不是文件本身决定,由这个文件所处的目录决定
4. 如果我们去掉了共享目录的w权限,我们也同时无法创建文件,你的共享目录就没有体现了
接下来我们来看**粘滞位**
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除
5. 粘滞位:给目录设置,一般是共享目录,大家可以进行在目录进行各自文件的增删改查,只允许文件拥有者或者root能删这个文件,其他人一概不允许,t是一种特殊的x权限