Linux系统的权限管理

什么是权限

什么是权限?通俗的理解就是一件事是否允许被特点的人做。

我打一个比方,比如我是一个学生,那么我进学校这件事就允许被我做,即学生就有进入学校的权限,再比如我不是学生是外卖员,那我一般情况下就不可以进入学校,我只能把外卖送到学校门口,因为我没有进入学校的权限。也就是说进入学校这件事它本身是有天然的权限属性的,可以进入还是不可以进入,而这些权限约束的是不同的人,即权限=人+事物的属性

在Linux系统中,事物的属性对应的就是文件的权限属性,其约束的人就是访问这个文件的不同类型的用户

可以使用ls指令查看文件的属性
进入被查看文件所在的目录下,使用该命令:

ls -l

或者

ll

打印出来的内容各部分代表的含义如下图
在这里插入图片描述
头10个字符表示了这个文件的属性,下面对他们依次进行介绍

第一个字符:用来标识文件类型,(Linux系统中,不以文件后缀区别文件类型)

不同文件类型的字符:
-:普通文件(文本,各种动静态库,可执行程序,源程序)
d:目录文件
c:字符设备文件(键盘与显示器)
b:块设备文件(磁盘)
p:管道文件(通信)
l:链接文件(软连接)
s:套接口

剩下九个字符每三个为一组,每一组代表一种用户类型,依次为:

拥有者 owner
所属组 group
其他用户 other

每一组都由三个权限组成

r:读权限(Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限)
w:写权限(Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限)
x:可执行权限(execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限)

三个权限按顺序排列,不可打乱,有对应的权限就显示对应的字符,没有就显示-。

文件权限的表示方法

上面的用rwx表示权限的方法叫做字符表示方法
还有一种表示方法叫做八进制数值表示方法

以下面的权限为例

rw-rw-r--

我们把上面的九个字符换成二进制数,每一个字符对应一个二进制位,如果有权限就用1表示,没有权限就用0,则对应的二进制数为:

110 110 100

将每一组的权限分出来,转化成一个八进制数,三个组的权限就是一个三位的八进制数,每个中权限对应的值为

r:4
w:2
x:1

所以上面的权限还可以表示为664。即八进制数值表示方法

文件权限的修改

(1)chmod(修改文件的权限)
chmod的使用方法有两种,一种是使用用户符号权限字符对文件的权限进行修改方法如下

用户符号:
u—拥有者
g—所属组
o—其他用户
a—所有用户

+:向对应用户增加权限
-:向对应用户减少权限
=:让对应用户的权限等于权限字符的权限

假设要让test.c文件的其他用户拥有写权限,其命令为:

chmod o+w test.c

如果要取消拥有者的读权限,命令为:

chmod u-r test.c

还有一种就是通过三位八进制数修改文件属性,如果我想让所以用户都有读写权限,即rw-rw-rw,则对应的八进制数为666,修改命令为

chmod 666 test.c

(2)chown(修改文件的拥有者)
使用方法如下:

chown chen test.c

将文件的拥有者修改为用户chen。

注意:普通用户修改文件拥有者需要在前面加上sudo(临时权限提升,以root身份执行后面的命令)才可以,root不需要。

(3)chgrp(修改文件的所属组)
使用方法如下:

chgrp chen test.c

将文件的所属组修改为chen

与chown类似,属于你的文件给别人一定要加sudo,拥有者是你,所属组不是你的文件修改所属组不用sudo,拥有者不是你的文件修改所属组一定要加sudo

还可以一次性修改拥有者和所属组

chown chen:chen test.c

即将拥有者改为chen,所属组改为chen。

因为一共就三种用户,所以我们改变了拥有者和所属组,也就等于是修改了其他用户,所以没有专门修改其他用户的命令。

注意:
1.root可以不经过文件的拥有者直接修改文件的权限
2.在文件的other没有权限时,root也能访问该文件
即:root几乎不受权限约束

粘滞位

对目录而言,
如果想要查看目录里的内容需要r权限(可执行ls)
在目录里创建节点需要w权限,
进入目录需要x权限(可执行cd)
如果没有x权限,查看目录就无法进入目录查看,可以看到文件名,但是看不了其他属性,并且拥有x权限才可以更改当前路径。

即:如果用户拥有w权限,就可以删除目录下的任何文件
如果用户没有x权限,就不可以删除目录下的任何文件

如果我们想让other可以在特定的目录下创建文件并写入,但是不想让别人删除自己的文件,就可以设置粘滞位
设置方法为:

chmod o+t test

在这里插入图片描述
这里的t权限就是粘滞位

粘滞位的设置只能是对目录,一般是限制other权限的。
对设置了粘滞位的目录,在该文件下,只有用户的拥有者可以删除文件(root除外)

粘滞位的一个使用场景是在Linux系统中,如果有多个用户,系统有很多的临时数据,这些临时文件都放在系统的/tmp目录下,对于这些临时文件,我们需要把tmp目录的权限公开,但是我们又只能让文件的拥有者能够删除自己的文件,其使用的方案就是粘滞位
在这里插入图片描述

默认权限

Linux系统中创建的文件和目录都有一个初始权限
文件:-rw-rw-r-- 对应(664)
目录:drwxrwxr-x 对应(775)

即普通文件的起始权限是666,目录文件的起始权限是777。

在命令行输入umask可以查看权限掩码,即在umask中出现的权限会在起始权限中去掉
在这里插入图片描述
可以推断掩码的工作方式应该是通过按位取反和按位与搭配完成的。

普通文件和目录文件对应的起始权限去掉权限掩码对应的权限,就是664与775。

也可以对掩码进行修改达到自定义默认权限的目的
在这里插入图片描述
设置掩码为0333,即去掉了wx权限,修改掩码只在本次登录有效,如果想要永久的修改文件初始权限,只能修改配置文件来实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值