什么是权限?(Linux篇)

前言

        其实我们在学会运用一些简单的Linux指令之后,我们可以简单的用ls查看当前目录的文件有哪些啊,可以使用tree用树形结构查看目录,可以使用touch来创建文件,用mkdir创建目录,可以使用rm来删除目录和文件,还可以使用等等的指令来配合我们想实现的行为。我们也是第一次听到权限这个词的,原因其实是因为我们一直是root用户,偷偷告诉你吧,root可以无视任何权限哦~

那权限是干嘛的呢?权限是限制什么的呢?权限出现的意义是什么呢?

请大家带着疑惑跟我一起学习权限吧!

忘记指令的可以看我这篇博客

http://t.csdnimg.cn/lrpCM

一、Linux的两种用户

        正如上文所说,我们一直使用的是root用户,并且在我们是root用户的时候并没有接触权限这个东西,所以我们把root用户又称为超级用户,而非root用户就是普通用户了。那接下来就一起学习这两种用户的区别吧!

1.1 root用户

1. Linux下的超级用户,可以做任何事情,不受限制

2. 一个Linux系统有且只有一个root用户

3. root用户在命令行的提示符是 #

1.2 非root用户

1. Linux下的普通用户,不被允许做任何事情,只可以做权限内的事

2. 一个Linux系统可以有多个普通用户

3. 普通用户的命令行提示符是 $

1.3 如何添加一个普通用户呢?

1. 建立用户: adduser 用户名

2. 设置密码:passwd 用户名

1.4 切换用户的命令

查看当前的普通用户有谁

ls /home

1. 切换普通用户(在root用户中)

方法一: su 用户名 

特点:1. 不切换当前目录

           2. 不需要输入密码

方法二:su - 用户名 

特点:1. 以普通用户的身份重新登陆,切换到自己的家目录下

           2. 不需要输入密码

2. 切换普通用户(在普通用户中)

方法一: su 用户名 

特点:1. 不切换当前目录

           2. 需要输入密码

方法二:su - 用户名 

特点:1. 以新的普通用户的身份重新登陆,切换到自己的家目录下

           2. 需要输入密码

3. 切换root用户(在普通用户中)

方法一: su 或者 su root

特点:1. 不切换当前目录

           2. 需要输入密码

方法二:su - 或者 su - root

特点:1. 以root的身份重新登陆,切换到自己的家目录下

           2. 需要输入密码

4. 回退到上一个用户

键盘快捷键:control➕d 

指令二:logout

指令三:exit

1.5 sudo指令的应用(后续更新如何添加)

        普通用户可以以root身份执行,对指定的指令提权。但是我们在使用sudo的前提是,我们被root用户允许了,而如何允许的?是在sudoers的配置文件中添加了我们的用户名了,目前我们暂时不介绍,我们了解sudo可以让普通用户暂时拥有root用户的权限就可以了。

二、权限

在了解Linux环境下的不同用户之后,我们来学习权限吧!那什么是权限呢?

比如学校,你只有刷脸通过才可以进学校,因为你是学生你才可以进,并不是你是你;

比如看电视,有些影片只有vip可以看,因为你是vip你就可以看,并不是你是你

比如酒店,你是酒店的住客,你才可以住,并不是你是你;

这都说明了一点,因为你的身份,才给你了一些权限,并不是因为你是你。

所以权限一定是限制我们可以做的事情的范围的,但是在生活中也总有那些不受限制的人的存在。

这与我们Linux下是一致的,普通用户受权限制约,root用户无视权限

2.1 权限出现的地方

我们要知道Linux下一切皆文件,所以对于Linux下涉及权限的地方无非就是是否可以访问文件,是否可以创建文件,是否可以修改文件,是否可以删除文件等。而我们对文件这一系列操作的人,也被分为下面这几种:

2.2 文件访问者的分类

1. 文件和文件目录的所有者:User ——————用u表示

2. 文件和文件目录的所有者所在的组的用户:Group——————用g表示

3. 既不是文件的拥有者,也不是所属组的其他用户:Others————用o表示

所以我们会以什么身份来访问文件?文件中又在哪里体现了我们的身份?文件被访问,修改,删除,创造等一系列操作的权限又在哪里体现?我们带着这三个问题继续学习新的知识———文件的访问权限

2.3 文件的访问权限和属性

1. 读权限 ‘ r ’ :对文件而言,具有读取文件内容的权限;

2. 写权限 ‘ w ’ :对文件而言,具有修改文件内容的权限;

3. 可执行权限 ‘ x ’ :对文件而言,具有执行文件的权限;

4.  :表示不具有该项权限

这些权限都是在文件的属性中查看的:使用ll命令

如下就是分类:

        所以我们是否可以去访问文件,是先根据我们是什么角色,再看文件中角色的对应位置的权限的;

当然root无视一切权限

并且我们只能扮演一种角色,先看拥有者是不是我,如果是我,即使所属组也是我,我们也仅仅扮演拥有者;

2.4 文件权限值的表示方法

1. 以字符表示

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

2. 以八进制数值表示

权限符号八进制二进制
r--4100
-w-2010
--x1001
rw-6110
r-x5101
-wx3011
rwx7111
---0000

2.5 权限的相关指令

1.修改权限指令 chmod(可以同时给u,g和o一起修改,中间加逗号)

使用规则示例功能
chmod u+/- rwx 文件名/目录名chmod u+r file
chmod u-r file
chmod u+rw file
chmod u-rwx file
给指定文件或者目录在拥有者的权限做改变
chmod g+/- rwx 文件名/目录名chmod g+r file
chmod g-r file
chmod g+rw file
chmod g-rwx file
给指定文件或者目录在所属组的权限做改变
chmod o+/- rwx 文件名/目录名chmod o+r file
chmod o-r file
chmod o+rw file
chmod o-rwx file
给指定文件或者目录在others的权限做改变
chmod a+/- rwx 文件名/目录名chmod a+r file
chmod a-r file
chmod a+rw file
chmod a-rwx file
给指定文件或者目录在拥有者,所属组和others的权限都做改变
chmod 三位八进制 文件名/目录名chmod 777 file
chmod 657 file
修改权限为八进制对应的权限

2. 修改拥有者指令 chown

注:chown指令在普通用户中不可以使用,在root用户中才可以使用

使用规则示例功能
chown user 文件名/目录名chown xmb file

修改file文件的拥有者为xmb

3. 修改所属组指令chgrp

注:chgrp指令在普通用户中不可以使用,在root用户中才可以使用

使用规则示例功能
chgrp group 文件名/目录名chgrp xmb file

修改file文件的所属组为xmb

若想同时修改拥有者和所属组

使用规则示例功能
chown user:group 文件名/目录名chown xmb:xmb file

修改file文件的拥有者和所属组为xmb

三、文件类型

首先Linux文件类型不同过后缀区分(不代表不用后缀)

Linux对文件后缀的态度:虽然Linux不通过后缀来识别文件类型,但是我们依旧推荐使用,因为我们的某些指令需要(gcc,g++需要后缀为.c/.cpp的文件),我们用户也需要,可以通过后缀区别具体的文件类型

3.1 文件类型的分类

文件前缀代表的文件类型
‘-’文本、源代码、图片、视频、库、可执行等文件
‘d’目录文件
‘b’

块设备文件(磁盘,光驱);

可以在b文件中随机访问数据

‘c’字符设备文件(键盘文件,显示器文件)
不支持在c文件中随机访问
‘l’软链接文件(文件的快捷方式)
‘p’管道文件
‘s’套接口文件

1. 查看对应前缀的文件

虚拟机云服务器
看前缀为b的文件

ll /dev/sd*

ll /dev/hd*

ll /dev/vda*
看前缀为c的文件ll /dev/tty*

2. 创建软链接文件(类似指针和快捷方式)

ln -s 被链接的文件 软连接文件

3. 建管道文件

mkfifo 文件

3.2 查看文件类型指令

file 文件类型

四、目录的权限

x :决定是否可以进入目录

r :决定是否可以查看目录下的文件/目录的属性

w :决定是否可以在目录下创建文件,重命名文件,删除文件

​​​​​​​

t :粘滞位,是给目录中other设置的一个权限位,在x的位置,具有x的作用,同时新增了一个权限,只允许root和文件的owner删除目录里的文件。

chmod +t 目录名  增加目录的粘滞位

chmod -t 目录名  去掉目录的粘滞位

所以一个文件是否可以删除,并不取决于文件本身,而是取决于文件所处的目录的角色的权限是否具有‘ w ’权限

五、常见权限的问题

5.1 问题一

         为什么创建的普通文件的默认权限不是777,而是664;为什么创建的目录的默认权限不是777,而是775?

我们的普通文件的起始权限是666,但是也不是664啊,目录文件的起始权限是777,也不是775。这又是为什么呢?这其实是因为一个叫权限掩码的东西(umask),其实是由起始权限和权限掩码的计算才得到我们文件的默认权限。

那如何查看我们当前用户的权限掩码呢?

umask

超级用户的默认权限掩码:0022

普通用户的默认权限掩码:0002

文件默认权限 = 起始权限 & (~umask)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#,数值计算——多项式计算,Poly的计算方法与源程序

1 文本格式 using System; using System.Text; namespace Legalsoft.Truffer { /// <summary> /// operations on polynomials /// </summary> public class Poly { /// <summary> /// polynomial c[0]c[1]xc[2]x^2 ..…

高频SQL50题(基础题)-5

文章目录 主要内容一.SQL练习题1.602-好友申请&#xff1a;谁有最多的好友代码如下&#xff08;示例&#xff09;: 2.585-2016年的投资代码如下&#xff08;示例&#xff09;: 3.185-部门工资前三高的所有员工代码如下&#xff08;示例&#xff09;: 4.1667-修复表中的名字代码…

数据库恢复技术

事务 含义&#xff1a;用户定义的一个数据库操作序列&#xff0c;这些操作要么全做&#xff0c;要么全不做&#xff0c;是一个不可分割的工作单位 地位&#xff1a;恢复和控制并发的基本单位 区分事务和程序&#xff0c;一个程序中包含多个事务 定义事务 事务的开始与结束…

[linux网络实验] 多网卡绑定

聚合链路技术 什么是bonding 提供了一种将多个网络接口设备绑定到一个网络接口的方法。这可用于网络负载平衡和网络冗余&#xff1b; 实现将两个网卡虚拟成一个网卡。这种聚合设备看起来就像一个以太网接口设备。通俗地说&#xff0c;这意味着两个网卡拥有相同的 IP 地址&am…

PostgreSQL 机器学习插件 MADlib 安装与使用

MADlib 一个可以在数据库上运行的开源机器学习库&#xff0c;支持 PostgreSQL 和 Greenplum 等数据库&#xff1b;并提供了丰富的分析模型&#xff0c;包括回归分析&#xff0c;决策树&#xff0c;随机森林&#xff0c;贝叶斯分类&#xff0c;向量机&#xff0c;风险模型&#…

Leetcode刷题详解——黄金矿工

1. 题目链接&#xff1a;1219. 黄金矿工 2. 题目描述&#xff1a; 你要开发一座金矿&#xff0c;地质勘测学家已经探明了这座金矿中的资源分布&#xff0c;并用大小为 m * n 的网格 grid 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量&#xff1b;如果该单元格…

数据库表的设计——范式

目录 1. 设计数据表需要注意的点 2. 范式 2.1 范式简介 2.2 范式有哪些&#xff1f; 2.3 第一范式(1NF) 2.4 第二范式(2NF) 2.5 第三范式(3NF) 2.6 小结 1. 设计数据表需要注意的点 &#xff08;1&#xff09;首先要考虑设计这张表的用途&#xff0c;这张表都要存放什…

博捷芯BJCORE:国内划片机品牌优势

国内划片机品牌在半导体设备制造领域奋起直追&#xff0c;展现出以下几个优势&#xff1a; 1. 技术提升&#xff1a;国内划片机品牌在技术上持续取得突破&#xff0c;例如设备精准度和切割精度的提高&#xff0c;可以在短时间内完成大量加工&#xff0c;提高了生产效率。 2. 适…

【Python Opencv】Opencv画图形

文章目录 前言一、画图形1.1 画线1.2 画矩形1.3 画圆1.4 画椭圆1.5 添加文本 总结 前言 在计算机视觉和图像处理中&#xff0c;OpenCV不仅可以处理图像和视频&#xff0c;还提供了一组功能强大的工具&#xff0c;用于在图像上绘制各种形状和图形。这些功能使得我们能够在图像上…

centos利用find提权反弹shell

需要说明的是利用find命令进行提权的方式已经不存在了&#xff0c;因为Linux默认不会为find命令授予suid权限&#xff0c;这里只是刻意的制造出了一种存在提权的环境 首先我们先介绍一下find命令&#xff0c;find命令主要用来在Linux中查找文件使用&#xff0c;它可以进行最基础…

JVM如何运行,揭秘Java虚拟机运行时数据区

目录 一、概述 二、程序计数器 三、虚拟机栈 四、本地方法栈 五、本地方法接口 六、堆 &#xff08;一&#xff09;概述 &#xff08;二&#xff09;堆空间细分 七、方法区 一、概述 不同的JVM对于内存的划分方式和管理机制存在部分差异&#xff0c;后续针对HotSpot虚…

Brute Force

Brute Force "Brute Force"&#xff08;暴力破解&#xff09;指的是一种通过尝试所有可能的组合来获取访问、解密或破解信息的攻击方法。这种攻击方法通常是基于暴力和不断尝试的&#xff0c;不依赖漏洞或弱点。通常用于破解密码、破坏系统或获取未经授权的访问权限…

【数据结构】链表经典OJ题,常见几类题型(二)

目录 题型三&#xff1a;链表相交&#xff0c;找相交节点思路解析OJ题实例解题代码 题型四&#xff1a;链表带环&#xff0c;找入环节点思路解析OJ实例解题代码 题型三&#xff1a;链表相交&#xff0c;找相交节点 思路解析 看到这类题型首先要判断链表是否相交&#xff0c;而…

密钥安全存储方案探讨与实践

随着信息技术的迅猛发展和应用范围的不断扩大&#xff0c;我们日常生活中的许多方面已经与信息技术密不可分。而在信息安全领域中&#xff0c;密钥的安全存储显得尤为重要。本文将探讨密钥安全存储的必要性、相关技术和实践方案&#xff0c;并提出一些解决方案。 一、密钥安全存…

Redis 常用的类型和 API

前言 在当今的软件开发中&#xff0c;数据存储与操作是至关重要的一部分。为了满足日益增长的数据需求和对性能的追求&#xff0c;出现了许多不同类型的数据库。其中&#xff0c;Redis 作为一种基于内存且高性能的键值存储数据库&#xff0c;因其快速的读取速度、丰富的数据结…

进行 “最佳价格查询器” 的开发(多种并行方式的性能比较)

前置条件 public class Shop {private final String name;private final Random random;public Shop(String name) {this.name name;random new Random(name.charAt(0) * name.charAt(1) * name.charAt(2));}public double getPrice(String product) {return calculatePrice…

第4关:非递归实现二叉树左右子树交换

任务描述相关知识 栈的基本操作二叉树后序遍历编程要求测试说明 任务描述 本关任务&#xff1a;给定一棵二叉树&#xff0c;使用非递归的方式实现二叉树左右子树交换&#xff0c;并输出后序遍历结果。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.栈的基…

PostGIS学习教程一:PostGIS介绍

一、什么是空间数据库 PostGIS是一个空间数据库&#xff0c;Oracle Spatial和SQL Server(2008和之后版本&#xff09;也是空间数据库。 但是这意味着什么&#xff1f;是什么使普通数据库变成空间数据库&#xff1f; 简短的答案是… 空间数据库像存储和操作数据库中其他任何…

C语言文件操作 | 文件分类、文件打开与关闭、文件的读写、文件状态、文件删除与重命名、文件缓冲区

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

UI 自动化测试框架设计与 PageObject 改造!

在 UI 自动化测试过程中&#xff0c;面对复杂的业务场景&#xff0c;经常会遇到这样的挑战&#xff1a; 简单的录制/回放速度快&#xff0c;但无法适应复杂场景&#xff1b;编写自动化测试脚本比较灵活&#xff0c;但工作量大且可维护性差&#xff1b;以往的封装技术&#xff…