【Linux系列P3】Linux的权限有什么重点?一文带你理清!

news2025/1/12 22:59:15

前言

大家好,这里是YY的Linux系列part3;本章主要内容面向能使用Linux的老铁,主要内容是【Linux的用户&用户指令】【文件属性】【权限&权限值的两者表达方式】【权限相关指令】【起始权限问题与掩码问题】【粘滞位的概念与特殊权限-t解读

在下一章节【Linux系列part4】中,YY将手把手讲述Linux的工具,欢迎订阅YY的Linux专栏!更多干货持续更新!

目录

一.Linux的用户&用户指令

1.用户

2.用户指令 

一.【su类】 

二.【 exit / ctrl d】

三.【sudo】 

二.权限

1.文件属性 

2.属性的基本要素 

3.文件权限值的表达方式 

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

a)chmod(设置文件的访问权限)

   参数:【字符表示方法】

   参数:【2进制表示】

b)chown(修改文件的拥有者)

c)chgrp(修改文件或目录的所属组)

三. 起始权限问题

1.相关指令 umask

2.原理剖析 

四.粘滞位 【t 权限】

1.原理剖析 


一.Linux的用户&用户指令


1.用户

Linux下有两种用户:超级用户(root)、普通用户

  • 超级用户:可以在linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$

2.用户指令 


一.【su类】 

命令:su + [用户名]

功能:切换用户。

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

注意区分: su  -    

  •    利用【su - 】切换成超级用户的原理是【重新登陆】,而【su】只是【单纯切换 

 图示: 


二.【 exit / ctrl d】

命令:exit / ctrl d

功能:返回超级用户root(从root,su到普通用户后)


三.【sudo】 

命令:sudo + 指令 

场景:【信任白名单中的普通用户】

功能:提高普通用户的权限,【再输入普通用户的密码后】完成一些普通用户完成不了的指令

注意要点:正常我们用 【adduser指令 创建的普通用户】是无法完成sudo提权的,因为如果普通用户只需要输入自己的密码就能拥有超级用户的权限去完成指令,十分不合理;只有添加到系统的信任白名单(/etc/sudoers)即配置文件中,才能成功执行;


二.权限


1.文件属性 

引入:在根目录下,输入 ll 时,会出现图示情况,这些代表什么?

回答,上图示中,出现的是文件的属性

属性的具体细分如下


2.属性的基本要素 

  a)三种基本身份

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

 b)文件类型

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

 c)三种基本权限

  1. “—”表示不具有该项权限
  2. 读权限( r/4 ):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  3. 写权限( w/2 ):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限(重点!!!)
  4. 可执行权限( x/1 ):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限;

注意要点:

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

3.文件权限值的表达方式 

a)字符表示方法

b)2进制 / 8进制 表示 


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


a)chmod(设置文件的访问权限)

格式:chmod [参数] 权限 文件名

注意:只有文件的拥有者和root才可以改变文件的权限

常用选项:

  • R -> 递归修改目录文件的权限

  • 参数:【字符表示方法

用户表示符+/-=权限字符:

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户表示符:  

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

例:

# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt 

  •  参数:【2进制表示

三位8进制数字:

  • 即用8进制方式,依次排布

图示:

例:

# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt

b)chown(修改文件的拥有者

格式:chown [参数] 用户名 文件名

常用选项:

  • -R 递归修改文件或目录的所属组

例:

# chown user1 f1
# chown -R user1 filegroup1

c)chgrp(修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:

  • -R 递归修改文件或目录的所属组

例:

#chgrp users /abc/f2
#chgrp -R users /abc/f2

三. 起始权限问题


1.相关指令 umask

a)umask

功能: 查看或修改文件权限掩码

格式:umask 权限值 说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户 默认掩码值为0022普通用户 默认为0002;(正常应该只有三位,分别代表rwx,这里是采用了将第一位的0当作用二进制表示的方式

常用选项:

  • 查看权限掩码:umask 
  • 设置权限掩码:umask 044 / 其他

2.原理剖析 

引入:新建文件夹默认权限=0666 新建目录默认权限=0777 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。

原因:

  • 创建文件或目录的时候还要受到 umask 的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask;用直观感受理解就是——凡是在umask权限掩码中出现的权限(0022/0002),不会再在最终权限中出现;

YY的粗暴理解:

  • 在umask权限掩码二进制下,有一些位为1;则最终掩码二进制的位置不能再其位置上出现1,统统为0;其余照搬默认掩码;

图示:(普通用户,即umask权限掩码为0002的情况)

  • 新建文件夹的最终权限664

  •  新建目录的最终权限= 775


四.粘滞位 【t 权限】

引入:

  • 众所周知,普通用户的权限为700,即它在家目录下创建的文件,其他普通用户都无权查看;
  • 因此为了共享项目,我们有时不能把文件建立在家目录下;而是应该建立在一个共有的,系统默认自带的【共享目录tmp】 【目录文件】下
  • 重点:目录文件的w权限是支持修改和删除的!也就是任何一个普通用户都有权力删库跑路,这是非常不能接受的;

1.原理剖析 

于是乎,我们引进了【粘滞位】:

  • 给目录设置,(一般是共享目录);大家可以在共享目录下创建各自的文件,并进行自己的增删查改;只能允许文件各自的拥有者(普通用户)或者root(超级用户)有权力删除;【 t 】是一种特殊的 x 权限!

代码演示:

# chmod +t /home/ # 加上粘滞位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/560873.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Ext JS3.9] 标签面板(TabPanel )介绍与开发

标签面板 标签面板是RIA 类应用使用较多的组件, 因为其可以显示的内容比较多。 标签面板的效果如下图: 标签面板开发也很简单, 配置式的开发代码类似: {xtype: tabpanel,items: [{title: 标签页1,html:标签页1内容}, {title: 标签页2,html:标签页2内容}, {title: 标签页…

【教学类-34-05】拼图(数字学号0X-长方块拼图-双色深灰浅灰)3*3格子(中班主题《个别化拼图》偏艺术-美术)

作品展示 背景需求 难点:如何让生成图片带两个颜色的数字? 上一次学习活动中,发现03、04、05、06、08、09 、 23、26、28拼图都有困境,教师帮助。这些数字都包含圆弧结构,幼儿对于大量的圆弧碎片图形的多重组合&…

【Java-Crawler】一文学会使用WebMagic爬虫框架

WebMagic 爬虫主要分为采集、处理、存储三个部分。 在学 WebMagic 框架之前,需要了解 HttpClient、Jsoup(Java HTML Parse) 库,或者说会他们的基本使用。因为 WebMagic 框架内部运用了他们,在你出现问题看源码去查错时…

MySQL主从复制配置

一、MySQL主从概念 MysSQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台AysQL数据库(slave,即从库)从另一台MysQL数据库(master,即主库)进行日志的复制然后再解析日志并应…

一、尚医通排班管理

文章目录 一、排班管理1、页面效果2、接口分析3、实现分析 二、排班管理实现1、科室列表1.1 api接口1.1.1 添加service接口与实现1.1.2 添加controller接口 1.2 科室前端1.2.1 添加路由1.2.2 添加按钮1.2.3封装api请求1.2.4 部门展示 2、排班日期分页列表2.1 api接口2.1.1 添加…

Net跨平台UI框架Avalonia入门-DataGrid的使用

Avalonia中的DataGrid的使用 DataGrid 数据表格是客户端UI中很重要的一个控件,Avalonia中的DataGrid是单独一个包Avalonia.Controls.DataGrid,要使用DataGrid,需要另外在Nuget中按这个包,下面介绍一下DataGrid的安装和使用 Data…

android/ios 一键抽取硬编码字符串

由于老项目 做国际化困难,抽取繁琐 最终实在蛋疼 最终开放插件来解决 android studio 插件 一键抽取硬编码字符串 xcode 一键抽取硬编码字符串 环境配置android studio ,appcode idea 环境类似1.安装插件 插件下载点击 2. 配置生成文件路径 android 就是string.xml ios Loca…

搭建stm32电机控制代码框架(一)

也是挑战一下自己吧,看看多久能够把自己的代码框架搭建起来,今天是5月23日,看看最终搭建成功的时候是什么时候,目标其实这个阶段很简单,电机转一个双闭环FOC就行。 这次的任务是基于stm32f405芯片进行展开&#xff0c…

STM32单片机(一)STM32简介

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

国产FPGA选型指南:如何选择适合你的国产FPGA芯片?

FPGA自1985年由Xilinx的创始人之一Ross Freeman发明后,全球90%的FPGA市场一直被国外厂家所占有,主要是这四家公司:Xilinx、Altera、Lattice、Microsemi。 Xilinx 和Altera公司占据了全球近80%以上的市场份额,且拥有着FPGA领域绝大…

Java学习笔记20——内部类

内部类 内部类的访问特点内部类的形式成员内部类局部内部类匿名内部类匿名内部类在开发中使用 内部类是类中的类 内部类的访问特点 1.内部类可以直接访问外部类的成员,包括私有成员 2.外部要访问内部类的成员,必须创建对象 内部类的形式 成员内部类 …

java变量类型

文章目录 一、java变量类型一.java变量类型二、Java 参数变量三、Java 局部变量四、成员变量(实例变量)五、类变量(静态变量) 总结 一、java变量类型 一.java变量类型 在Java语言中,所有的变量在使用前必须声明。声明…

13. InnoDB引擎底层原理及Mysql 8.0 新增特性详解

MySQL性能调优 查看系统中的各种LSN值 本文是按照自己的理解进行笔记总结,如有不正确的地方,还望大佬多多指点纠正,勿喷。 01.redo日志的作用和格式 02.redo日志的写入过程 03.什么是Log Sequence Number? 04.innodb_flush_log_at_trx _c…

(学习日记)AD学习 #3

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

二叉树的学习

最近在复习数据结构和线性代数,先准备周六的线代考试,好好复习。 目录 树的概念 结点: 空树: 子树: 结点的度: 树的度: 层数: 结点的深度: 结点的高度&#xff…

matplotlib运用:电商广告投入及销量预测【数据集+完整代码】

前期准备 数据准备 数据集有两个表 销售数据表投放费用的广告费用表 文章源码获取方式 👉👉 点击文末名片 1. 分别按 日 和 月 分析销售收入 绘制子图 figure(numNone, figsizeNone, dpiNone, facecolorNone, edgecolorNone,frameonTrue)num:图像…

23岁大专零基础学网络安全能找到工作吗?

当然好找工作,如今在21世纪的信息时代,我们的生活与互联网越来越不可分割。但与此同时,信息安全事件也不时发生,网络安全越来越受到关注。譬如,近期360集团公布黑客帝国对我国进行长达10年的网络攻击;北京健…

MySQL调优方式

1. 选择合适的存储引擎: InnoDB 除非你的数据表使用来做只读或者全文检索 (相信现在提到全文检索,没人会用 MYSQL 了),你应该默认选择 InnoDB 。 你自己在测试的时候可能会发现 MyISAM 比 InnoDB 速度快,这是因为: MyISAM 只缓存索…

三、DRF关联表的序列化(通过主表,查询从表数据)

官方文档: Serializers - Django REST framework中文站点 上一章: 二、Django REST Framework (DRF)序列化&反序列化_做测试的喵酱的博客-CSDN博客 一、前提 models.py class MiaoClass(models.Model):id models.AutoField(primary_keyTrue, v…

Springboot +spring security,实现前后端分离,使用JSON数据格式登录(将表单提交方式改成json格式登录)

一.简介 在前面的文章中,我们使用表单方式完成登录提交,但是目前基本都是前后端分离项目,很少使用表单提交的方式,基本都是json方式,使用ajax提交,那么我们怎么将表单提交方式改成json格式登录呢&#xff…