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

Linux——Linux权限

在这里插入图片描述

Linux权限

  • 前言
  • 一、shell命令以及运行原理
  • 二、Linux权限的概念
    • Linux权限管理
      • 文件访问者的分类(人)
      • 文件类型和访问权限(事物属性)
      • 文件权限值的表示方法
      • 文件访问权限的相关设置方法
    • file指令
    • 目录的权限
      • 粘滞位
  • 总结


前言

linux的学习开始啦!
今天我们继续来认识指令!
认真学习吧,到达你曾无限向往的地方!
注:本文操作实现均在虚拟机上运行


一、shell命令以及运行原理

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

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。
同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

怎么类比呢?就好比一个常年在家办公的程序员,到了适婚的年纪,就需要找到业务熟练的媒婆(shell)来说一门亲事,从而与另一人家的姑娘(操作系统)谈起婚嫁!
在这里插入图片描述

二、Linux权限的概念

Linux下有两种用户:超级用户(root)、普通用户。
. 超级用户:可以再linux系统下做任何事情,不受限制
. 普通用户:在linux下做有限的事情。
. 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
命令:su [用户名]
功能:切换用户。

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

Linux权限管理

文件访问者的分类(人)

. 文件和文件目录的所有者:u—User(中国平民 法律问题)
. 文件和文件目录的所有者所在的组的用户:g—Group(不多说)
. 其它用户:o—Others (外国人)

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

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

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

文件权限值的表示方法

字符表示方法
在这里插入图片描述
8进制数值表示方法

在这里插入图片描述

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

chmod
功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名

常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式

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

实例:

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

chmod a=x /home/abc.txt

三位8进制数字
实例:

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

chown
功能: 修改文件的拥有者
格式: chown [参数] 用户名 文件名
实例:

# chown user1 f1
# chown -R user1 filegroup1

chgrp
功能: 修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
实例:

chgrp users /abc/f2

umask
功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式: umask 权限值
说明: 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
实例:

# umask 755
# umask //查看
# umask 044//设置

file指令

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

使用 sudo分配权限
修改/etc/sudoers 文件分配文件

# chmod 740 /etc/sudoers
# vi /etc/sudoer

格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令

使用 sudo 调用授权的命令

$ sudo –u 用户名 命令

实例:

$ sudo -u root /usr/sbin/useradd u2

目录的权限

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

于是, 问题来了~~
换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

那怎么解决这个问题内容?
为了解决这个不科学的问题, Linux引入了粘滞位的概念

粘滞位

示例:

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 919 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除


总结

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

所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

相关文章:

Linux——Linux权限

Linux权限 前言一、shell命令以及运行原理二、Linux权限的概念Linux权限管理文件访问者的分类(人)文件类型和访问权限(事物属性)文件权限值的表示方法文件访问权限的相关设置方法 file指令目录的权限粘滞位 总结 前言 linux的学习…...

android中gradle的kotlin编译配置选项

一、编译配置 1、Android中的配置 使用如下方式开启在Android中的gradle的kotlin编译配置: 该配置在其余平台不可用 android {...compileOptions {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17}kotlinOptions {jvmTar…...

【知识串联】概率论中的值和量(随机变量/数字特征/参数估计)【考研向】【按概率论学习章节总结】(最大似然估计量和最大似然估计值的区别)

就我的概率论学习经验来看,这两个概念极易混淆,并且极为重点,然而,在概率论的前几章学习中,如果只是计算,对这方面的辨析不清并没有问题。然而,到了后面的参数估计部分,却可能出现问…...

NOIP2023模拟6联测27 点餐

题目大意 有 n n n样菜品,每样菜品都有两个权值 a i a_i ai​和 b i b_i bi​,如果你选择了 k k k个菜品,分别为 p 1 , … , p k p_1,\dots,p_k p1​,…,pk​,则你的花费为 ∑ i 1 k a p i max ⁡ i 1 k b p i \sum\limits_{i…...

AMEYA360:类比半导体重磅发布车规级智能高边驱动HD7xxxQ系列

致力于提供高品质芯片的国内优秀模拟及数模混合芯片设计商上海类比半导体技术有限公司(下称“类比半导体”或“类比”)宣布推出重磅新品车规级智能高边驱动HD7xxxQ系列。该系列产品包括车规级单通道高边驱动HD70xxQ和车规级双通道智能高边驱动HD70xx2Q,提供不同通道…...

【HarmonyOS】鸿蒙操作系统架构

HarmonyOS架构 一. 鸿蒙系统定位二. 架构整体遵从分层设计三. HarmonyOS具有的技术特性四. HarmonyOS有三大特征 其它相关推荐: 软考系统架构之案例篇(架构设计相关概念) 系统架构之微服务架构 系统架构设计之微内核架构 所属专栏:系统架构设计师 一. 鸿…...

JSON数据

一、JSON介绍 Android应用程序界面上的数据信息大部分都是通过网络请求从服务器上获取到的,获取到的数据类型常见的就是JSON。JSON是一种新的数据格式,这种格式的数据不可以直接显示到程序的界面上,需要将该数据解析为一个集合或对象的形式才…...

金融领域:怎么保持电力系统连续供应?

银行作为金融领域的关键机构,依赖于高度可靠的电力供应,以保持银行操作的连续性。在电力中断或电力质量问题的情况下,银行可能面临严重的风险,包括数据丢失、交易中断和客户满意度下降。 UPS监控系统在这一背景下变得至关重要&…...

批量重命名文件夹:用数字随机重命名法管理您的文件夹

在文件管理中,文件夹的命名是一项至关重要的任务。一个好的文件夹命名方案可以帮助我们更高效地组织和查找文件。然而,随着时间的推移,我们可能会遇到文件夹数量过多,难以管理和查找的问题。为了解决这个问题,我们可以…...

RPC与HTTP的关系

首选理清楚关系 RPC与HTTP是两个不同维度的东西 HTTP 协议(Hyper Text Transfer Protocol),又叫做超文本传输协议,是一种传输协议,平时通过浏览器浏览网页网页,用到的就是 HTTP 协议。 而 RPC&#xff0…...

OpenCV #以图搜图:感知哈希算法(Perceptual hash algorithm)的原理与实验

1. 介绍 感知哈希算法(Perceptual Hash Algorithm,简称pHash) 是哈希算法的一种,主要用来做相似图片的搜索工作。 2. 原理 感知哈希算法(pHash)首先将原图像缩小成一个固定大小的像素图像,然后…...

Android多张图片rotation旋转角度叠加/重叠堆放

Android多张图片rotation旋转角度叠加/重叠堆放 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"…...

HBuilderX 自定义语法提示

在开发实践中&#xff0c;会使用到各种第三方组件&#xff0c;比如Element UI&#xff0c;通常的做法是到官网中复制模板再在本地根据设计要求进行修改&#xff0c;或是从其它已经实现的组件中复制相似的内容。但每次复制粘贴确实比较麻烦。 在HBuilderx中可以设置代码块来创建…...

Leetcode—2562.找出数组的串联值【简单】

2023每日刷题&#xff08;十四&#xff09; Leetcode—2562.找出数组的串联值 实现代码 long long findTheArrayConcVal(int* nums, int numsSize){int left 0;int right numsSize - 1;long long sum 0;while(left < right) {if(left right) {sum nums[left];break;}…...

T0外部计数输入

/*----------------------------------------------- 内容&#xff1a;通过外部按键计数进入中断执行LED取反 ------------------------------------------------*/ #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c;头文件包含特殊功能寄存器的…...

分治法求解棋盘覆盖问题

分治法求解棋盘覆盖问题 如何应用分治法求解棋盘覆盖问题呢&#xff1f;分治的技巧在于如何划分棋盘&#xff0c;使划分后的子棋盘的大小相同&#xff0c;并且每个子棋盘均包含一个特殊方格&#xff0c;从而将原问题分解为规模较小的棋盘覆盖问题。 基本思路 棋盘覆盖问题是…...

爱写bug的小邓程序员个人博客

博客网址: http://www.006969.xyz 欢迎来到我的个人博客&#xff0c;这里主要分享我对于前后端相关技术的学习笔记、项目实战经验以及一些技术感悟。 在我的博客中&#xff0c;你将看到以下主要内容&#xff1a; 技术文章 我将会分享我在学习前后端技术过程中的一些感悟&am…...

selenium判断元素可点击、可见、可选

1、判断元素是否可以点击 判断元素是否可以点击&#xff0c;WebElement对象调用is_enabled() is_enabled()方法返回一个布尔值&#xff0c;若可点击返回&#xff1a;True。若不可点击则返回&#xff1a;False from selenium import webdriver import time from selenium.web…...

计算机网络重点概念整理-第六章 应用层【期末复习|考研复习】

计算机网络复习系列文章传送门&#xff1a; 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称&缩写 文章目录 前言六、应用层6.1 网络应用模型6.1.1 客户/服务器模式C/S模型6.1.2 P…...

html2pdf

页面布局时将需要保存在同一页pdf的dom元素用div包裹&#xff0c;并为该div添加class类名&#xff0c;例如.convertPDF&#xff0c;如果有多页创建多个.convertPDF这个div&#xff0c;再循环保存pdf即可 用到了html2canvas和JsPdf这两个插件&#xff0c;自行站内搜索安装 pdf页…...

Font-Awesome-SVG-PNG 核心原理:深入解析SVG到PNG的转换机制

Font-Awesome-SVG-PNG 核心原理&#xff1a;深入解析SVG到PNG的转换机制 【免费下载链接】Font-Awesome-SVG-PNG Font Awesome split to individual SVG and PNG files of different sizes along with Node.JS based generator 项目地址: https://gitcode.com/gh_mirrors/fo/…...

自定义调色盘组件

示例效果&#xff1a;调色盘组件代码&#xff1a;使用input[typecolor]实现<template><div class"color-plate-page"><div class"color-div" click.stop"onColorDivClick"></div><div class"color-plate" …...

终极指南:如何用Python脚本5分钟获取百度网盘真实下载链接

终极指南&#xff1a;如何用Python脚本5分钟获取百度网盘真实下载链接 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾经为百度网盘的下载速度而烦恼&#xff1f;每次…...

新手前端第一课:在快马平台用ai生成一个属于自己的“notepad++”

作为一个刚接触前端开发的新手&#xff0c;我最近在InsCode(快马)平台上尝试做了一个简易版的文本编辑器&#xff0c;感觉特别适合用来理解基础的前端开发逻辑。整个过程就像搭积木一样有趣&#xff0c;现在把学习心得分享给大家。 项目构思阶段 我想做一个类似notepad的简易编…...

新手福音:基于快马平台和vmware官网快速上手虚拟化编程实践

作为一个刚接触虚拟化技术的新手&#xff0c;最近在浏览vmware官方中文网站时&#xff0c;发现了很多有用的学习资料。但光看理论总觉得不够直观&#xff0c;于是想通过动手实践来加深理解。在朋友的推荐下&#xff0c;我尝试用InsCode(快马)平台来创建一个简单的虚拟机监控面板…...

手把手教你排查Windows系统错误1114:从DLL加载原理到MySQL驱动修复

深入解析Windows系统错误1114&#xff1a;从DLL加载机制到MySQL驱动故障修复实战 当你在配置MySQL ODBC数据源时突然遭遇"系统错误1114&#xff1a;动态链接库(DLL)初始化例程失败"的红色警告框&#xff0c;那种挫败感我深有体会。这个看似简单的错误背后&#xff0…...

智能体迁移学习完整实践:从零到一的快速适配指南 [特殊字符]

智能体迁移学习完整实践&#xff1a;从零到一的快速适配指南 &#x1f680; 【免费下载链接】hello-agents &#x1f4da; 《从零开始构建智能体》——从零开始的智能体原理与实践教程 项目地址: https://gitcode.com/datawhalechina/hello-agents 想要让智能体快速适应…...

保姆级教程:在RHEL 8上彻底搞定X-Server远程连接,让xeyes不再报‘Error can‘t open display‘

深度解析RHEL 8远程X11连接&#xff1a;从原理到实战的全链路解决方案 当你在RHEL 8服务器上尝试通过SSH转发X11图形界面时&#xff0c;是否遇到过xeyes测试程序报出"Error: Cant open display"的困扰&#xff1f;这看似简单的错误背后&#xff0c;实际上隐藏着新版R…...

别再被英文界面劝退!手把手教你用AVL Cruise 2019搭建第一个纯电动车仿真模型

从零征服AVL Cruise&#xff1a;纯电动车仿真建模实战指南 第一次打开AVL Cruise 2019时&#xff0c;满屏的专业术语和复杂界面确实容易让人望而生畏。但别担心&#xff0c;这就像第一次接触乐高积木——看似复杂的模型&#xff0c;其实都是由基础模块按特定规则组合而成。本文…...

从视频处理到医疗影像:Conv3D输出形状计算中的那些‘坑’与高效设计指南

从视频处理到医疗影像&#xff1a;Conv3D输出形状计算中的那些‘坑’与高效设计指南 当你在深夜调试一个3D卷积神经网络时&#xff0c;突然发现输出的特征图尺寸比预期小了整整一半——这种场景对于处理视频分类或医疗影像的工程师来说再熟悉不过了。Conv3D层看似简单的参数设…...