当前位置: 首页 > news >正文

Linux权限

一、shell命令及其运行原理:

Linux严格意义上说的是一个操作系统,我们称之为核心(kernel),但我们一般用户不能直接使用kernel,而是用kernel的外壳程序也就是所谓的shell来与kernel沟通。

上面这些是命令行,用于与Linux系统沟通,但它们并不是操作系统的功能,而是外壳程序提供的读取命令、识别命令的功能,由命令行执行操作。

从技术角度,shell的最简单定义:命令行解释器,主要包括:

*  将使用者的命令翻译给kernel处理。

*  同时将kernel的处理结果翻译给使用者。 

 对比windows操作系统,我们不是直接操作它的系统内核,而是通过点击图形接口完成操作。

shell对于Linux,有相同的作用,主要是对我们的命令进行解析,解析指令给Linux内核,反馈结果在通过内核运行出结果,通过shell解析给用户。

外壳程序是以进程的形式呈现的,而且在命令行解释时不能挂,所以外壳程序在执行新命令时会创建子进程去执行命令。

二、Linux权限的概念:

Linux分为超级用户和普通用户:超级用户(root)可以在Linux下做任何事情,命令提示符是#,普通用户只能做有限的事情,命令提示符是$。

三、Linux权限管理:

1、文件访问者的分类:

*文件和文件目录的所有者:u

*文件和文件目录的所有者所在的组的用户:g

*其他用户:o

2、文件类型和访问权限:

(1)文件类型:

d:文件夹

-:普通文件

l:软链接(类似windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

(2)基本权限:

*r读:read对文件而言具有读取文件内容的权限,对目录而言具有浏览该目录信息的权限。

*w写:write对文件而言具有修改文件内容的权限,对目录而言具有删除移动目录内文件的权限。

*x执行:exectue对文件而言具有执行文件的权限,对目录而言具有进入目录的权限。

*-表示不具有该项权限。

就比如r--表示只读,rw-表示可读可写,r-x表示可读可执行,-w-表示只可写,---表示没有权限。

3.文件访问权限的相关设置方法:

(1)chmod

功能:修改文件权限信息

例如想要修改一个my.txt文件拥有者读的权限:chmod u-(+)r my.txt

 修改文件所属组读的权限:chmod g-(+)r my.txt

同时修改三个位置的读的权限:chmod a-(+) my.txt,a表示all所有。

 (2)chown

功能:修改文件的拥有者

(3)chgrp

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

四、知识点汇总:

1.用户只能修改自己的文件权限,无法修改其他用户的。

2.没有权限发生的事:对于目标文件来说,如果没有具备相应的权限,系统会拒绝访问。

例如:剥夺my.txt文件写入的权限,就无法再进行写入的操作。

3.确定权限信息时,系统会先确定用户是谁,属于拥有者还是所属组还是其他。在Centos下,用户角色只确定一次,依次是拥有者所属组还是其他。就比如访问的用户是拥有者,系统从拥有者这一栏开始查,发现可以匹配,然后就看拥有者有没有对应的权限,没有那就无法访问,且不会再往下查,也不会再查询一次;如果访问的用户是非拥有者但是是所属组的一员,系统从拥有者这里查,发现身份不匹配,就接着查所属组,发现匹配,就看所属组那一栏有没有对应的权限。

4.root作为超级用户不受约束,想改什么改什么。

5.关于可执行文件,只有是可以本来就可以执行的文件在加上可以执行的权限才可以执行,就是给你机会但你要中用。

6.关于文件权限位都是三个三个为一组,每个位置要么就是r w x 要么就是没有权限 - ,也就是每位置都是两态的,当作比特位来看就可以表示成1或者0,上图的 my.txt 看起来就是110 110 100,将这个二进制码转换为八进制,第一、二组就是6,第三组就是4,这个文件的权限就可以表示为664,那么修改文件权限就可以用八进制表示来修改,比如:

7.对于目录来说,起始权限是777,默认携带x,因为要可以进入,所以要有x执行。但是对于普通文件来说,起始权限是666,也就是说默认不带x,因为只有可执行文件,才可以被执行。

但是上图中可以看到,该目录的起始权限是775,包括普通文件也是664不是666。这是因为在系统里存在一个权限掩码的概念, 叫做umask。

当前我的系统默认的权限掩码是0002,这个数字是八进制的,第一个0是与用户相关的,可以不做考虑,也就是说我的权限掩码缺省的是002,写成二进制就是000 000 010,它的意思是文件的最终权限=起始权限 & (~umask) 。以目录权限为例,起始权限是777转换为二进制就是111 111 111,umask就是000 000 010,对其进行按位取反,就变成111 111 101,再与起始权限按位与,就是111 111 101,这个数字转换为八进制就是775也就是目录所显示的最终权限。

8.umask出现的目的是希望在umask中出现的权限,都不应该在最终权限中权限。也就可以实现在最终权限中自己希望文件的权限是什么,就可以通过修改umask从而实现最终权限的修改。可以使系统可配置,可以灵活满足需求。在特殊情况下,配置umask,可以控制文件的默认权限,让我们的代码都是可控的。

9.粘滞位:只用用于需要共享的目录,使任何一个人都能在共享目录下新建,但不能让非拥有者删除。 

相关文章:

  • 搭建人工智能RAG知识库的主流平台与特点概述
  • 苍穹外卖05 Redis常用命令在Java中操作Redis_Spring Data Redis使用方式店铺营业状态设置
  • 学习python day4
  • ILRuntime中实现OSA
  • 第20天-python生成word文档
  • [Linux] Linux信号量深度解析与实践(代码示例)
  • C++ for QWidget:正则表达式和QRegExp
  • 提升搜索效率:深入了解Amazon Kendra的强大功能
  • ERP 与 WMS 对接深度解析:双视角下的业务与技术协同
  • origin绘图之【如何将多条重叠、高度重叠的点线图、折线图分开】
  • CASAIM与荣耀达成合作,三维数字化检测技术助力终端消费电子制造实现生产工艺智能优化
  • 【Elasticsearch】字段别名
  • RPA浪潮来袭,职业竞争的新风口已至?
  • 适合初学者的 Blender和怎么下载 Blender格式模型
  • Redis从入门到实战 - 高级篇(下)
  • C++ 输出流格式控制
  • AI加速芯片全景图:主流架构和应用场景详解
  • 多模态学习笔记
  • WordPress Madara插件存在文件包含漏洞(CVE-2025-4524)
  • Java开发-如何将一个字符串转换成一个数组,又如何把他转换成一个集合
  • 重庆模板做网站/今日全国疫情一览表
  • 网上购物网站建设论文6/微博热搜榜排名今日
  • 政府部门网站建设内容/企业培训课程分类
  • 成都做整站优化/雷神代刷推广网站
  • 泰安公司网站开发/如何注册百度账号