【Linux入门】---Linux权限管理详解

文章目录

  • 1.shell命令以及运行原理
  • 2.linux用户分类
    • su指令切换用户
  • 3.Linux权限管理
    • 3.1Linux文件访问者
    • 3.2文件类型和访问权限
    • 3.3文件权限值的表示方法
    • 3.4文件访问权限的相关设置方法
      • chmod指令--权限修改方法①
      • chmod指令--权限修改方法②
      • chown指令
      • chgrp指令
      • umask指令
      • file指令
  • 4.目录权限
  • 粘滞位
  • 5.sudo问题
  • 总结

1.shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?从技术角度,Shell的最简单定义:即命令行解释器(command Interpreter),其主要工作包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符,或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的
且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash
问题1:替我们与操作系统打交道的解释器有哪些呢?
解释器有:LInux系统上的命令行解释器shell(媒婆),而shell又分为bash(王婆)、sh(李婆)等;以及Windows常用的图形化界面

2.linux用户分类

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

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

su指令切换用户

命令:

su 用户名//只切换用户身份,不改变用户环境变量(用户处家目录)
su - 用户名//改变用户身份,并且改变用户环境变量(用户处家目录)

该指令功能为: 切换用户。
注意:①su指令后面不加用户名,默认用户名为root用户②用户之间切换账号需要输入用户的密码,root用户切换为普通用户直接进入无需输入密码。即root用户不受权限的约束,普通用户受到权限的约束。
在这里插入图片描述
③输入exit指令可以回退到上一个使用的用户账号,也可以在键盘中按住Ctrl+d建达到相同的效果。
在这里插入图片描述

3.Linux权限管理

3.1Linux文件访问者

文件和文件目录的所有者:u---User ,即文件拥有者
文件和文件目录的所有者所在的组的用户:g---Group,即文件所属组
其它用户:o---Others,即不属于上面两类,称为文件其他用户

3.2文件类型和访问权限

当我们使用ll指令查看文件详细信息时,它列举的文件信息是什么呢?
在这里插入图片描述
知道了文件基本信息,上面的文件中文件的类型、文件的权限有哪些呢?以及权限与访问者之间是什么关系呢?让我们一起往下看!

文件类型

d:文件夹(目录文件)
-:普通文件(文本文件,可执行程序,库都属于普通文件)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件(用来进行用户通信的)
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

Linux基本权限:

权限名称符号表示八进制位表示权限说明
可读权限r4Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
可写权限w2Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
可执行权限x1execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
无权限-0“—”表示不具有该项权限

3.3文件权限值的表示方法

(1)字符表示方法

访问者对应位置的权限的含义是确定的,权限组合方式如下:
在这里插入图片描述
(2)8进制数值表示方法
在这里插入图片描述
Linux用户和Linux文件的访问者之间的关系是:①Linux用户是一个人,Linux文件的访问者是一种角色身份,权限是Linux系统赋予访问者的能力;②Linux用户可以是拥有者、所属组、其他人的角色身份,可以拥有可读、可写、执行的权限;③普通用户受访问者权限的限制,root用户不受访问者权限的限制。
在这里插入图片描述

3.4文件访问权限的相关设置方法

chmod指令–权限修改方法①

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

chmod命令权限值的格式

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

  • +:向权限范围增加权限代号所表示的权限(在原有权限基础上,增加权限)
  • -:向权限范围取消权限代号所表示的权限(在原有权限基础上,取消权限)
  • =:向权限范围赋予权限代号所表示的权限 (原有权限被清除后,重新赋予权限)
  • 用户符号: u:拥有者 g:拥有者同组用户 o:其它用户 a:所有用户
    在这里插入图片描述

Linux文件访问者被取消相关权限后哪些指令操作不能被执行呢?

在这里插入图片描述
①取消r(读写)权限后,文件里面的内容信息不能被查看。
在这里插入图片描述
②取消可写权限后,不能对文件进行删除、创建文件、更改文件信息操作
在这里插入图片描述
③取消文件可执行权限后,不能进入文件中,但可以查看文件内容。

chmod指令–权限修改方法②

语法:

chmod 6(拥有者权限)6(所属组权限)6(其他人权限) 文件名
在这里插入图片描述
对应位置的权限被允许对应二进制数字为1,否则为0,如文件拥有者可读、可写、可执行的权限被允许,其对应二进制为111,转化为八进制数为7。
在这里插入图片描述
三个位置上都有表示权限的八进制数字,文件拥有者、所属组、其他用户将会对应起来;若是只有一个表示权限先修改其他用户的权限(其他用户->所属组->拥有者),其他访问者的权限默认为0。

chown指令

功能: 修改文件的拥有者
格式: chown [参数] 用户名 文件名
实例:
在这里插入图片描述
注意: 该指令只能被root用户使用,普通用户要想使用需要sudo chown对该指令提权

chgrp指令

功能: 修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
实例
在这里插入图片描述
注意: 该指令只能被root用户使用,普通用户要想使用需要sudo chown对该指令提权

在这里插入图片描述

为什么目录文件默认权限为775,文本文件的默认权限为664,这个与指令umask设置的文件掩码相关

umask指令

功能: 查看或者修改文件掩码
格式: umask 权限值
说明: 超级用户默认掩码值为0022(对应二进制为000 010 010),普通用户默认为0002(对应二进制为000 000 010)。
在这里插入图片描述
在这里插入图片描述
我们新建文本文件的起始权限为666,新建目录文件起始权限为777,到底经过操作系统的什么操作之后文本文件的权限为664,目录文件权限为775呢?
在这里插入图片描述
按位与运算符操作方法:两个二进制数进行比较,对应位置有零则为零,两个同时为1才为1。
普通用户实例:
在这里插入图片描述
在这里插入图片描述
root用户实例:
在这里插入图片描述
总结:
最终权限确认方法:①二进制法,最终权限=起始权限&(~umask掩码);②将权限转换位八进制,将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。

file指令

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

4.目录权限

实例在这里插入图片描述
在上面操作中,root用户使用chmod指令将/home文件定义为一个”共享文件“,并在/home目录创建了一个root.c的普通文件,保证其他用户可读可写可执行操作,达到资源共享的目的;但是普通用户未经root用户允许的情况下竟然可以删除\home目录下的root,c文件,这是不是太过分了!

粘滞位

针对上面的情况,我们可以进行如下操作
在这里插入图片描述
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
在这里插入图片描述
所以带粘滞位的共享文件既保障了文件拥有者的合法权益,又达到了文件资源共享的目的,这样的文件才是真正的共享文件。在根目录下,LInux系统已经创建好了一个tmp的共享文件(带粘滞位的),供用户之间共享资源。

5.sudo问题

使用普通用户账号会受到权限的约束,有些指令使用不了,只有root才能使用,那普通用户能不能使用呢?当然可以,前提是root用户将该普通用户列在信任白名单上。
使用root账号进行操作:

# vim /etc/sodoers

往下找到白名单的位置:
在这里插入图片描述
添加root信任的用户到白名单中:
在这里插入图片描述
强制保存退出后,为添加成功
在这里插入图片描述
普通用户获得root用户信任后(即普通用户添加到信任白名单中),在任何指令前加sudo,就获得root用户的权限,但不可以滥用哦!小心被root用户请出白名单。
普通用户添加到白名单之前:
在这里插入图片描述
普通用户添加到白名单之后:
在这里插入图片描述

总结

可执行权限: 如果目录没有可执行权限,则无法cd到目录中。
可读权限: 如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容。
可写权限: 如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。
①目录的可执行权限是表示你可否在目录下执行命令;如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)。
②如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

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

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

相关文章

基于SpringBoot的电影购票系统

基于SpringBootVue的电影购票系统、影视商城管理系统,前后端分离 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 管理员:个人…

Unity 安装及运行MLAgents

1、下载ML-Agents 下载地址 GitHub - Unity-Technologies/ml-agents: The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents using deep reinfo…

Linux基础指令(四)

目录 前言1. find & which 指令1.1 find1.2 which1.3 alias1.4 where 2、grep 指令3、xargs 指令结语: 前言 欢迎各位伙伴来到学习 Linux 指令的 第四天!!! 在上一篇文章 Linux基本指令(三) 当中,我们学会了通过…

CDH集群初始化oozie失败表结构不存在

文章目录 1. 背景2. 初始化数据库2.1 生成表结构2.2 初始化数据库 3. CDH管理页面始化 oozie 服务 1. 背景 安装CDH 6.3.2 版本时初始化集群服务过程中出现oozie server启动失败的情况,第一次创建集群成功,第二次失败了,分析日志信息 SERVER…

使用ElementPlus实现内嵌表格和内嵌分页

前言 有时遇到这样的需求,就是在表格里面嵌入一个表格,以及要求带有分页,这样在ElementPlus中很好实现。以下使用Vue2语法实现一个简单例子,毕竟Vue3兼容Vue2语法,若想要Vue3版本例子,简单改改就OK了。 一…

快递、外卖、网购自动定位及模糊检索收/发件地址功能实现

概述 目前快递、外卖、团购、网购等行业 :为了简化用户在收发件地址填写时的体验感,使用辅助定位及模糊地址检索来丰富用户的体验 本次demo分享给大家;让大家理解辅助定位及模糊地址检索的功能实现过程,以及开发出自己理想的作品…

IDEA中创建Java Web项目方法2

以下过程使用IntelliJ IDEA 2021.3 一、创建Maven项目 1. File -> New -> Projects... 2. 选择Maven,点击Next 3. 输入项目名称,Name: WebDemo3。点击 Finish,生成新的项目 二、添加框架支持 1. 在项目名上右键,选择 A…

云服务部署:AWS、Azure和GCP比较

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

线性代数基础-矩阵

八、矩阵的基础概念 1.矩阵 我们忘掉之前行列式的一切,列一种全新的数表,虽然长得很像,但是大不相同,首先一个区别就是矩阵不能展开成一个值,这里不讨论矩阵的空间意义 { a 11 x 1 a 12 x 2 a 13 x 3 . . . a 1…

【C#】【源码】直接可用的远程桌面应用

【背景】 封闭环境无法拷贝外来的远程桌面软件,所以就直接自己用C#写一个。 【效果】 【说明】 本篇会给出完整的编程步骤,照着写就能拥有你自己的远程桌面应用,直接可以运行在局域网。 如果不想自己敲代码,也可以选择直接下载…

Redis环境配置

【Redis解压即可】链接:https://pan.baidu.com/s/1y4xVLF8-8PI8qrczbxde9w?pwd0122 提取码:0122 【Redis桌面工具】 链接:https://pan.baidu.com/s/1IlsUy9sMfh95dQPeeM_1Qg?pwd0122 提取码:0122 Redis安装步骤 1.先打开Redis…

OPENCV实现DNN图像分类

使用步骤1 使用步骤2 使用步骤3 使用步骤4 使用步骤5 使用步骤6 完整代码如下: import numpy as np

线程的方法(未完成)

线程的方法 1、sleep(long millis) 线程休眠:让执行的线程暂停一段时间,进入计时等待状态。 static void sleep(long millis):调用此方法后,当前线程放弃 CPU 资源,在指定的时间内,sleep 所在的线程不会获得可运行的机…

解决MySQL8.0本地计算机上的MySQL服务启动后停止没有报告任何错误

1.启动MySQL的错误信息如下 (1)“本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。” (2)又在PowerShell中运行"net start MySQL",服务启动失败。“MySQL 服务无法启…

MyBatis初级

文章目录 一、mybatis1、概念2、JDBC缺点2.1、之前jdbc操作2.2 、原始jdbc操作的分析 3、mybatis的使用3.1、导入maven依赖3.2、新建表3.3、实体类3.4、编写mybatis的配置文件3.5、编写接口 和 映射文件3.6、编写测试类3.7、注意事项 4、代理方式开发5、mybatis和spring整合5.1…

二进制 Deploy Kubernetes v1.23.17 超级详细部署

文章目录 1. 预备条件2. 基础配置2.1 配置root远程登录2.2 配置主机名2.3 安装 ansible2.4 配置互信2.5 配置hosts文件2.6 关闭防firewalld火墙2.7 关闭 selinux2.8 关闭交换分区swap2.9 修改内核参数2.10 安装iptables2.11 开启ipvs2.12 配置limits参数2.13 配置 yum2.14 配置…

什么是 BSD 协议?

BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件&…

Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码

git的ssh配置 HTTPS和SSH的区别设置SSH方式配置单个仓库配置账户公钥 大家通过git拉取代码的时候,一般都是通过http的方式,简单方便。但是细心的童鞋肯定也注意到Git也是支持ssh方式的。可能很多人也试过使用这个方式,但是好像没有那么简单。…

Python爬虫实战案例——第五例

文章中所有内容仅供学习交流使用,不用于其他任何目的!严禁将文中内容用于任何商业与非法用途,由此产生的一切后果与作者无关。若有侵权,请联系删除。 目标:采集三国杀官网的精美壁纸 地址:aHR0cHM6Ly93d3…

IDEA2023.2.1中创建第一个Tomcat的web项目

首先,创建一个普通的java项目。点击【file】-【new】-【project】 创建一个TomcatDemo项目 创建如下图 添加web部门。点击【file】-【project structure】 选择【modules】-选中项目“TomcatDemo” 点击项目名上的加号【】,添加【web】模块 我们就会发现…