Linux的权限

Linux下用户的分类

root: 超级用户

root基本不受权限约束,普通用户受权限约束

普通用户:我们新建的用户,adduser

从上面的图片中,我们可以看到有两种由普通用户转换为root用户的方式,分别是 : su / su - 。

命令 : su [用户名]

功能 :切换用户

在上面的图片中演示了从普通用户切换到root用户的操作。在由普通用户切换到root用户的时候,命令是su root,但是root可以省略,这也解释了上图为什么su命令就可以切换为root了。

这两种方式的区别在pwd中我们也看到了,就是:

1. su之后所在的目录是/home/zyy,代表我们只是转换了用户名,并没有转换路径。退出的命令是exit。

2. su - 之后我们的目录是/root,表明我们的用户名和所在路径都转换了。退出的命令是logout。退出都可以用Ctrl + d 来完成。

如果我们想暂时的对 一条命令进行提权  sudo command

 

目前我们用adduser新建的用户,没有办法执行sudo,系统默认不信任你。除非未来将普通用户,添加到系统的新人白名单里面。

Linux权限管理

文件访问者的分类: 

1.文件的拥有者 : own

2.文件的拥有者所在组的成员:group

3.其他用户:other

第一个字母:

在了解了文件访问者的分类之后,我们就可以明白在Linux下的文件为什么这么显示了。

 从这两张图片上,我们都能看到这是Linux下文件的显示形式。

我们可以看到,在第二张图中,第一个文件和第二个文件的第一个字母是不同的。

在第一个文件中,是d,这代表dirctory,是文件,在Linux下我们叫做目录。

 在第二个文件中,是-,这代表是一个普通文件。

我整理了一些常见的文件的类型,在下图。

中间9个字母

 在了解完第一个字母之后,我们来看接下来的9个字母,分别代表什么意思。

分组

这9个字母三个三个一组,可以分为3组,正好对应了之前的文件访问者的分类。

前三个 : 拥有者 own

中间三个 : 组内人员 group

最后三个  : 其他人 other

现在,我们要学习,每个字母代表什么意思。

我们首先来了解每个字母的意思:

每个位置上只能表示两种意思: 是/否。

举个例子,比如说在第一组中,代表是own的权限,即这个位置上的三个字母决定了文件的拥有者拥有什么样的权限。如果你想要own可读可写可修改,那这三个字母就是rwx。可是如果你想own可读可写不可修改,那就是rw-。

含义

通过这个例子我们明白了一个规则,那就是:

可读是r,不可读是-

可写是w,不可写是-

可修改是x,不可修改是-

固定的字母

既然是三个为一组,就代表,每个位置上有一个字母。现在固定的是,每组的第一个是r/-,第二个是w/-,第三个是x/-

文件权限值的表示方式

a)字符表示法

字符表示法,就是我上述所讲的rwx,下面的表格将详述字符表示法的内容

Linux表示说明Linux表示说明
r--可读不可改不可执行-w-不可读可改不可执行
--x不可读不可改可执行rw-可读可改不可执行
r-x可读不可改可执行-wx

不可读可改可执行

rwx可读可改可执行---不可读不可改不可执行

 如何修改权限

命令 :chmod [参数] 权限 文件名

功能  : 设置文件的访问权限

例子 : 

 

我们可以看到,在上面的图片中,test.c文件对于拥有者的权限本来是rw-,在chmod u-x和chmod u-rw之后,变成了---,证明,我们的操作的内容就是让拥有者失去读写执行的权限

再看一个例子:

在上面的图片中,我们做了g-rw,u+rwx,o-r的操作。在这里,g表示gourp -- 所属组,u表示user -- 拥有者,o表示other -- 其他人。最后我们的权限由 ---rw-r-- 变成了 rwx------。

上面的例子都是对各个分组进行的修改权限操作,如果我们想一个指令直接对全部的组做相同的权限修改呢?

我们可以使用如下命令:

a表示all -- 所有人

这里的chmod a+rwx表示,给所有的人都加上读写执行的权限。

b)八进制表示法

关于八进制表示法,可以看下面的图片解释。

在明确了这些基本的权限知识之后,我们可以来解决几个问题。

问题一 : 起始权限问题

 上述是我刚刚创建的一个目录和两个普通文件。

现在有一个问题,为什么刚创建的目录和普通文件的默认权限是这样的?为什么目录是775,文件是664?

在解决这个问题之前,我们需要知道一个预备知识:

1、默认给普通文件的起始权限是666

2、默认给目录文件的起始权限是777

3、权限掩码 : 凡是在umask中出现的权限,不会出现在最终的文件权限中!

 可以输入umask查看自己的权限掩码,如图,我的权限掩码是0002,用八进制表示。

根据权限掩码的作用,我们可以得出这样一个公式 : 最终权限 = 起始权限 &(~umask)

知道公式之后,我们可以进行计算,为什么我们看到的权限是这样的。

 问题二: 目录权限 

对于普通文件,我们能很容易理解普通文件的读写和执行权限,但是对于目录文件呢?怎么写目录,读目录,和执行目录?

下面给出目录的权限作用:

 问题三 : 粘滞位

在讲粘滞位之前,我们要先知道几个情况:

1、在家目录下的文件的权限都是700,意思是 :我在我的家目录创建的文件,其他人都看不到!

2、有时候,我们多个用户想进行文件数据的共享。

基于这两点,我们就可以得到一个结论: 我们所建立的共享文件,不能放在任何一个人的家目录下!

既然这样,我们只能创建在其他路径下,根据之前的目录的权限的知识,这样的文件的起始权限是775,也就是drwxrwxr-x。并且,当一个用户拥有对目录的写权限的时候,就可以删除这个目录。

这样就会引起一个非常尴尬的问题,我创建的共享文件,因为你具有写的权限,所以你也可以删除我的文件。我的文件凭什么能被你删掉?

为了解决这个问题,我们有两个方案 :

1、去掉用户的写权限

2、使用粘滞位

我们首先来说第一个方案,根据之前目录的权限的知识,如果去掉了目录的w权限,就同时无法创建文件了,那么共享目录的共享体现在哪里呢?所以这个方案被pass了,只剩第二个方案。

再说第二个方案,首先明确我们的需求是什么?

需求 : 在共享目录下,任何人可以创建、查看文件,但是不能删除不属于自己的文件。

解决方案 : 使用粘滞位。命令 :chmod [参数]+t [文件名]

举例 : chmod o+t shared

粘滞位 : 给目录设置,一般是共享目录,大家可以自行在目录进行文件的增删查改,只允许文件的拥有者和root删除文件,其他人一概不允许!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值