一:🚩Linux中的用户
1.1🥦用户的分类
🌟在Linux中用户可以被分为两种用户:
- 超级用户(root):可以在Linux系统中做各种事情而不被约束
- 普通用户:只能做有限的事情被权限约束
在实际操作时超级用户的命令提示符为'#',普通用户的命令提示符为'$',可以根据命令提示符来区分当前的用户
1.2:🥦用户的切换
⚡如何在Linux系统中切换用户?
1.普通用户切换root用户
方法一: 命令: su
方法二: 命令: su -
[注意]:
两个命令的作用都是将用户变为root用户,但是su是直接把用户变为root,当前路径不会发生改变,而su - 有一条login加载的信息,相当于输入密码重新登陆,会把当前路径修改为/root
2.root用户变为普通用户
直接 su+用户名即可,不需要输入密码
二:🚩什么是权限
权限就是通过一部分条件,可以拦截住一部分人,给另一部分人权力访问资源,并且权限不仅和人有关,还和事务的属性有关,比如我们不能在视频软件上打游戏,所以权限和人与事务的属性有关.
2.1 🥦文件类型及其权限管理
⛲文件类型:
在windows系统中,区分文件类型依靠的是文件的后缀名
在Linux系统中,文件不以后缀名区分,当我们用 ll指令查看文件详细信息时,第一个字符就代表文件的类型
d :文件夹- :普通文件l :软链接(类似 Windows 的快捷方式)b :块设备文件(例如硬盘、光驱等)p :管道文件c :字符设备文件(例如屏幕等串口设备)s :套接口文件
⛲文件权限:
在Linux系统中,访问文件存在三种角色:
- 拥有者
- 所属组
- 其他
在文件属性最前面一共有十个字符,第一个为文件的类型,而后九个三三为一组,分别对应文件拥有者、所属组、其他人的权限
第一个字符:是否具有读权限,如果是就是r,否就为-
第二个字符:是否具有写权限,如果是就是w,否就为-
第三个字符:是否具有可执行权限,如果是就是x,否就为-
了解了上述信息就可以对文件的权限进行管理了
💬如何修改文件的权限?
目前test.txt文件的权限如图所示
⚡方法一: 给角色加减权限(直接)
chmod指令
功能: 设置文件的访问权限格式: chmod [ 参数 ] 权限 文件名常用选项: r - 递归修改目录文件的权限ps.文件的权限只能由拥有者和root修改
例如: 去掉拥有者的读取权限
例如:去掉拥有者的写权限和所属组的读权限
补充:如果要同时去掉或者增加三个角色的某一权限或多个权限可以使用 a(代表all指所有角色)
除了上述方法还可以使用三位八进制数字的方法:
三个字符表示一个角色的权限,我们将有权限表示为1,无权限表示为0,例如rw-就为110用八进制表示为6, rwx就为111用八进制表示就为7
例如:取消所有角色的所有权限
例如:增加拥有者和所属组的读取权限,增加其他人的读权限
⚡方法二:改变角色(间接)
chown指令
功能 :修改文件的拥有者格式 : chown [ 参数 ] 用户名 文件名
chgrp指令
功能 :修改文件或目录的所属组格式 : chgrp [ 参数 ] 用户组名 文件名常用选项 : -r 递归修改文件或目录的所属组
[注意]:只有root用户才能修改文件的拥有者和所属组
如图所示,当前test.txt文件的拥有者和所属组都为zyq
例如: 原来zyq有读和写这个文件的权限,将文件的拥有者和所属组都改为root,此时zyq在这个文件就相当于other,只有r权限了,间接修改了用户的权限
也可以同时修改文件的拥有者和所属组(用冒号相隔)
2.2 🥦目录权限
⛲目录权限理解
可读权限(r): 用户是否可以查看目录的内容
可写权限(w):用户是否有在指定目录下有创建、修改、删除文件的权限
可执行权限(x):若无可执行权限,用户无法进入目录
我们操作的用户为dir目录的拥有者
当去掉拥有者对目录的读权限时,我们不能看目录的内容,但是可以进入到目录内
当去掉拥有者对目录的写权限,可以进入到目录内但是不能在目录里新建文件
当去掉拥有者对目录的可执行权限,我们都进不去这个目录
⛲umask
当创建目录和文件时,他们好像有自己默认的权限
其实,新建文件夹默认权限 =0666 ,新建目录默认权限=0777但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。
我们先查看当前环境下的umask值为多少新建目录默认权限为0777,即111 111 111umask为002,即000 000 010先将umask按位取反:111 111 101再按位与111 111 111得 111 111 101 即 rwxrwxr-x 与上述结果相同
⛲目录中文件的删除问题
当我们以普通用户在一个指定目录下创建一个普通文件,root用户不是拥有者和所属组此时相当于other的角色,他此时没有写的权限,但是他却可以删掉普通用户创建的文件,这不难理解,因为root是超级用户
反过来,我们用root用户在指定目录下创建一个文件,普通用户不是拥有者和所属组此时相当于other的角色,没有写的权限,但是普通用户也能删掉root用户创建的文件,这是为什么呢?
在目录下一个用户删除目标文件,和目标文件没有关系,只要该用户对该目录有w权限就可以删除该目录下的任何文件
普通用户此时相当于other但是其对此目录有写的权限,所以可以删除目录里的文件,与目录里的文件无关