Linux——权限

简介: Linux——权限


一、 Linux下用户的分类

 

Linux下有两种用户:

1. root(超级管理员用户)

2. 普通用户

我们adduser添加的就是普通用户。

他们有什么区别呢?

(1)超级用户:可以再linux系统下做任何事情,不受限制

(2)普通用户:在linux下做有限的事情。

(3)超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

我们如何切换两个用户呢?

Linux下所有的用户都有自己的密码,我们可以通过以下指令切换用户:

(1)切换root用户

su //路径不会发生变化
su  - //路径会变成/root

注:输入的密码是root的密码

(2)切换到普通用户

su 用户名

注:Ctrl d这个快捷键回到之前的用户(相当于exit)

补充:

指令提权:那么我们可以不变成root,但是以root的身份执行一个指令可以吗?

通过sudo指令可以临时提升用户的权限,在指令前面加上sudo,用户就临时切换成了root,以root的身份执行该条命令。

实际上,一般来说普通用户不能执行sudo指令,我们需要将该用户添加到系统信任的白名单才能享受sudo指令。

二、 Linux中文件的权限

2.1 文件访问者的分类

(1)文件和文件目录的所有者:u—user(拥有者)

(2)文件和文件目录的所有者所在的组的用户:g—group(所属组)

(3)其它用户:o—others (其他人)

2.2 文件类型和访问权限

2.2.1 文件类型

- :代表普通文件(文本、可执行文件等等)

d :代表目录文件

l: 软链接(类似 Windows 的快捷方式)

b :代表 块设备文件(磁盘文件)

p :代表管道文件(用来通信的)

c :字符设备文件(例如屏幕等串口设备)

s :套接口文件

2.2.2 访问权限

他们三个为一组,分别代表拥有者,所属组,other的权限

这些权限字符的意思分别是:

r : 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

w : 对文件而言,具有修改文件内容的权限;对目录来说具有增加、删除、改动目录内文件的权限

x : 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

- : 表示不具有该项权限

普通文件:

(1)对于普通文件,没有r权限,就读取不了文件内容

(2)对于普通文件,没有w权限,就修改不了文件内容

(3)对于普通文件,没有x权限,就不能执行该文件

注:绿色代表可执行( ./文件名  表示执行文件)

注:对于root 账号,尽管什么权限都没有,但是依然可以对文件进行读、写、执行。

目录文件:

(1)对目录来说,没有r权限,就查看不了该目录下的信息

(2)对目录来说,没有w权限,就没有增加、删除、改动目录内文件的权限

(3)对目录来说,没有x权限,就没有进入目录的权限

补充知识:

我们当前是普通用户wu ,既作为文件test.txt的拥有者,也作为文件的所属组,当作为拥有者没有读权限,作为所属组有读权限,那么我们去读会成功吗?

答案没有读权限!

那么如果我们当前是普通用户wu,只作为文件test.txt的所属组,可以拥有读权限吗?

答案有读权限!

结论:身份识别的时候只识别一次,一旦匹配成功就不继续匹配了,如果失败就继续匹配

三、 权限如何修改

3.1 用字符表示法修改权限

字符表示方法:

一个文件的权限,谁能修改?

(1)文件的拥有者

(2) root身份

那么文件的权限如何修改?

我们可以使用chmod指令

功能:

设置文件的访问权限

用法:

chmod  用户符号+ -  权限字符  文件名

+: 向权限范围增加权限代号所表示的权限

-: 向权限范围取消权限代号所表示的权限

用户符号:

u :拥有者

g :所属组

o :其它用户

a :所有用户

(1)增加拥有者读权限:(chmod u+r 文件名)

(2)增加拥有者写权限:(chmod u+w 文件名)

(3)增加拥有者可执行权限:(chmod u+x 文件名)

注:减少拥有者读写可执行权限(chmod u-rwx  文件名)

(4)增加所属组读权限:(chmod g+r 文件名)

(4)增加其他人读权限:(chmod o+r 文件名)

(4)减少所有人读、写、可执行权限:(chmod a+rwx 文件名)

3.2 用8进制数值表示法修改权限

8进制数值表示方法:

每个位置的权限都是用二进制来表示的:

比如:(我们的test.txt文件)

它的权限现在是: rwx------

用二进制表示就是:111 000 000

转换成八进制就是:7 0 0

那我们把它修改成: rw-rw-rw-

用二进制表示就是:110 110 110

转换成八进制就是:6  6  6

用法:

chmod  八进制表示法  文件名

3.3 修改文件的拥有者和所属组

修改文件的拥有者:

(1)chown + 拥有者名 + 文件名

注:

(1)修改文件的拥有者和所属组是强制的,一般用户修改不了,需要提升权限  (sudo  chown  拥有者名   文件名).

(2)用 su  将用户切换到root再执行 ( chown + 拥有者名 + 文件名)

修改文件的所属组:

(2)chgrp + 所属组名 + 文件名

注:

(1)修改文件的拥有者和所属组是强制的,一般用户修改不了,需要提升权限  (sudo  chgrp 所属组名   文件名).

(2)用 su  将用户切换到root再执行   (chgrp + 所属组名 + 文件名)

同时修改文件的拥有者和所属组:

(3)chown + 拥有者名:所属组名 + 文件名

注:

(1)修改文件的拥有者和所属组是强制的,一般用户修改不了,需要提升权限  (sudo  chown 拥有者名:所属组名    文件名).

(2)用 su  将用户切换到root再执行 (  chgrp + 拥有者名:所属组名 + 文件名)

注:选项 -R 可以修改目录。

四、文件的起始权限

普通文件的最终权限八进制表示法是:664

目录文件的最终权限八进制表示法是:775

实际上:

(1)普通文件的起始权限八进制表示法是666

(2)目录文件的起始权限八进制表示法是777

而Linux中因为有权限掩码的存在,导致最终权限变化

4.1  权限掩码

用umask查看权限掩码

权限掩码是如何影响最终权限的呢?

最终权限 = 起始权限 & (~umask)

以普通文件为例:

普通文件的起始权限是:110 110 110(666)

权限掩码umask是:000 000 011(0002)

~umask: 111 111 100

根据 最终权限 = 起始权限 & (~umask)

最终的权限是:110 110 100(664)

注:我们可以修改权限掩码

注:修改了umask后,创建出来的文件权限也发生了改变,所以是uamsk影响了我们的最终权限

五、目录的权限

为什么我们普通用户可以删除root的文件呢?

(1)删除一个文件和目标文件没有关系,和当前用户所在的目录有关系。

(2)普通用户wu是这个目录wu的拥有者,root在普通用户的目录里创建文件就要受到普通用户wu的管束。

删除文件是由这个目录的拥有者来管理,删除一个文件的本质就是修改这个目录的内容,需到目录的拥有者有w权限

目录的权限是:

r 代表我们是否能够查看指定目录下的文件

w 代表我们是否能在当前目录下创建、更改和删除文件

创建一个目录的时候是默认去掉other的写权限的,其他用户进入到这个目录是不能进行创建文件

总结:本篇文章将权限的知识差不多囊括了。

希望大家阅读完可以有所收获,同时也感谢各位铁汁们的支持。文章有任何问题可以在评论区留言,百题一定会认真阅读!

相关文章
|
26天前
|
关系型数据库 MySQL Shell
【权限提升】Linux系统&环境变量&定时任务&权限配置不当&MDUT自动化
【权限提升】Linux系统&环境变量&定时任务&权限配置不当&MDUT自动化
|
25天前
|
监控 安全 Linux
【权限维持】Linux&OpenSSH&PAM后门&SSH软链接&公私钥登录
【权限维持】Linux&OpenSSH&PAM后门&SSH软链接&公私钥登录
|
29天前
|
Linux 数据处理 数据库
深入解析Linux命令id:理解用户身份与权限
`id`命令在Linux中用于显示用户身份(UID, GID和附加组)。它查看系统用户数据库获取信息。参数如`-u`显示UID,`-g`显示GID,`-G`显示附加组,结合`-n`显示名称而非ID。用于确认命令执行者身份,确保权限正确。在脚本中使用时注意权限管理,遵循最小权限原则。
|
25天前
|
Java Linux PHP
【应急响应】后门攻击检测指南&Rookit&内存马&权限维持&WIN&Linux
【应急响应】后门攻击检测指南&Rookit&内存马&权限维持&WIN&Linux
|
25天前
|
监控 网络协议 Ubuntu
【权限维持】Linux&Rootkit后门&Strace监控&Alias别名&Cron定时任务
【权限维持】Linux&Rootkit后门&Strace监控&Alias别名&Cron定时任务
|
10天前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
10天前
|
Linux 数据安全/隐私保护 iOS开发
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro
|
18天前
|
安全 关系型数据库 MySQL
技术经验解读:【Linux】Linux系统中的权限详解
技术经验解读:【Linux】Linux系统中的权限详解
11 0
|
1月前
|
Linux Shell 数据安全/隐私保护
【Linux2】Linux的权限
【Linux2】Linux的权限
|
19天前
|
Linux 开发工具 C语言
【Linux】Linux的权限_2 + Linux环境基础开发工具_1
【Linux】Linux的权限_2 + Linux环境基础开发工具_1
16 0