linux入门——“权限”

        linux中有权限的概念,最常见的就是安装一些命令的时候需要输入sudo来提权,那么为什么要有这个东西呢?

        linux是一个多用户操作系统,很多东西看起来是有很多分,但是实际的存储只有一份(比如命令,不同的用户可以输入相同的命令,实际上用的是同一个地方的命令),多用户的时候,肯定不想别人能进入你的用户家目录,或者更改你的文件,这就是权限的意义所在。同时也能联系生活,很多东西都是我们不能接触的,所以,权限防的是想要更改你的文件的陌生人。

一、缺省权限

        1.文件权限

        在linux中,如果用户没有指定文件的权限(用umask),那么就会按照默认的权限赋予文件。比如创建一个普通文件“a.txt”。

        可以看到

中白色的部分,它们应该怎样理解呢?

        a.它们三个为一组,从左到右分别是“拥有者”、“所属组”、“other”的权限。

        b.‘r’是读,‘w’是写,‘x’是可执行。

另外:

中白色的部分从左到右依次是文件的拥有者,所属组。

        怎样理解“拥有者”、“所属组”、“other”?

        拿一个家庭举例,家庭中有父母和我和我哥,那么我和父母就是拥有者,整个家庭构成所属组。

        在文件的访问中,系统会根据当前用户来确定访问的权限,举个例子,当另外一个用户访问“a.txt”的时候,系统先判定这个用户属于拥有者,答案为否,再判定是否属于所属组,答案为否,最终系统判定是属于“other”的,所以这个用户只有读权限。就像:“我买了一台电视,那么这个电视就是这个文件,是属于我的,那么我就是拥有者,,因为我哥是和我一个组,我也开放了所属组权限,告诉他们也可以来我卧室看电视,那么当我哥看电视的时候,系统会把他们判定为所属组的成员,当有一天某一个远房亲戚来家做客,他们也想看电视,那我就告诉他们,你们只允许看,不可以碰我的电视”。

        因为我是电视(文件)的主人,我想干嘛就干嘛,我也可以不让他们进行操作,那么对于linux的文件,该怎样修改文件权限呢?

        在linux中,使用“chmod”来修改权限。选项字节有:“u”、“g”、“o”、“a”,分别表示“user(拥有者)”、“group(所属组)”、“other(其他用户)”、“all(所有用户)”。用法是chmod 选项 文件/目录

        它的操作有‘+’、‘-’、‘=’。‘+’、‘-’很好理解,即加上或者减上某个权限,例如我们给拥有者减上一个读的权限:

        可以看到文件的拥有者读权限已经没有了,测试一下:

        提示我们“Permission denied”即“没有权限”。同样的操作可适用于所属组和other。

‘+’和‘=’的用法一样。

        但是,我们的root是至高无上的,root就像父母,家庭中的权力很大,这个文件在root下是随便打开的:

        即使全部的权限都没有,也能打开:

        另外,修改权限还可以使用数字来修改(三个八进制数字),通过以上介绍可以知道,每三个字符可以表示一个用户的权限,那么这三个位置可以分别对应二进制的0和1,从前到后分别表示‘r’、‘w’、‘x’,拿拥有者的权限举例,想让他只有读的权限,那就是100,八进制就是4,引申出:如果想要拥有者,所属组,other都只有读的权限,那就是444。就可以这样写“chmod 444 a.txt”:

        可以看到同时更改了拥有者,所属组和other的权限。

        2.目录权限

        先创建一个目录:

        可以看到目录的拥有者默认权限是rwx,在这里不卖关子,‘r’权限对应的是查看目录里面的内容的权限,‘w’对应的是在目录中是否能创建文件的权限,‘x’对应的是能否打开目录的权限。

示例:

        a.去掉‘r’并浏览目录内容发生报错:

        b.去掉‘w’并创建一个文件发生报错:

        c.去掉‘x’并打开目录发生报错:

        值得大家注意的是:当别人的目录在你的文件中的时候,虽然你没有权利打开,但是你是有权利删除的,这里创建一个root的目录在test里面,并关闭other的全部权限:

        我们可以看到我是没有权限访问的,但是!我可以删除它:

        如果不加-f,即强制删除,那么系统会问你是否删除:

这时候输入‘y’按下回车键即可!

可以看到目录已成功删除

二、更改所属组或者拥有者

        Linux中更改所属组或者拥有者可以用命令chown(用于更改拥有者),chgrp(用于更改所属组)。

目前我们是用户ubuntu,操作的目录是test。

        

        a:更改所属组为root:

        哎呀我擦?竟然报错了,不让我们更改,那么为什么呢?这就好比陌生人想要在你家放一个东西,你敢让陌生人进来吗吗?那肯定得提防着点,或者得取得同意才可以。

        既然你不要,那我就告诉你爸妈(root),强制给你,即获取管理员权限(sudo),即可更改成功。

        b.更改拥有者为user1(和chgrp一样的操作)。

        但是chown有和chgrp一样的效果,如果只想该拥有者,那么和更改所属组是一样的用法,如果还想更改所属组(比如更改为user1),那么可以执行“chown cx:user1”,冒号前边代表拥有者,后边代表所属组。这时候的文件意为拥有者是cx,所属组是user1。

        让我们恢复所属组:

        然后使用chown更改所属组为root:

更改成功!

        更改拥有者和所属组为root:

更改成功!

        那么单独测试更改拥有者:

更改成功!

        三、粘滞位

        在多用户的文件操作中,由于我们的个人用户的家目录是不可以被被人进入的,所以需要在不属于任何一个私人用户的目录(root下的根目录)下完成多用户操作同一个目录(已经给了other写的权限),这个时候就出现了一个问题,倘若是我在这个公共目录下创建了一个文件,由于这个目录是公共的,而删除这个文件的权限和这个文件的权限没有任何关系,是和目录有关系。这么说,别人可以随时删除我的文件。

        为了解决这个问题,Linux中出现了粘滞位,它可以在公共的目录中限制删除的行为,即“除了文件的 所有者,目录的拥有者以及root用户删除外,其他人均不可删除”。添加粘滞位的命令如下chmod +t 目录。下边使用root用户在根目录下创建一个test目录,并赋予other读写执行的权限。

        下边使用ch用户在test下创建一个文件aa.txt,然后再切换到user1删除这个文件:

        可以看到user1把ch用户的文件删除了,接下来我们给这个目录添加粘滞位:

        可以看到test目录已经在other的后边加上了“t”,接下来再次使用user1操作删除:

        可以看到user1已经没有权限删除ch创建的文件了。

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

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

相关文章

小程序知识付费的优势 知识付费服务 知识付费平台 知识付费方法

在信息爆炸的时代,知识如同繁星点点,璀璨而散落。如何在这片知识的海洋中精准捕捞,成为现代人追求自我提升的迫切需求。小程序知识付费,正是这样一座桥梁,它以独特的优势,让智慧触手可及,轻触未…

【C++差分数组】P1672何时运输的饲料

本文涉及知识点 C差分数组 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 P1672何时运输的饲料 原文比较啰嗦&#xff0c;我简述一下&#xff1a; 第x天运来F1(1<F1<1e6)千克的饲料&#xff0c;第D&#xff08;1<2e3)天还剩F2&…

数论与同余 - 离散数学系列(七)

目录 1. 整数的性质 整除与因数 最大公约数与最小公倍数 2. 欧几里得算法 算法步骤 3. 模运算与同余 模运算 同余关系 同余的性质 4. 数论在密码学中的应用 RSA 加密算法 5. 实际应用场景 1. 数字签名 2. 哈希函数与数据完整性 3. 密钥交换 6. 例题与练习 例题…

单链表速通后续!

目录 1>>闲话 2>>头删 3>>查找 4>>在指定位置之前插入 5>>删除指定结点 6>>指定位置之后插入 7>>删除指定位置之后的结点 特别思考&#xff1a; 8>>销毁单链表 Slist.h Slist.c test.c 9>>总结 1>>闲话…

干货|SQL注入思路总结(非常详细)零基础入门到精通,收藏这一篇就够 了

1.SQL注入的业务场景及危害 1.1 什么是SQL注入 SQL注入是服务器端未严格校验客户端发送的数据&#xff0c;而导致服务端SQL语句被恶意修改并成功执行的行为称为SQL注入。 1.2 为什么会有SQL注入 代码对带入SQL语句的参数过滤不严格 未启用框架的安全配置&#xff0c;例如&a…

[面试] java开发面经-1

前言 目录 1.看到你的简历里说使用Redis缓存高频数据&#xff0c;说一下Redis的操作 2.说一下Redis的缓存击穿、缓存穿透、缓存雪崩 3.你的项目中使用了ThreadLocal&#xff0c;那么当有两个请求同时发出时&#xff0c;会怎么处理&#xff0c;可以同时处理两个请求吗 4.使用…

【多线程】多线程(12):多线程环境下使用哈希表

【多线程环境下使用哈希表&#xff08;重点掌握&#xff09;】 可以使用类&#xff1a;“ConcurrentHashMap” ★ConcurrentHashMap对比HashMap和Hashtable的优化点 1.优化了锁的粒度【最核心】 //Hashtable的加锁&#xff0c;就是直接给put&#xff0c;get等方法加上synch…

时间序列预测(一)——线性回归(linear regression)

目录 一、原理与目的 1、线性回归基于两个的假设&#xff1a; 2、线性回归的优缺点: 3、线性回归的主要目的是&#xff1a; 二、损失函数&#xff08;loss function&#xff09; 1、平方误差损失函数&#xff08;忽略了噪声误差&#xff09; 2、均方误差损失函数 三、随…

微服务实战——登录(普通登录、社交登录、SSO单点登录)

登录 1.1. 用户密码 PostMapping("/login")public String login(UserLoginVo vo, RedirectAttributes redirectAttributes, HttpSession session){R r memberFeignService.login(vo);if(r.getCode() 0){MemberRespVo data r.getData("data", new Type…

英伟达股价分析:英伟达股价能否上涨到150美元,接下来该如何操作?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经​ 猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;华尔街投行Oppenheimer已将英伟达的目标价上调到了150美元。 &#xff08;2&#xff09;产品方面的最新进展和合作伙伴关系进一步提升了英伟达的市场地位。 &…

Nacos配置管理和Nacos集群配置

目录 Nacos作为配置中心实现配置管理 统一配置管理 如何在nocas添加配置文件 在微服务拉取nacos配置中心的配置 1&#xff09;引入nacos-config依赖 2&#xff09;添加bootstrap.yaml 3&#xff09;测试&#xff0c;读取nacos配置中心中配置文件的内容 ​编辑 总结&…

ORA-65096:公用用户名或角色名无效

CREATE USER DATA_SHARING IDENTIFIED BY "Ab2"; Oracle建立用户的的时候&#xff0c;可能会出现一直提示 ORA-65096:公用用户名或角色名无效&#xff1b; 我查了一下&#xff0c;好像是 oracle 12版本及以上版本的特性&#xff0c;用户名必须加c##或者C##前缀才能创…

拆解学习【反激-PD-氮化镓】(一)

小米67W桌面快充插座&#xff1a; 反激基本拓扑&#xff1a; 商用场景下&#xff0c;这个拓扑进行了如下优化&#xff1a; 1.Q22换成了氮化镓开关管&#xff0c;当然需要适配的能驱动氮化镓的控制芯片 2.D21二极管换成了MOS管。 3.由于是AC220V输入&#xff0c;设计了整流桥…

Android Camera系列(四):TextureView+OpenGL ES+Camera

别人贪婪时我恐惧&#xff0c;别人恐惧时我贪婪 Android Camera系列&#xff08;一&#xff09;&#xff1a;SurfaceViewCamera Android Camera系列&#xff08;二&#xff09;&#xff1a;TextureViewCamera Android Camera系列&#xff08;三&#xff09;&#xff1a;GLSur…

【Nginx系列】Nginx启动失败

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

轻量服务器和云服务器ecs哪个好用一些?

轻量服务器和云服务器ecs哪个好用一些&#xff1f;轻量服务器与云服务器ECS在多方面存在显著差异&#xff0c;对于需要高性能计算和大规模数据处理的用户来说&#xff0c;ECS可能是更好的选择&#xff1b;而对于预算有限且需求较为简单的用户来说&#xff0c;轻量服务器可能更为…

Cpp::STL—list类的模拟实现(上)(13)

文章目录 前言一、结点类的实现二、迭代器类的实现迭代器类的存在意义迭代器类的模板参数构造函数运算符的重载--运算符的重载、!运算符的重载*运算符的重载->运算符的重载 总结 前言 注意本篇难度偏高&#xff0c;其主要体现在迭代器类的实现&#xff01;   什么&#xf…

QD1-P8 HTML 格式化标签(font、pre、b、strong、i、u、del、s、sub、sup)

本节学习&#xff1a;HTML 格式化标签。 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p8 ‍ 一、font 标签 用途&#xff1a;定义文本的字体大小、颜色和 face&#xff08;字体类型&#xff09;。 示例 <!DOCTYPE html> <html><head><meta cha…

JAVA-数据结构-排序

1.直接插入排序 1.原理&#xff1a;和玩扑克牌一样&#xff0c;从左边第二个牌开始&#xff0c;选中这个&#xff0c;和前面的所有牌比较&#xff0c;插在合适的位置 public static void insertsort(int[] arr){//直接插入排序for (int i 1; i < arr.length; i) {//此循环…

LOID:有效提升遮挡条件下的车道检测精度

1.论文信息 论文标题&#xff1a;LOID: Lane Occlusion Inpainting and Detection for Enhanced Autonomous Driving Systems 作者&#xff1a;Aayush Agrawal, Ashmitha Jaysi Sivakumar, Ibrahim Kaif∗, Chayan Banerjee† 作者单位&#xff1a;印度马德拉斯印度理工学院&…