【linux篇】操作系统的第一道防线:权限

目录

什么是权限:

为什么要有权限:

权限的理解:

文件的权限:

文件的角色:

文件权限:

修改文件权限:

修改文件属性:

字符修改法:

​编辑

进制修改法:

修改角色:

chowm(改变文件或目录的拥有者):

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

chgrp(改变文件或目录所属组):

root 用户的权限:

如何理解可执行

权限的三个问题

目录的权限:

目录的rwx属性:

Linux 多用户之间的隔离

缺省权限:

unask 的目的是什么?

粘滞位:

关于权限的总结


什么是权限:

权限本质:能或不能做某些事情。

权限决定了能还是不能做的问题。

为什么要有权限:

为了控制用户的行为,防止错误的发生。

权限规则的设定永远时最顶级的上层人设计,比如写 Linux 的程序员,以限制普通用户的行为,防止混乱和错误的发生

权限的理解:

1.校长能进校长办公室,而你不能。说明权限限制的是“人”。

若校长叫“老王”,那校长能进办公室是因为他叫老王还是因为它是校长?

所以,重要的不是你是谁,而是你扮演的是什么角色。权限首先限制的是角色

2.我无法在vs上看电影,也无法在爱奇艺上写代码,是因为访问的目标对象天然没有目标属性,那

么也不具备对应的权限,即使我有爱奇艺的vip,也无法在爱奇艺上写代码。所以:权限要求对应

的目标必须具备对应的属性

权限=角色+对应的权限属性

文件的权限:

文件的角色:

权限=角色+对应的权限属性

对于文件的属性:读权限,写权限,执行权限

文件的角色:拥有者,所属组,other

文件权限:

一个文件所具备的属性就三种:读(r)属性,写(w)属性,执行(x)属性

在表述文件的权限时,要把角色和属性结合起来:“某某文件的拥有者具有读写属性”

第一个字符表示文件类型,后面字符没三个为一组,第一组表示拥有者具有的文件属性,第二组表示所属组的具有的文件属性,第三组表示other具有的文件属性

  • 每一组第一个字符表示:读(r)

  • 第二个字符:写(w)

  • 第三个字符:执行(x)

修改文件权限:

修改文件属性:

字符修改法:

chmod [选项] 权限 文件名

修改file.txt的other用户的写属性

用户字符:

u:拥有者

g:所属组

o:其他用户

a:所有用户

进制修改法:

利用8进制修改文件属性

每个文件的每一组的字符对于的属性只有两种状态“rwx”或"---",也就是“是和否”。我们可以用“1”表示是,“0”表示否。如“r--”就等于“100”“rw-”等于“110”,“rwx”等于“111”,转换成八进制就是“4”,“6”,“7”

用八进制修改file.txt文件属性

修改角色:

chowm(改变文件或目录的拥有者):

chowm [选项] 用户名 文件名

修改file.txt的拥有者

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

语法:「chown」 [选项] 拥有者:所属组 文件名

功能:更改文件或目录的拥有者和所属组

修改file.txt文件的拥有者和所属组

若指向修改文件的所属组,则用chgrp

chgrp(改变文件或目录所属组):
  • 语法:「chgrp」 [选项] 用户组名 文件名

  • 功能:修改文件或目录的所属组

    修改file.txt文件的所属组

修改文件的拥有者与所属组时需要高权限,若是root用户可以修改,若是普通用户则无法修改,因为没有权限。若普通用户想修改,则需要用sudo对指令提权。

在修改文件时只能修改属于自己的文件,若拥有者不是自己,则此文件无法修改,但root能修改,因为它是超级管理员,拥有最高权限

确定权限位规则:用户a既是file.txt的“拥有者”也是”所属组“,此时“拥有者”的属性是“---”,”所属组“的属性是”rw-”。现在用户a对file.txt文件进行“读写”操作,这是不被允许的,因为没有权限。原因:在 ubunto 和 centos 下用户角色的确定,只确定一次,顺序依次是拥有者、所属组、other。一旦确定用户是拥有者,只看拥有者对应的权限

为什么拥有者也要设权限:有时候我们是需要将拥有者的权限关闭的。有些文件比较重要,这时为了防止自己误操作,就可以将自己的权限关闭。

root 用户的权限:

root用户拥有最高权限,哪怕文件不属于root,哪怕把root用户对某一文件的权限全关闭,root用户也能正常操作,因为它是超级用户,拥有最高权限。

> 所有的规则权限都是用来限制普通人的,总要有一个超用户权限来进行一些错误的修正

如何理解可执行

文件有一个属性:执行权限

但哪怕文件具备了这一权限,文件也不一定可以执行,因为该文件可能本身就不能被执行。给了执行权限只是表示该文件将来能被执行。

权限的三个问题

目录权限

缺省权限

粘滞位

目录的权限:

目录的rwx属性:

  • 想进入一个目录,需要:执行权限(x)

  • 想查看目录中的内容,需要:读权限(r)

  • 想在在目录中创建新文件或目录,需要:写权限(w)

Linux 多用户之间的隔离

在我们的 Linux 系统中,我们每新建一个普通账号,这个普通账号都会在 home 目录下新建一个以该用户名命名的目录。当以某一用户登录时,默认所处家目录就是:/home/用户名

拥有者权限是全部开启,但是 所属组 和 other 关闭了全部的权限。这意味着任何其他用户都不能对其他用户的家目录进行修改

缺省权限:

缺省权限,也称为默认权限,指的是在创建新文件或目录时,如果没有明确指定权限,则系统会自动赋予的权限。这一机制在不同的操作系统和环境中可能有所不同

linux给普通文件设置的起始权限是"666",给目录文件设置的是"777",但当文件实际创建出来时,它的权限却于此有出入:(起始权限不等于最终权限)

  • 创建一个文件时,它默认权限是”rw-rw-r--“八进制是”664“

  • 创建一个新目录,它默认权限是”rwxrwxr-x“八进制是”775“

因为系统中有一个概念叫:权限掩码(权限掩码通过umask查看)

权限掩码并不是相同的:

权限掩码有四位数字,第一位数字与uid有关,后面后面三位才与文件权限有关。

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

以普通用户的权限掩码为例:

002转换成二进制:000 000 010 ,普通文件起始权限“777”二进制就是“111 111 111”。文件最终权限 == 起始权限 &( ~umask )= =111 111 111&111 111 101==775

修改umaks:umask+修改的权限掩码

unask 的目的是什么?

  1. 增加权限的灵活性

  2. 应对新需求的灵活性

粘滞位:

当一个目录被设置了粘指位(chmod +t)则该目录下的文件只能由:

  • 超级用户删除

  • 该目录的所有者删除

  • 该文件的所有者删除

关于权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。

  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这 个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)

  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值