Linux 的权限

目录

Linux 的用户

root 用户 和 普通用户

如何新建普通用户?

 如何切换用户?

一开始是以 root 用户登录:

一开始以普通用户登录:

如何删除用户?

Linux文件权限

什么是读权限( r )?

什么是写权限( w )?

什么是可执行权限( x )?

什么是粘滞位( t )?

权限限制了谁?

权限如何转换为八进制?

什么是权限掩码?

怎么修改权限?

修改文件所有者的权限: 

修改文件所属组的权限:

修改 other 的权限:

一次性修改多个访问者的多个权限:

​编辑 

用八进制修改用户权限:

如何修改文件的拥有者、所属组?


Linux 的用户

root 用户 和 普通用户

root 用户 (超级用户)Linux只有一个 root 用户,root 用户可以在Linux系统下做任何事情,不受权限的限制

非 root 用户(普通用户):Linux下可以存在多个普通用户,普通用户在Linux系统下会受到权限的限制

如何新建普通用户?

用户名可以自定义:

adduser 用户名

 需要给当前用户设置密码,注意,输入密码时是不回显的

passwd 用户名

用户的密码尽量和 root 用户的不一样! 

这样用户就新建成功了。

Linux 可以 ls /home 查看该 root 下有哪些用户。

 如何切换用户?

一开始是以 root 用户登录:

su 用户名 就可以从 root 用户切换到普通用户,不需要输入普通用户的密码。如果想再次切换到 root 用户,CTRL+D即可(CTRL+D 会自动显示 exit):

可以注意到 root 用户的命令提示符为 #普通用户的命令提示符为 $。 

一开始以普通用户登录:

同样 su 用户名 就可以切换用户,但是从普通用户切换到 root 需要输入 root 的密码!同样从 root 用户切换到普通用户 CTRL+D 即可:

如何删除用户?

userdel -r username 就可以删除用户,如果用户当前已登录或该帐户下正在运行进程,则 userdel 命令将不起作用。

Linux文件权限

当我们创建一个文件时(目录也是文件),会出现前面这 9 个字母,这 9 个字母分别代表什么意思呢?我们先来了解下面 3 个权限:

什么是读权限( r )?

对于文件而言,读权限意味着我们可以查看文件的内容

对于目录而言,意味着我们可以查看目录的文件列表

什么是写权限( w )?

对于文件而言,写权限意味着我们可以修改文件的内容

对于目录而言,写权限意味着我们可以在该目录下新建和删除文件。这意味着,文件的创建和删除并不取决于文件本身,而是取决于文件所处的目录!

什么是可执行权限( x )?

对于文件而言,读权限意味着我们可以执行这个文件前提是这个文件是可以被执行的,比如代码文件,而文本文件不可以被执行!

 

因为可执行文件数量较少,不可以被执行的文件数量较多, 当我们新建一个文件时,默认是没有可执行权限的。

对于目录而言,可执行权限意味着我们可以进入这个目录,我们才可以 cd 进入该目录。

而当我们新建一个目录时,默认有可执行权限,因为我们默认一个目录是可以被进入的。 

什么是粘滞位( t )?

root 目录下,有一个 tmp 目录,tmp 目录的所有者和所属组都是 root,所有的用户可以在该目录下创建文件并共享文件,但是这个目录的所有权限对所有用户都是开放的,意味着该目录下,即使我不是文件的拥有者,我们也可以删除别人的文件,如果我们把 other 的 w 权限关掉,虽然别人不能删除我们的文件了,但是我们自己也没办法创建文件了!

为了实现这个需求,Linux 有了粘滞位 t ,只有目录的创建者、文件的创建者、root 才可以删除文件,其他人都不可以删除文件!

权限限制了谁?

除了上面的 3 个权限外,我们还需要了解文件有 3 类访问者:

user:文件的拥有者;

group:文件的所属组;

other:除了文件的拥有者和所属组之外的用户都属于 other。

不同的文件访问者对这个文件有不同的权限。文件权限的 9 个字母可以分为 3 组,第一组对应文件拥有者的权限,第二组对应文件所属组的权限,最后一组对应 other 的权限。

在显示文件属性时,会显示出文件拥有者、所属组的名字,但是不会显示 other 的名字,因为文件的拥有者、所属组是可列的,而 other 是不可列的,没有显示的必要。

如果文件访问者拥有某个权限,则对应的位置会显示对应的字母,没有某个权限,则对应的位置显示 - 。

权限只会限制普通用户,不会限制 root ! 

权限如何转换为八进制?

rwx 权限的排序是固定的,如果一个文件具有某个权限,我们可以在对应的权限位标为 1,没有权限则标为 0,比如 rwx 对应的二进制就是 111,r-x 对应的二进制就是 101。

有了对应的二进制后,我们可以把二进制转为八进制,二进制的 111 对应的八进制为 7,101 对应的八进制为 5,这样就可以实现权限转换为八进制。

总结:权限 - > 二进制 - > 八进制

什么是权限掩码?

当我们创建文件时,发现每个文件都会有默认的权限,而默认的权限并不是 777,而是 664,当我们创建目录时,默认权限为 775,这是因为权限掩码 (umask)的存在!

首先,新建一个文件时,起始权限为 666(110 110 110),因为可执行的权限并不是每个文件都需要,所以默认没有可执行权限,故起始权限为 666。而新建一个目录时,起始权限就是 777。

查看权限掩码:

权限掩码虽然是 4 位,但是我们只看后 3 位,权限掩码也是采用八进制,比如 002 实际上为 000 000 010。

有了起始权限之后,权限掩码可以在起始权限的基础上去掉一些权限,从而产生默认权限:比如文件的起始权限为 664(110 110 100),权限掩码中如果对应的权限为 1,则在起始权限中不可以具有该权限!

我们也可以修改权限掩码:

可以看出,修改权限掩码之后,新建的文件的默认权限已经不一样了。 

怎么修改权限?

chmod  [ 参数 ] 权限 文件名 就可以修改文件的权限,添加权限用 +,去掉权限用 - :

修改文件所有者的权限: 

修改文件所属组的权限:

修改 other 的权限:

一次性修改多个访问者的多个权限:

注意一次性修改多个用户的多个权限时,中间需要加 ,:

 一次性修改所有的访问者:

 

一次性修改同一个用户的多个权限: 

 
用八进制修改用户权限:

输入的八进制数是最终用户得到的权限转换过来的:

如何修改文件的拥有者、所属组?

修改文件的拥有者:chown  用户名  文件名 

修改文件的所属组:chgrp 用户名 文件名

没有修改 other 的指令!

即使我们是文件的拥有者,也不可以随意修改文件的拥有者或所属组,这个操作必须由 root 来实现,一共有 2 种实现方式:

1、切换成 root 用户来修改文件的拥有者或所属组:

2、用 sudo 提权:

问:假设文件的所有者也是文件的所属组中的成员,当我们把文件的所有者的权限全部去掉时,文件的所有者可以 以文件所属组的身份去使用文件的权限吗? 

不可以,在使用文件的权限时,系统会先判断当前用户是否属于文件的所有者:

1、如果是,那就会匹配文件所有者的权限,不会再去匹配当前用户是否为文件的所属组;

2、如果不是,再去判断当前用户是否属于文件的所属组,再去匹配对应的权限。

也就是说,当前用户属于哪个文件访问者的身份,就会匹配对应的权限,而且只会判断一次身份!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自然语言处理学习路线

学习目标 NLP 系统知识(从入门到入土) 学习内容 NLP的基本流程:(待更)文本预处理(标点符号处理、繁体转简体、分词Tokenizer):(待更)词袋模型(TF…

校园志愿者|基于SprinBoot+vue的校园志愿者管理系统(源码+数据库+文档)

校园志愿者管理系统 目录 基于SprinBootvue的校园志愿者管理系统 一、前言 二、系统设计 三、系统功能设计 1 系统功能模块 2管理员功能 3志愿者功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&a…

关于FPGA 使用SPI FLASH固化时如何配置固化参数

关于FPGA 使用SPI FLASH固化时如何配置固化参数 EDA工具:Vivado 关于FPGA 使用SPI FLASH固化时如何配置固化参数一、引言二、如何设置固化参数:使用50M的速度 ,SPI为X4 ,以及bit压缩第一:点open implenment design第二…

万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指南针!

最近专栏来了很多的新手小白,对科研实验的过程感到困惑和无从下手,这篇文章就来讲解一下整体的科研流程,从选择数据集到发表论文的各个步骤,并针对大家在实验中常犯的错误进行解答。并且为大家提供通向我其他相关博客的指引&#…

14.微信小程序之地理定位功能

目录 1.地理定位介绍 1.1 申请开通 1.2 使用方法 2.拒绝授权后的解决方案 3.开通腾讯位置服务 4.LBS 逆地址解析 1.地理定位介绍 小程序地理定位是指通过小程序开发平台提供的 API,来获取用户的地理位置信息。用户在使用小程序时,可以授权小程序获…

【儿童节特辑】用AI创造音乐,变身小小音乐家!

在儿童节这个充满欢笑的日子里,让我们一起探索如何用AI技术为孩子们准备一份特别的礼物——一张由AI生成的音乐专辑。🎵✨ 🎼 文字变旋律:开启音乐创作之旅 想象一下,只需一段文字,就能编织出一曲悠扬悦耳…

年中汇报季?——一文教会你如何进行数据分析

一、常见的数据分析报告类型 数据分析报告通常可以分为三类:日常分析报告、专题型分析报告和综合性分析报告。前两者是以数据结论建议的格式去撰写,综合性分析报告则是:行业环境调研(竞品类产品数据分析)自身产品数据…

【计算机软考_初级篇】每日十题2

各位老师大家好,软考对于日常的知识储备和企业中的考试,或者说在校大学生来说,那用处是非常大的!!那么下面我们进入正题,软考呢是分两种语言,java和C,对于其他语言目前还没&#xff…

轻松记录收支明细,智能筛选并统计买菜历史记录:一键掌握家庭财务

在繁忙的生活中,你是否曾为家庭财务的琐碎而烦恼?买菜、购物、日常开销……每一笔支出都似乎难以捉摸,让你在月底对账时头疼不已。现在,我们为你带来了一款全新的财务记录工具,让你轻松记录收支明细,智能筛…

【验证码识别】Yolov8入门到实战点选验证码数据集分类训练,孪生训练,导出onnx,搭建部署接口

【验证码识别】Yolov8入门到实战点选验证码数据集分类训练,孪生训练,导出onnx,搭建部署接口 文章目录 【验证码识别】Yolov8入门到实战点选验证码数据集分类训练,孪生训练,导出onnx,搭建部署接口声明一、标…

Python使用动态代理的多元应用

Python作为一种功能强大且易于学习的编程语言,在网络编程领域具有广泛的应用。当Python与动态代理技术结合时,便开启了一扇通往更多可能性的大门。以下将深入探讨Python使用动态代理可以实现的多种应用。 首先,Python结合动态代理在网络爬虫…

【活动】GPT-4O:AI语言生成技术的新里程碑

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 GPT-4O:AI语言生成技术的新里程碑引言GPT系列简史回顾GPT-1: 初露锋…

创刊即王炸?首个IF近7分,稳坐中科院1区!同领域全球第一!

【欧亚科睿学术】 01 期刊基本概况 【期刊类型】经济类SSCI 【出版社】SPRINGER出版社 【期刊概况】IF:8.0-9.0,JCR1区,中科院1区 【版面类型】正刊,仅少量版面 【预警情况】2020-2024年无预警记录 【收录年份】2016年被WO…

I.MX6ULL主频和时钟配置实验

系列文章目录 I.MX6ULL主频和时钟配置实验 I.MX6ULL主频和时钟配置实验 系列文章目录一、前言二、I.MX6U 时钟系统详解三、硬件原理四、 7 路 PLL 时钟源五、时钟树简介六、内核时钟设置七、PFD 时钟设置八、AHB、IPG 和 PERCLK 根时钟设置九、实验程序编写十、编译下载10.1编写…

华为telnet的两种认证方式

华为telnet的两种认证方式 实验拓扑: 实验要求: 1.采用普通密码认证实现telnet 远程登录机房设备R3 2.采用AAA认证服务方式实现telnet 远程登录机房设备R3 实验步骤: 1.完成基本配置(设备接口配置IP,此步骤略过&#…

戴尔向“数”而行,以“质”致远,做新质生产力的躬耕者

【全球存储观察 | 热点关注】 自1984年戴尔成立,一路走来,戴尔科技集团40年长期持续的技术创新,一直引领全球科技行业的技术趋势。 到如今,AIGC风行一时,在重塑千行百业的同时,也加速了科技行业…

Python自然语言处理(NLP)库之NLTK使用详解

概要 自然语言处理(NLP)是人工智能和计算机科学中的一个重要领域,涉及对人类语言的计算机理解和处理。Python的自然语言工具包(NLTK,Natural Language Toolkit)是一个功能强大的NLP库,提供了丰富的工具和数据集,帮助开发者进行各种NLP任务,如分词、词性标注、命名实体…

搭载昇腾310NPU的Orange Pi AIpro开箱体验以及深度学习样例测试

Orange Pi AIpro开箱体验以及样例测试 随着人工智能和物联网技术的快速发展,单板计算机(Single Board Computer, SBC)在创客和开发者社区中越来越受到欢迎。我最近入手了一款高性能的单板计算机——Orange Pi AIpro。 在入手此款AI开发板之…

C/C++中互斥量(锁)的实现原理探究

互斥量的实现原理探究 文章目录 互斥量的实现原理探究互斥量的概念何为原子性操作原理探究 互斥量的概念 ​ 互斥量(mutex)是一种同步原语,用于保护多个线程同时访问共享数据。互斥量提供独占的、非递归的所有权语义:一个线程从成…

动态路由协议实验——RIP

动态路由协议实验——RIP 什么是RIP ​ RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于…