云计算百科
云计算领域专业知识百科平台

Linux系统篇(三)权限篇·一:Linux权限基本认识

 ◆博主名称:少司府

欢迎来到少司府的博客☆*: .。. o(≧▽≦)o .。.:*☆

⭐数据结构系列个人专栏:初阶数据结构 高阶数据结构

⭐C++基础个人专栏:C++初阶 C++进阶

⭐Linux个人专栏:Linux系统编程

琢玉成器终有时,笔底生花夺锦归


目录

1. Linux中的用户

1.1 用户的区别

1.2 用户的切换

2. 用户的权限

2.1 用户的提权:sudo

2.2 白名单

3. Linux的权限

3.1 什么是权限?为什么?怎么办?

3.2 角色

3.3 文件权限属性

3.4 修改文件的权限属性

3.5 修改文件的角色

3.6 重谈文件属性

4. 三个补充问题

4.1 如何理解目录的权限?

4.2 缺省权限

4.3 如何看待下述现象?


1. Linux中的用户

Linux中的用户分为root用户(超级用户)和普通用户。

1.1 用户的区别

1)、超级用户:可以在Linux系统下做任何事情,不受限制。

2)、普通用户:在Linxu系统下做有限的事情。

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

1.2 用户的切换

1)、su命令:普通用户切换到超级用户。

su
Password: #这里输入你的root账户的密码

切换之后,当前仍然在普通用户所处的目录,当前普通用户账号没有登出。

su –
Password: #这里输入你的root账户的密码

su – 以超级用户的方式重新登录,导致当前用户所处路径发生变化。直接进入家目录。

2)、超级用户变成普通用户。

su 用户名

2. 用户的权限

2.1 用户的提权:sudo

当我们是普通用户的情况下,权限不够,如何进行操作呢?

我们可以用sudo对指令进行短暂提权。

1)、创建文件

sudo touch root.txt

这里就是在普通用户下以root身份创建文件。

2)、安装软件

一般Linux的软件都在/user/bin目录下,不允许普通用户直接拷贝

安装软件到系统中,需要root权限,一般是只安装一份。

在下载好软件之后,apt或者yum指令会直接将软件拷贝到/user/bin目录下,但是普通用户不能拷贝,因此我们可以用sudo进行提权:

sudo cp my.txt /user/bin

3)、删除文件/软件

sudo rm /user/bin/my.txt

2.2 白名单

一般情况下,普通用户是不能进行sudo操作的,这里我们需要把普通用户添加到白名单/etc/sudoers下,才能进行sudo操作。添加白名单需要管理员root进行操作。

3. Linux的权限

3.1 什么是权限?为什么?怎么办?

1)、权限的本质就是能或者不能做什么事情。

2)、权限的出现是为了控制用户的行为,防止错误的发生。

3)、权限首先限制的是角色(人),权限要求目标必须具备对应的属性,因此权限=角色+目标权限属性(读、写、执行)

3.2 角色

Linux中有三种角色,分别是拥有者、所属组、other

other角色不需要记录。

1)、拥有者(u):文件的创建者,可以对该文件进行读写、执行

2)、所属组(g):对于同一所属组当中的人,拥有相同的权限

3)、other(o):其他人

3.3 文件权限属性

对于该文件属性,三个三个为一组:

分别对应拥有者权限、所属组权限和other权限。

一组中三个字符代表:

可读,第一个为r;可写,第二个为w;可执行,第三个为x

如不可,则为-

3.4 修改文件的权限属性

我们可以使用chmod命令来修改文件的权限属性

root@iZn4adydu3h6t497949n3dZ:~/lesson4/target# touch my.txt
root@iZn4adydu3h6t497949n3dZ:~/lesson4/target# chmod u-r my.txt
root@iZn4adydu3h6t497949n3dZ:~/lesson4/target# ls -al
total 8
drwxr-xr-x 2 root root 4096 Sep 17 19:35 .
drwxr-xr-x 4 root root 4096 Sep 17 19:34 ..
–w-r–r– 1 root root 0 Sep 17 19:35 my.txt

如图,u-r 代表删除拥有者的读取权限。

同理:

chomd u+rx my.txt #增加拥有者的读取、执行权限
chomd g-r my.txt #删除所属组的读取权限
chomd o-r my.txt #删除other的读取权限

也可以一次性操作:

chomd u+rx,g-r,o-r my.txt

注意:用户只能更改自己的文件权限(自己创建的文件)

1)、没有对应权限,用户就不能进行指定操作。

2)、确定权限信息的时候,确定权限信息的时候,系统会先确定用户是谁(拥有者,所属组,还是other)。在Centos下,用户角色只确定一次,顺序是:拥有者,所属组,other

3)、权限是用来限制普通用户的,root用户不受权限约束

4)、可执行权限不代表文件本身可执行,只是允许该文件在将来可以执行。

5)、如图,也可以用a代表全部角色进行操作

3.5 修改文件的角色

更改角色的命令:chown/chgrp

chown user1 my.txt #更改文件拥有者为user1
chgrp user1 my.txt #更改文件所属组为user1

上述是在root用户权限下执行的,一般情况下,系统不允许我们直接把文件给别人。

chown user1:user1 my.txt #一次性将文件拥有者和所属组都改为user1

如果我们在普通用户权限下,前面要加上sudo来提权:

sudo chown user1:user1 my.txt #一次性将文件拥有者和所属组都改为user1

3.6 重谈文件属性

对于每个角色而言,在该文件下的权限有三个值(三个字符),单个字符是两态的。

即 r/- w/- x/- ,我们可以用1和0来代表,八进制的形式:110 100 100,即十进制的664。

如图,我们可以利用数字来更改权限:

chmod 777 my.txt

4. 三个补充问题

4.1 如何理解目录的权限?

1)、如果我想要进入一个目录,我们需要什么权限?

进入目录,我们需要x权限

如何理解r权限和w权限对于目录的含义?

2)、如果没有r权限,我们无法查看目录里面的内容

3)、如果没有w权限,我们无法在该目录下创建文件

4)、默认情况下,新建一个目录,要求rwx权限都要有!

5)、任何非root用户,无法进入其他用户的家目录

4.2 缺省权限

1)、对于普通文件来讲:起始权限为666,默认不带可执行

2)、对于目录文件来讲:起始权限777,默认待x

3)、每个系统都会自己默认设置一个权限掩码:

最终我们看到的权限 = 起始权限 & (~umask) ,第一个不看,即022,八进制表示为 000 010 010

umask目的是什么?

希望凡是在umask中出现的权限,都不应该在最终权限中出现

为什么要有umask?

a. 对于默认权限,由OS自主决定,无法在创建前进行修改,umask让系统可配置,可以灵活满足需求

b. 特殊情况下,配置umask,可以控制文件的默认权限,让我们的代码是可控的

umask的修改

umask 0777

如上,umask + 数字可以直接修改;当我们退出Linux再重新登录的时候,umask会恢复到默认值

4.3 如何看待下述现象?

我们没有一个文件的rwx权限,但是我们可以删除该文件:

删除该文件是该文件所处的目录的x权限控制的,与该文件本身无关。

本期的分享就到这里,如果觉得博主的文章比较对胃口的话,可以点一个小小的关注~

您的三连是我持续更新的动力~

赞(0)
未经允许不得转载:网硕互联帮助中心 » Linux系统篇(三)权限篇·一:Linux权限基本认识
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!