【Linux】权限

1、shell命令以及运行原理

  • Linux 严格意义上说的是一个操作系统,我们称之为"核心(kernel)" ,但我们一般用户,不能直接使用 kernel。而是通过 kernel 的"外壳"程序,也就是所谓的shell,来与 kernel 沟通
  • 从技术角度,Shell 的最简单定义:命令行解释器 (command Interpreter)主要包含:
    (1)将使用者的命令翻译给核心(kernel)处理。
    (2)同时,将核心的处理结果翻译给使用者。
  • 对比 windows GUI,我们操作 windows 不是直接操作 windows 内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符,或者运行起来一个应用程序)。
  • shell 对于 Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给 Linux 内核。反馈结果在通过内核运行出结果,通过 shell 解析给用户。
  • shell 是总称,具体可以有 bash / sh

2、Linux权限的概念

(1)用户种类

Linux下有两种用户:超级用户(root)、普通用户。【超级用户的命令提示符是"#",普通用户的命令提示符是"$"】

  • 超级用户(root):可以再 linux 系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。

(2)切换用户

命令:su 用户名

功能:切换用户。

例如,要从 root 用户切换到普通用户 user,则使用 su user 。 要从普通用户 user 切换到 root 用户则使用 su root(root可以省略)/ su ,此时系统会提示输入 root 用户的密码

(3)命令提权

  • 普通用户:sudo 指令【对指令提高权限】
  • 输入的密码是普通用户密码

3、Linux权限管理

【1】文件访问者的分类(人)

  • 文件和文件目录的所有者:u---User
  • 文件和文件目录的所有者所在的组的用户:g---Group
  • 其它用户:o---Others

【2】文件类型和访问权限(事物属性)

Linux 区分文件类型与后缀无关 ,和文件是否具有可执行权限有关

后缀的意义:方便人看;虽然 Linux 系统不区分,但是不代表其他软件不区分(gcc)

【3】文件权限值的表示方法

【4】文件访问权限的相关设置方法

(1) chmod

  • 功能:设置文件的访问权限
  • ❗ 补充:【root 权限不受限制】【只有文件的拥有者和 root 才可以改变文件的权限】【权限只会匹配一次】
  • 常用选项:
    R -> 递归修改目录文件的权限

(a)用户表示符+/-=权限字符

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


(b)三位8进制数字

(2)chown

  • 功能:修改文件的拥有者
  • 格式:chown 参数 用户名 文件名
  • 实例:[root@hecs-38755 109]# chown LMY T.txt【只修改拥有者】
    [root@hecs-38755 109]# chown root:root T.txt【同时修改拥有者和所属组】

(3)chgrp

  • 功能:修改文件或目录的所属组
  • 格式:chgrp 参数 用户组名 文件名
  • 常用选项:-R 递归修改文件或目录的所属组
  • 实例: [LMY@hecs-38755 109]$ sudo chgrp root test.txt【普通用户需要提权】
    [LMY@hecs-38755 109]$ sudo chown root:root T.txt【同时修改拥有者和所属组】

4、默认权限和默认权限掩码

  • umask
  • 功能:查看或修改文件掩码
    (1)新建文件夹默认权限 = 0666
    (2)新建目录默认权限 = 0777

    (3)但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask 的影响 。假设默认权限是 mask,则实际创建的出来的文件权限是: mask & ~umask
  • 格式:umask 权限值
  • 说明:将(现有的存取权限)&(权限掩码的反码)后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002
  • 实例:
    # umask //查看
    # umask 0003//设置

5、file指令

  • 功能说明:辨识文件类型。
  • 语法:file 选项 文件或目录...
  • 常用选项:
    -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
    -z 尝试去解读压缩文件的内容

6、目录的权限

  • 可执行权限【x】: 如果目录没有可执行权限, 则无法 cd 到目录中
  • 可读权限【r】: 如果目录没有可读权限, 则无法用 ls 等命令查看目录中的文件内容
  • 可写权限【w】: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
    (1)目录的可执行权限是表示你可否在目录下执行命令。
    (2)如果目录没有 -x 权限,则无法对目录执行任何命令,甚至无法 cd 进入目录。进入目录和 -r 读权限无关。
    (3)如果目录有 -x 权限,但没有 -r 权限,则用户可以执行命令,可以 cd 进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行 ls 命令,但仍然没有权限读出目录下的文档。

7、粘滞位

  • 换句话来讲, 就是只要用户具有目录的写权限,用户就可以删除目录中的文件,而不论这个用户是否有这个文件的写权限。
  • 为了解决这个不科学的问题,Linux引入了粘滞位的概念。
  • ❗注:粘滞位是给目录设置的
  • [root@localhost ~]# chmod +t [目录名] 【添加粘滞位】
  • 当一个目录被设置为粘滞位chmod +t [目录名] ),则该目录下的文件只能由:
    (1)超级管理员删除
    (2)该目录的所有者删除
    (3)该文件的所有者删除
相关推荐
Sagittarius_A*7 分钟前
Docker:渗透前置容器化核心基础
运维·安全·docker·容器
网络小白不怕黑1 小时前
监控httpd状态
服务器
阿米亚波2 小时前
【EVE-NG 实战】防火墙基础(VLAN · VRRP · NAT · ACL · 静态路由)
运维·网络·笔记·网络协议·计算机网络·网络安全·运维开发
日取其半万世不竭2 小时前
云服务器迁移怎么少停机?DNS 切换前后的完整清单
运维·服务器
FREEDOM_X2 小时前
Linux 多线程编程——总结
java·linux·运维·ubuntu
名字还没想好☜3 小时前
Docker 多阶段构建:把镜像从 1.2GB 砍到 15MB
运维·docker·容器·多阶段构建·镜像优化
祸心依旧3 小时前
Visual Studio 五月更新 —— 计划、评审、优化
运维·人工智能·visual studio
Web4Browser3 小时前
Headless 浏览器自动化适合哪些任务?巡检、截图和提交动作要分级
运维·前端·自动化
難釋懷3 小时前
Nginx浏览器强制缓存
运维·nginx·缓存
Elastic 中国社区官方博客3 小时前
如何为阿里云 Elasticsearch 创建推理端点,连接器,Workflow 并写入数据
大数据·人工智能·elasticsearch·搜索引擎·阿里云·云计算·全文检索