目录
Linux下用户的分类
- root:超级用户
- 普通用户:新建的用户,adduser指令
root用户基本不受权限的约束,普通用户是受权限约束的。
Linux中的所有用户,都要有密码,无论是root还是其他,即便是多个普通用户,也都要设置密码
root用户和普通用户之间的切换
su
//su 指令默认 进入root用户,所以上图出现的密码是要输入root用户的密码,要返回原用户只需要exit即可
//注意这里的su只是进行了身份的切换,并没有以登录的方式到root,路径还在原用户。
//要使用重新登录用户的方式切换,使用su - ,这里可以看到用户路径也切换了,这种方式下要返回原来的用户,使用 ctrl + d
PS:如果需要对一条指令进行提权(以root用户的身份执行),在指令前使用sudo。若需要输入密码,即输入root用户的密码。目前我们用adduser新建的用户,没有办法执行sudo,因为系统不信任你,除非将普通用户添加到系统的新人白名单里面
权限是什么
权限就是一件事情是否允许你去做
- 权限认证的是身份(和具体的人有关)
- 权限也和事物的属性有关,要访问的属性必须存在
那么Linux事物也就是文件的属性包含:可读、可写、可读写
权限如何查看,以及相关概念
第一列第一个字符 文件的类型:
- -:普通文件,文本,可执行程序,库基本都属于普通文件
- d:目录文件
- b:块设备文件,磁盘文件 ls /dev/vdal
- c:字符设备文件,键盘,显示器文件等
- p:管道文件,用来进行通信
//Linux系统中文件名后缀没有直接的意义(不代表不用),Linux中如何看待后缀,看用户的需求
文件的权限属性
- r:可读
- w:可写
- x:可执行
- -:对应的权限位置,没有权限
Linux下的权限身份
- 拥有者
- 所属组
- 其他人
如下图所示:
三种权限身份对应的权限
如下图所示,每三个字符为一个权限身份的权限,分别是 拥有者权限,所属组权限,其他人权限
更改权限
修改权限的前提是 当前用户是文件拥有者或者是root用户,有着对应的权限
//给文件拥有者加 读写修改 权限
chmod u+rwx test.txt
//给文件拥有者去掉 读写修改 权限
chmod u-rwx test.txt
//给所属组添加 读写修改 权限
chmod g+rwx test.txt
//给其他人加 读 权限
chmod o+r test.txt
//给所有人加 读 权限
chmod a+w test.txt
//多个用户时使用逗号为分隔符
另一种写法,用八进制 表示 (三位二进制数对应读写修改权限,为1代表具有),每一个八进制数对应一种权限身份,分别是 拥有者,所属组,其他人
//所有人加 读 权限
chmod 444 test.txt
改变文件拥有者
chown 新的文件拥有者的用户名 文件名
改变文件所属组
chgrop 新的文件拥有者的所属组 文件名
其他问题
为什么普通文件的权限是664,目录文件的权限是775?
预备:
- 默认给普通文件的起始权限是666
- 默认给目录文件的起始权限是777
而出现664,775的原因是,Linux系统中存在一个权限掩码
umask 0002
权限掩码:凡是在umask中出现的权限,不会在最终的文件权限中出现
最终权限 = 起始权限 & (~umask)
改变权限掩码
umask 0555
目录文件的相关权限
r:是否允许我们查看指定目录下的文件内容
w:是否允许我们在当前目录下创建 、更改、删除
x:是否允许用户进入对应的目录
多个普通用户共享文件
普通用户自己的家目录权限是 700,用户在自己家目录创建的文件别人看不到,因此,我们新建的共享文件,不能在任何一个人的家目录下,可在根目录下创建。
一个文件能否被删除,并不由文件本身决定,由这个文件所处的目录决定
粘滞位:给目录设置,这个目录一般是共享目录,各个用户可以在该目录进行各自文件的增删查改,只允许文件拥有者或者root能删这个文件,其他用户不允许。t权限是特殊的x权限
chmod o+t shared/
//此时x对应的权限位置会变成t,这是在该目录下,用户只能删除自己拥有的文件
Linux装机的时候,默认创建了一个tmp共享目录