秒懂Linux之权限

fe594ea5bf754ddbb223a54d8fb1e7bc.gif

目录

一.Linux用户

二.文件权限

2.1 权限属性

chmod命令

chown与chgrp命令

2.2 文件类型

file指令

常见类型

2.3 常见权限问题

问题一:

问题二:

问题三:


一.Linux用户

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

 

 

普通用户切换为超级用户需要输入密码,而超级用户切换为普通用户不需要输入密码。普通用户切换到另一个普通用户也需要输入密码。

sudo命令

让普通用户能有root的身份执行指定命令。

 不过前提是要把该用户加入到白名单中才可以执行sudo命令。

二.文件权限

2.1 权限属性

 

在文件权限里面我们每一个人都有要各自扮演的角色~

就比如在一家公司中你独立设计出了一款软件,那你扮演的就是该文件的拥有者。假设你的合作伙伴想要添加一些功能,那他就是你的所属组(与你同名)(从other变为所属组),而除这以外的其他人都称为other。就好比拥有者想要分享,那么可以给所属组,而other是看不到的。 

而对于文件权限的属性一共具备三种性质——rwx(读,写,执行文件)

chmod命令

更改文件权限属性

用二进制的形式如果想要对应的权限则置1,三个为一组。

u-r,去除拥有者读权限。

u+w,g+w,o+w给拥有者,所属组,其他人添加写权限。

a+r,给所有人添加读权限。

注意:超级用户不会被这些权限所限制~

chown与chgrp命令

修改拥有者与所属组用户

其实普通用户得征求所改权限用户同意才可以修改,或者是用sudo指令。而超级用户直接修改。 

2.2 文件类型

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

普通文件和目录文件我们见过很多了~

file指令

识别文件内容

源代码文件

常见类型

b:块设备文件支持随机访问,c:字符设备文件不支持随机访问。

l:软链接(类似Windows的快捷方式)

我们生成一个可执行文件mycmd,然后把该文件放进dir目录底下。

这是我们正常去执行的操作。

当我们用ln -s链接命令时,这是通过链接去执行的操作~

提示:在Linux系统下一般不会去关心后缀名,通过文件类型就可以观察了。但是在Linux系统之上例如gcc环境下就要关心后缀名(test.c,识别出为有关c语言的代码)

2.3 常见权限问题

问题一:

对于一个目录而言,如果要进入一个目录,需要什么权限?

这里感兴趣的同学可以慢慢尝试,我们直接说结论。

  • x决定是否可以进目录
  • r决定是否可以对文件属性信息进行查看的权利(例如ll)
  • w决定是否可以在目录下新建与删除文件

当然还是老规矩:超级用户无视以上规则

问题二:

为什么我们创建的普通文件:默认的权限不是777,而是644

为什么我们创建的目录文件:默认的权限不是777,而是755

这是看需求决定的,比如目录文件肯定需要可执行的操作,所有基本都有x,而普通文件种类太多,一般不要求x。

所以对普通文件而言,它的起始权限应该为666,对目录文件而言,它的起始权限应该为777.

那为什么还是跟我们当前创建的不一样呢?这也引出另一个知识点:权限掩码

小细节:直接看权限掩码,在有1的位置上对应到起始权限把1变为0即可。

注:我们还可以更改权限掩码

问题三:

一个文件能否被删除,是否取决于文件本身?

假设对使一个文件失去所有的w权限,那它是否还能删除呢?例如root在dir目录里创建了一个不可读不可写不可执行的文件。那用户ljz是否束手无策?

事实证明ljz可以删除超级用户所限制的文件,这是因为dir是在ljz的地盘创建的,其拥有者可以对该目录下进行rwx操作,删除自然轻而易举。

所以一个文件是否被删除,并不取决于文件本身。而取决于文件所处的目录中其拥有者是否有w权限。

归根到底还是因为超级用户到别人的地盘上创建文件,正常情况下不同用户之间是不允许除自己以外的用户在自己地盘上作出操作的。

如果我们需要在同一块地盘上进行合作共享呢?在tmp这里有可以让不同用户合作共享的区域。

可这样就很奇怪,变成了一起在别人的地盘上操作,并且还能拥有所有权限。万一张三看李四不顺眼在它的文件下设置不让李四读写,而李四恼羞成怒把张三的所有文件都删除了那不是糟糕了吗?

不用担心,为了避免这种情况,Linux给other新增了一个权限:t。

粘滞位:给共享目录中的other设置的一个权限位,具有x的意义,同时也进一步对目录权限进行特殊限定。

该目录里的文件,只有root或者文件的拥有者才有权利删除,其他一概不允许。

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

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

相关文章

kettle从入门到精通 第八十课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段

场景:源数据库表为mysql的其中有json字段,通过kettle 查询出来 插入到目标数据库 postgresql中,对应的表中也有json字段。。但是报错,提示kettle查询出来是varchar的的字段,无法插入到目标数据库中。 1、创建测试表。 …

VBA技术资料MF180:将某个文件夹中的某类图片导入Word

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

【C++进阶学习】第九弹——哈希的原理与实现——开放寻址法的讲解

前言: 在前面,我们已经学习了很多存储机构,包括线性存储、树性存储等,并学习了多种拓展结构,效率也越来越高,但是是否有一种存储结构可以在大部分问题中都一次找到目标值呢?哈希可能能实现 目录…

【C++】C++应用案例-翻转数组

翻转数组,就是要把数组中元素的顺序全部反过来。比如一个数组{1,2,3,4,5,6,7,8},翻转之后就是{8,7,6,5,4,3,2,1}。 (1)另外创建数组,反向填入元素 数组是将元素按照顺序依次存放的,长度固定。所以如果想要…

C++ | Leetcode C++题解之第283题移动零

题目&#xff1a; 题解&#xff1a; class Solution { public:void moveZeroes(vector<int>& nums) {int n nums.size(), left 0, right 0;while (right < n) {if (nums[right]) {swap(nums[left], nums[right]);left;}right;}} };

Go语言编程 学习笔记整理 第2章 顺序编程 前半部分

前言&#xff1a;《Go语言编程》编著 许式伟 吕桂华 等 1.1 变量 var v1 int var v2 string var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { f int } var v6 *int // 指针 var v7 map[string]int // map&#xff0c;key为string类型&#xff0c;value为in…

shell脚本(fifteen day)

一、shell概述 1、shell概念 &#xff08;1&#xff09;shell 英文翻译过来是外壳的意思&#xff0c;作为计算机语言来理解可以认为它是操作系统的外壳。可以通过shell 命令来操作和控制操作系统&#xff0c;比如Linux中的shell命令就包括 ls、cd、pwd 等等。 &#xff08;2&a…

postgres启动错误

说明&#xff1a;记录一次在Linux上启动postgres数据错误&#xff1b; 问题&#xff1a;安装好postgres数据库后&#xff0c;我使用systemctl启动数据库&#xff0c;报下面的错误 ● postgresql-15.service - PostgreSQL 15 database serverLoaded: loaded (/usr/lib/systemd…

【研路导航】保研英语面试高分攻略,助你一路过关斩将

面试攻略之 千锤百炼英语口语 写在前面 在保研面试中&#xff0c;英语口语往往是让许多同学感到头疼的一部分。如何在面试中展现出自信和流利的英语表达能力&#xff0c;是我们今天要探讨的主题。以下是一些有效的英语口语练习方法和常见题型解析&#xff0c;帮助你在保研面试…

使用PyTorch导出JIT模型:C++ API与libtorch实战

PyTorch导出JIT模型并用C API libtorch调用 本文将介绍如何将一个 PyTorch 模型导出为 JIT 模型并用 PyTorch 的 CAPI libtorch运行这个模型。 Step1&#xff1a;导出模型 首先我们进行第一步&#xff0c;用 Python API 来导出模型&#xff0c;由于本文的重点是在后面的部署…

Java-----栈

目录 1.栈&#xff08;Stack&#xff09; 1.1概念 1.2栈的使用 1.3栈的模拟实现 1.4栈的应用场景 1.5栈、虚拟机栈、栈帧有什么区别呢 1.栈&#xff08;Stack&#xff09; 1.1概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操…

Java基础入门14:常用API(Object(s)类、包装类、Math、Arrays、日期时间、Lambda表达式、方法引用)

Object类 Object类是Java中所有类的祖宗类&#xff0c;因此&#xff0c;Java中所有类的对象都可以直接使用Object类中提供的一些方法。 Object类的常见方法&#xff1a; package com.itchinajie.d12_api_object;public class Test {public static void main(String[] args) {…

mybatis-plus默认字段填充以及批量数据插入优化

日常开发中&#xff0c;我们需要设置一些数据库的默认字段填充&#xff0c;比如创建时间、创建人、更新时间、更新人等等&#xff0c;那么mybatis-plus给我们提供了一个这样的接口去做这件事情 MetaObjectHandler。 1、首先可以创建一个实现类来实现MetaObjectHandler接口 C…

DBMotion x Chat2DB:高效迁移,优雅同步,数据腾飞不再愁

DBMotion 基本介绍 数据传输服务DBMotion是一款轻量、绿色的数据库迁移、同步、校验工具。支持国产化数据迁移、支持容灾演练、支持两地三中心和异地多活&#xff1b;源库无感知、简单易集成、丝滑高性能。助您在多云之间随心迁移、自由容灾。 功能介绍 已支持的数据库 v1.…

7月22日JavaSE学习笔记

Collection接口&#xff0c;还有一个父级接口Iterable可迭代的 Collection继承树 Set 集合 Set的底层是用Map实现&#xff08;存储在key中&#xff0c;value中是空的Object对象&#xff09; 有序&#xff1a;取出的顺序和添加的顺序是一样的。 List是有序的&#xff0c;Set是…

“软件质量”,构筑企业值得信赖的护城河

引子 质量是产品的生命线&#xff0c;质量问题不仅会导致企业财产损失&#xff0c;还可能引发业务中断、客户满意度下降、企业品牌声誉受损等负面影响。如何在软件开发过程中全方位构建产品质量防护盾&#xff0c;是各行业保障产品高质量的重要课题。 如何保障软件质量&#…

五、SpringIoC/DI的使用

1. 类注解、方法注解 告诉spring管理bean—>bean的存储 1、类注解&#xff1a;五大注解 Controller&#xff08;控制器存储&#xff09;、 Service&#xff08;服务存储&#xff09;、 Repository&#xff08;仓库存储&#xff09;、 Component&#xff08;组件存储&#xf…

【Linux】管道通信和 system V 通信

文章目录 一、进程通信原理&#xff08;让不同进程看到同一份资源&#xff09;二、管道通信2.1 管道原理及其特点2.1 匿名管道和命名管道 三、共享内存通信3.1 共享内存原理3.2 创建和关联共享内存3.3 去关联、ipc 指令和删除共享内存 四、消息队列和信号量&#xff08;了解&am…

VirtualSurveyor9.0.3 无人机测绘软件功能介绍

Virtual Surveyor9.0.3中文版是功能强大的无人机测绘软件&#xff0c;使用旨在为用户提供完整的地理空间数据可视化和分析功能&#xff0c;带来提高的生产力&#xff0c;功能全面而强大&#xff0c;在无人机到CAD模型的过程中&#xff0c;使用Virtual Surveyor软件来拆卸输送机…

情绪稳定的人有什么特点?

第一部分&#xff1a;至纯之人&#xff0c;大器晚成 1.1 单纯&#xff0c;不是天真 你知道吗&#xff1f;那些能够成就大事的人&#xff0c;往往在人性上非常单纯。他们对外界的需求很低&#xff0c;更多的是向内寻求。这样的人&#xff0c;他们的内心世界像一片净土&#xff…