Linux权限

 

目录

Linux权限

一、权限概念的引入

1、什么是权限?

2、权限的本质?

3、Linux中的用户

4、Linux中文件的权限

二、对权限的操作

1、快速掌握修改权限的做法

2、对比权限有无,其表现差异

3、修改权限的第二套做法

4、了解文件类型

如上图,为何Linux创建文件时,默认权限会有差异?


1.大部分指令就是文件

2.用户执行某种功能的时候,不是直接让操作系统执行对应的指令的,而是先交给外壳程序

 

外壳程序是什么?

        介于用户和操作系统之间的软件(命令行解释器)。

为什么要有外壳程序?

  1. 用户不善于和OS之间交互
  2. shell外壳的存在,可以对请求进行合法性检查,变相的保护OS

外壳程序实现原理?

        bash基本都会给我们创建一个子进程(子进程帮用户进行命令行解释),bash只需要进

        行等待就行了。

shell和bash的区别:shell——所有外壳程序的统称;bash——特定的一个外壳程序


Linux权限

一、权限概念的引入

1、什么是权限?

        举例:vip、门禁

权限,就是通过一定的条件,拦住一部分人,给另一部分人权力,来访问某种资源。(决定有与无,能与不能的问题)

2、权限的本质?

权限和人有关

权限和事务的属性有关       

权限 = 人(用户、角色) + 事务的属性

3、Linux中的用户

  • root  ——  超级管理员,不受权限约束
  • 其他(普通用户)

Linux中有三种角色:拥有者        所属组        other

4、Linux中文件的权限

文件属性权限一般有三种:r——读;w——写;x——可执行权限

每一组第一个字符代表:是否具有读权限        如果有权限,就是r,否则,就是-

每一组第二个字符代表:是否具有写权限        如果有权限,就是w,否则,就是-

每一组第三个字符代表:是否具有执行权限        如果有权限,就是x,否则,就是-

住:一个文件能否执行 = 是否具有可执行权限  +  该文件确实可以执行

二、对权限的操作

1、快速掌握修改权限的做法

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

  • a.文件的额拥有者
  • b.root

a)chmod

chmod
功能: 设置文件的访问权限
格式: chmod [ 参数 ] 权限 文件名
常用选项:
  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

①用户表示符+、-、=权限字符

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限
  • 用户符号:  
  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

组合用法:

chmod u-r,g+w,o-rwx test.txt

2、对比权限有无,其表现差异

将拥有者读写执行权限全部删除后

发现:对于普通用户,都要受到对应权限的约束,即使这个用户是这个文件的拥有者。 

        但是root用户不受权限约束

对用户的身份进行识别,只识别一次。依次从拥有者、所属组、other向后匹配,一但匹配成功就停止。

用root用户将文件test1.txt文件的拥有者变更为root 

发现Treant可以顺利执行所属组的rwx权限

修改文件test1.txt的所属组

用户Treant已经不属于文件test1.txt的所属组,就无法执行rwx权限。

引出改变文件拥有者、所属组的Linux命令:

b)chown

chown
功能 :修改文件的拥有者
格式 chown [ 参数 ] 用户名 文件名
c)chgrp
功能 :修改文件或目录的所属组
格式 chgrp [ 参数 ] 用户组名 文件名
常用选项 -R 递归修改文件或目录的所属组
//修改文件的拥有者:
chown username filename

//修改文件的所属组:
chgrp username filename

//同时修改拥有者和所属组:
chown username1:username2 filename

普通用户无法直接改变文件的拥有者、所属组,需要暂时提权(强制)

sudo chown root test2.txt

或直接用root用户

权限的意义:保护普通用户的文件的一般的安全性

3、修改权限的第二套做法

chmod 8进制数字 /home/abc.txt
实例:
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt

4、了解文件类型

Windows是用 后缀名 区分文件类型的,

Linux不用 后缀名 区分文件类型(但并不是说Linux的文件不用后缀)。

Linux系统不以文件后缀名作为区分文件的类型,并不代表Linux上的工具(例如:gcc)也是如此。

Linux通过文件的第一个属性列区分文件类型。

Linux文件类型:

  • d:文件夹
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

目前只需记住 ‘ - ’ 和 ‘ d ’即可,剩余文件类型会再以后展开学习。

附:要想进入一个目录需要什么权限?        需要x权限

目录的r权限:决定用户是否能查看此目录下的文件信息

目录的w权限:决定用户是否能在此目录下新建、修改、删除文件

目录的x权限:决定用户是否能够进入该目录

如上图,为何Linux创建文件时,默认权限会有差异?

创建的普通文件,起始权限是:0666,没有x;

创建的目录文件,起始权限是:0777,包含x

其实,Linux具有一个权限掩码

创建文件的时候,要从起始权限中过滤掉(按位取反)在umask中出现的权限

权限掩码是可修改的(且权限掩码在不同系统是不同的)

修改umask为 0000 后,重新创建的目录权限就变成了777

补充:

删除一个文件,和此文件没有关系(不管这个文件对当前用户开放了什么权限),

而是和此文件所在目录的权限有关系。

而Linux默认将用户家目录仅对自身开放权限,别的用户rwx权限全部关闭。

如果想在Linux下由多个用户创建一个共享文件,可被多个用户共同访问,应该怎么做?

        答:这个共享文件不能再各个用户的家目录下创建,只能在系统的非用户目录下创建。

但是这种目录,其他人也可以进行修改删除等操作,所以就需要一个粘滞位。

命令

chmod +t dirname/

现在就只有目录的拥有者和root才能够删除文件,而其他人只能新建文件 。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值