【Linux】用户权限
shell命令
1. Linux本质上是一个操作系统,但是一般的用户不能直接使用它,而是需要通过外壳程序shell,来与Linux内核进行沟通。
2. shell的简单定义:命令行解释器。主要包含以下作用:
- 将使用者的命令翻译给核心处理。
- 将核心的处理结果翻译并呈现给使用者。
3. 对比windows GUI,我们操作windows也不是直接操作windows内核,而是通过图形接口,进行点击从而完成操作:比如进入D盘的操作,我们通常是双击D盘。
4. shell对于Linux系统来说,有相同的作用:用户输入的指令经由shell解析并传递给Linux内核执行,随后内核运行的结果再通过shell解析后反馈给用户。
Linux权限
用户与权限
1. Linux系统 下 有两种用 户: 超级用户 、 普通用户 。
- 超级用户:可以在linux系统下做任何事情,不受限制。超级用户的命令提示符是''#''。
- 普通用户:在linux系统下做有限的事情。普通用户的命令提示符是''$''。
2. 权限=角色+事物属性 。
- 角色:学生不能进入校长办公室。
- 事物属性:抖音上无法刷算法题。
su指令
su user_name:切换用户,切换成user_name用户。
su root:切换用户,切换成root用户。
1. 普通用户切换成其他用户,需要输入密码。
2. root用户切换成其他用户,不需要输入密码。
sudo指令
sudo xxx:在普通用户的账号中,使用超级用户权限进行操作xxx。
1. 超级用户把当前普通用户拉入白名单后,才能使用sudo指令。
2. 一般来说,普通用户安装软件时,需要用到超级权限,此时就需要使用sudo指令。
权限的查询与修改
1. Linux中的角色分成三类:
- u --->文件拥有者
- g --->文件所属组
- o --->other
- a --->all
2. Linux中的事物属性分成三类:
- r --->对普通文件来说->可读,对目录来说->无法查看目录下的文件信息
- w --->对普通文件来说->可写,对目录来说->无法查看目录下新建、删除、修改文件
- x --->对普通文件来说->可执行,对目录来说->无法进入目录
3. Linux中的权限操作符分成三类:
- + --->添加权限
- - --->移除权限
- = --->覆盖原有权限
1. 第一部分的十个字符中:
- 1 表示文件类型
- 2、3、4表示拥有者权限
- 5、6、7表示所属组权限
- 8、9、10表示other权限
chmod指令
chmod (u+-=(rwx)) (g+-=(rwx)) (o+-=(rwx)) xxx:修改xxx文件的权限。
chmod 777(8进制) xxx:修改xxx文件的权限。
1. 只有文件的拥有者或者超级用户才能够修改文件的权限。
2. 文件的user角色、group角色、other角色,在和用户匹配时,从左向右依次匹配,并且只成功匹配一次。
3. r(-)w(-)x(-)可以转换成一个8进制数字,范围从0-7。
chown user xxx:把xxx文件的所有者权限给user。
chgrp user xxx:把xxx文件的所属组权限给user。
1. 在移交所有者权限时,要么使用超级用户,要么使用指令提权。
umask指令
umask 0xxx:修改文件的掩码,改成0xxx。
1. 在Linux系统中,新建普通文件起始权限默认为666,新建目录起始权限默认为777。
2. 如果想修改最终权限的默认值,则需要使用umask指令进行修改。
3. 最终权限 = 起始权限 & (~umask) 。
共享目录
1. 在Linux多用户环境中,各个用户对于/home目录下的个人文件访问是相互独立且隔离的。
2. 如果普通用户想要共享一个文件,就不能建立在各自的家目录下,而需要在根目录/下面新建立一个共享目录。
3. 删除一个文件,与该文件的权限无关,与该文件所在目录的w权限有关。
粘滞位
chmod +t xxx:给xxx文件加上粘滞位。
1. 共享文件一般都要设置粘滞位,防止有人恶意删除共享文件。
2. 共享文件加上粘滞位后,在共享文件中,只有共享文件创建者才能删除该共享文件。
3. 由于共享文件一般是在根目录/下,所以在设置粘滞位时,要么用超级用户设置,要么用sudo指令提权。