【Linux】掌握Linux系统编程中的权限与访问控制

news2024/11/24 7:30:46

💞💞 前言

hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
在这里插入图片描述

💥个人主页:大耳朵土土垚的博客
💥 所属专栏:Linux系统编程
这里将会不定期更新有关Linux系统编程有关的内容,希望大家多多点赞关注收藏💖💖

目录

  • 💞💞 前言
  • 1.Linux权限的概念
    • ✨su命令
      • ☑️**如何创建一个普通用户?**
  • 2.Linux权限管理
    • 2.1文件访问者的分类(人)
    • 2.2文件类型和访问权限(事物属性)
    • 2.3文件权限值的表示方法
      • ✨字符表示方法
      • ✨8进制数值表示方法
    • 2.4文件访问权限的相关设置方法
      • ✨chmod指令
      • ✨chown指令
      • ✨chgrp指令
      • ✨umask指令
  • 3.结语

1.Linux权限的概念

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

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

超级用户的命令提示符如下图所示:

在这里插入图片描述普通用户的命令提示符如下图所示:

在这里插入图片描述

✨su命令

格式:

su [用户名]

功能:

切换用户

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

这里可以从root超级用户切换到普通用户:

su tutu   //tutu:普通用户的名字

在这里插入图片描述

因为root用户可以再linux系统下做任何事情,不受限制,所以从它切换到普通用户不用输入密码,而当普通用户切换到超级用户时则需要输入超级用户的密码;

☑️如何创建一个普通用户?

✨1.确保自己现在是root用户,可以输入whoami来查看:

在这里插入图片描述

✨2.在root用户下输入adduser+要创建的用户名(我这里用的是tutu),接着输入passwd+用户名设置该用户的密码,然后再重复输入新密码(注意这里输入密码不回显):

在这里插入图片描述

✨3.当出现下面的语句就说明创建成功啦🥳🥳:

在这里插入图片描述

2.Linux权限管理

我们在创建一个文件和目录后,使用ll指令,通常会看到显示出如下图所示的一连串字母和时间和文件/目录名:
在这里插入图片描述
上图中各部分表示的含义如下图所示:
在这里插入图片描述
对于红色部分我们来详细学习一下:
先来了解一下文件访问者

2.1文件访问者的分类(人)

分为三个类别:
文件和文件目录的所有者:u—User
文件和文件目录的所有者所在的组的用户:g—Group
其它用户:o—Others

接下来我们再来看红色部分

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

在这里插入图片描述

  • 文件类型

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

可以看到上面创建的dir文件夹(目录)第一位是d;而file文件则是-

  • 基本权限

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

在这里插入图片描述

可以看到对于上图中的文件夹,所有者具有读、写和执行三种权限,文件所属组具有读和执行的权限,不具有写的权限,其他用户也是具有读和执行的权限,不具有写的权限;
对于上图中的普通文件,所有者具有读和写权限,不具有执行权限,文件所属组只具有权限,其他用户也只具有权限。

2.3文件权限值的表示方法

✨字符表示方法

Linux表示说明
r - -只读
- w -只写
- - x仅可执行
rw -可读可写
r - x可读可执行
- wx可写可执行
rwx可读可写可执行
- - -无权限

✨8进制数值表示方法

能用八进制表示的原因是读、写、可执行这三个权限要么有要么没有,类似于计算机中的二进制,可以用01来表示,比如- - - 就可以表示为000;rwx 就可以表示为 111 ;
111换算为十进制就是7,不超过8,那么我们为了省去使用二进制要写三个数的麻烦,就可以使用八进制,如下图表所示:

权限符号表示二进制表示八进制表示
r - -1004
- w -0102
- - x0011
rw -1106
r - x1015
- wx0113
rwx1117
- - -0000

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

✨chmod指令

功能

用来更改文件或目录的权限的命令。
"chmod"是"change mode"的缩写。

格式

chmod [选项] [权限] 文件名

常用选项

R :递归修改目录文件的权限

说明

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

用户表示符

u:所有者的权限 g:所属组的权限 o:其他用户的权限 a:所有用户的权限(u、g、o的集合)

chmod指令权限格式

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

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

实例一:

chmod u-rw file

其中:
在这里插入图片描述

结果如下:
在这里插入图片描述
实例二:

chmod a=x file

结果如下:
在这里插入图片描述
②三位8进制数字

chmod 644 file

结果如下:
在这里插入图片描述

✨chown指令

功能

修改文件的拥有者

格式

chown [参数] [用户名] 文件名

实例

chown tutu file

结果如下:
在这里插入图片描述

✨chgrp指令

功能

修改文件或目录的所属组

格式

chgrp [参数] [用户组名] 文件名

实例

chgrp tutu file

结果如下:
在这里插入图片描述

✨umask指令

功能

查看或修改文件掩码

格式:

umask [mode]

其中,mode是一个三位八进制数字,用来表示文件和目录权限的掩码。

☑️当我们创建一个新文件时,我们会发现文件访问权限是文件所有者可读可写,文件所属组和其他用户只可读,如下图所示:
在这里插入图片描述
☑️这是因为新建文件默认权限是666(八进制表示),新建文件夹默认权限是777,创建文件或目录的时候还要受到umask的影响,而我们当前的umask值为0022(第一个0可忽略不计,即022);
☑️umask命令将掩码(022)与文件默认权限(666)进行"与"运算,然后从默认权限中去除相应的权限(文件夹同理),如下图所示:
在这里插入图片描述

这里是umask & mask ^ mask(mask就是上图中的666)
或者也可以mask & ~umask

☑️所以我们创建文件显示出的权限是644

将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。也就是我们看到的644
实例一:

 umask  

显示当前的umask值
说明:超级用户默认掩码值为0022,普通用户默认为0002。

结果如下:
在这里插入图片描述
实例二:

umask 011

设置新的umask值为0011

此时我们再创建新文件时,可以看到权限和之前有所不同,变成了666:
在这里插入图片描述

3.结语

Linux权限是指对文件和目录的访问控制。每个文件和目录都有一个所有者和一个所属组,而且还可以赋予其他用户的访问权限。Linux权限控制了文件和目录的读、写和执行权限,通过设置不同的权限组合可以限制用户对文件和目录的访问。以上就是今天的所有内容啦~ 完结撒花~🥳🎉🎉

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

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

相关文章

博客网站SpringBoot+Vue项目练习

博客网站SpringBootVue简单案例 前言 学了vue后一直没用找到应用的机会,在Github上找到了一个看起来比较友好的项目(其实具体代码我还没看过)。而且这个项目作者的readme文档写的也算是比较好的了。 项目链接:https://github.c…

Docker入门指南:Docker容器的部署(一)

🍀 前言 博客地址: CSDN:https://blog.csdn.net/powerbiubiu 👋 简介 当今软件开发领域中,Docker 成为了一种流行的容器化技术。Docker 可以帮助开发者将应用程序及其依赖项打包到一个独立且可移植的容器中&#xf…

AAA、RADIUS、TACACS、Diameter协议介绍

准备软考高级时碰到的一个概念,于是搜集网络资源整理得出此文。 概述 AAA是Authentication、Authorization、Accounting的缩写简称,即认证、授权、记帐。Cisco开发的一个提供网络安全的系统。AAA协议决定哪些用户能够访问服务,以及用户能够…

面试集中营—Spring篇

Spring 框架的好处 1、轻量:spring是轻量的,基本的版本大约2MB; 2、IOC:控制反转,Spring的IOC机制使得对象之间的依赖不再需要我们自己来控制了,而是由容易来控制,一个字:爽&#xf…

【c++】Resharper 去掉中文注释拼写

参考大神: Resharper 去掉注释拼写 reshaper的中文注释一堆下划线,看的很累、很乱: options 里 在code inspetion里 搜索 去掉 Typo in comment 就可以不在中文注释提示 重启vs reshaperd 中文注释下划线没了。小番茄的还在。

数智先锋 | 多场景数据治理案例,释放数据要素生产力

数据作为第五大生产要素,成为释放新质生产力的关键基础。 当前各个行业数字化建设如火如荼,全力挖掘数据价值以驱动行业高质量应用发展。数据治理成为数据要素价值发挥的重要基础和前提。 数据治理不单是技术问题,不是依赖工具就能解决的&a…

数据结构学习/复习8--树与二叉树的概念与基本性质练习

一、树 1.概念 2.树的表示 二、二叉树 1.二叉树的概念 2.与性质相关的题

如何选择最适合企业的项目管理方法

企业的项目管理应该采取综合性的方式,结合多种工具和方法来确保项目的成功。甘特图 是其中一种非常有用的工具,它可以帮助项目经理和团队成员可视化地展示项目的时间线和进度。以下是采取合适项目管理方式时需要考虑的几个关键点,结合甘特图的…

Python项目实战,用Python实现2048游戏

目录 写在前言项目介绍项目思路环境搭建项目实现初始化Python类初始化游戏窗口定义游戏棋盘和方块移动和合并游戏主循环 进一步探索 写在前言 hello,大家好,我是一点,专注于Python编程,如果你也对感Python感兴趣,欢迎…

2024年5月6日优雅草蜻蜓API大数据服务中心v2.0.3更新

v2.0.3更新 2024年5月6日优雅草蜻蜓API大数据服务中心v2.0.3更新-修复改版后搜索框漏掉的bug-增加搜索框 提示:优雅草大数据中心已经 上线137天 稳定运行 1181555 次 累积调用 目前大数据中心用户呈现增长趋势,目标2024年11月底突破1亿次调用&#xf…

2023ccpc深圳G题相似基因序列问题

样例: 6 4 4 1 kaki kika manu nana tepu tero kaka mana teri anan 输出: 2 2 1 0 解析: 如果是用暴力的话是 300*300*6000,这样子一定会超时。 这时候我们可以利用hash函数进行处理,对比一个字符串的小于为O&a…

linux系统-PXE高效批量网络装机

目录 一、PXE概述 PXE批量部署的优点 搭建PXE网络体系的前提条件 二、搭建PXE远程安装服务器 1.修改网络配置 2 .老样子关防火墙!!!! 3.确保挂载状态 和yum库 4. 安装TFTP服务 5.修改TFTP服务的配置文件 6.启动服务 7…

鸿蒙开发接口Ability框架:【@ohos.application.FormExtension (FormExtension)】

FormExtension FormExtension模块提供了FormExtension卡片扩展相关接口。 说明: 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 本模块接口仅可在Stage模型下使用。 导入模块 import FormExtension …

pcm转MP3怎么转?只需3个步骤~

PCM(Pulse Code Modulation)是一种用于数字音频编码的基础技术,最早起源于模拟音频信号数字化的需求。通过PCM,模拟音频信号可以被精确地转换为数字形式,为数字音频的发展奠定了基础。 MP3文件格式的多个优点 MP3的优…

Flyway使用教程

Flyway使用教程 背景: 在开发环境对多个不同版本的分支进行开发,如果此时涉及到多张表结构修改(比如新增字段),而在测试环境时却忘了整理SQL 脚本给测试人员执行,就会导致出现 bug,从而影响测试…

电子取证平航杯的复现

闻早起部分: 一、闻早起的windows10电脑 (1).“闻早起”所使用的笔记本电脑使用何种加密程式? 1.在EFI文件中找到加密程式 (2) 教徒“闻早起”所使用的笔记本电脑中安装了一款还原软件,其版本…

Stable Diffusion学习记录

文章目录 前言电脑配置推荐环境搭建下载地址安装步骤步骤一,打开下载的秋叶整合包,路径秋叶整合包/sd-wenui-aki步骤二,打开下载好的sd-webui-aki-v4.8.7解压包 Stable Diffusion软件配置,插件安装,模型下载Stable Dif…

基于EWT联合SVD去噪

一、代码原理 (1)基于EWT-SVD的信号去噪算法原理 经验小波变换(Empirical Wavelet Transform,EWT):EWT是一种基于信号局部特征的小波变换方法,能够更好地适应非线性和非平稳信号的特性。奇异值…

Redis探索之旅(基础)

目录 今日良言:满怀憧憬,阔步向前 一、基础命令 1.1 通用命令 1.2 五大基本类型的命令 1.2.1 String 1.2.2 Hash 1.2.3 List 1.2.4 Set 1.2.5 Zset 二、过期策略以及单线程模型 2.1 过期策略 2.2 单线程模型 2.3 Redis 效率为什么这么高 三…

如何取消xhr / fetch / axios请求

如何取消xhr请求 setTimeout(() > { xhr.abort() }, 1000)如何取消fetch请求 fetch()请求发送以后,如果中途想要取消,需要使用AbortController对象。 let controller new AbortController(); let signal controller.signal;fetch(url, {signal:…