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.mzph.cn/pingmian/20996.shtml

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

相关文章

vs2019 c++20 规范的 STL 库的智能指针 shared、unique 、weak 、auto 及 make_** 函数的源码注释汇总,和几个结论

智能指针的源码都在 《memory》 头文件中。因为头文件太长,再者本次整理是基于以前的零散的模板分析。故相当于抽取了该头文件中关于智能指针的源码进行分析,注释。 (1 探讨一)当独占指针指向数组时,其默认的删除器是…

ABP框架+Mysql(二)

展示页面--图书列表页面 本地化 开始的UI开发之前,我们首先要准备本地化的文本(这是你通常在开发应用程序时需要做的).本地化文本在前端页面会常用。 本地化文本位于 Acme.BookStore.Domain.Shared 项目的 Localization/BookStore 文件夹下: 打开 en.json (英文翻译)文件并更…

STM32-- GPIO->EXTI->NVIC中断

一、NVIC简介 什么是 NVIC ? NVIC 即嵌套向量中断控制器,全称 Nested vectored interrupt controller 。它 是内核的器件,所以它的更多描述可以看内核有关的资料。M3/M4/M7 内核都是支持 256 个中断,其中包含了 16 个系统中…

MySQL—函数—数值函数(基础)

一、引言 首先了解一下常见的数值函数哪些?并且直到它们的作用,并且演示这些函数的使用。 二、数值函数 常见的数值函数如下: 注意: 1、ceil(x)、floor(x) :向上、向下取整。 2、mod(x,y):模运算&#x…

CTF本地靶场搭建——GZ:CTF基础使用

GZ::CTF 是一个基于 ASP.NET Core 的开源 CTF 平台。 简介 GZ::CTF 是一个基于 ASP.NET Core 的开源 CTF 平台,采用 Docker 或 K8s 作为容器部署后端,提供了可自定义的题目类型、动态容器和动态分值功能。 本项目缘起于作者认为 CTFd 的实现不优雅&a…

Photoshop 首选项设置建议

Windows Ps菜单:编辑/首选项 Edit/Preferences 快捷键:Ctrl K macOS Ps菜单:Photoshop/首选项 Photoshop/Preferences 快捷键:Cmd K 对 Photoshop 的首选项 Preferences进行设置,可以提高修图与设计效率。下面是一些…

burp插件new_xp_capcha识别验证码的简易安装

1.new_xp_capcha 插件是大佬开发的可以正常白嫖,感谢大佬,我找了个不需要任何高级操作就可以做的安装手法,因为我在网上搜了一下就发现这个的安装过程攻略都还蛮复杂,我这里用了个简单的手法 2.安装 下载地址:smxia…

上网是不是必须路由器和光猫之一负责拨号?

链接:https://www.zhihu.com/question/624856022/answer/3245182557 上网并非一定要“拨号”,使用固定IP地址可以直接上网,不需要拨号。你们公司的宽带属于商用宽带,运营商(电信)给配置了固定的IP&#…

不同程序猿的六一表情

初级 中级高级资深#猿脑2.0

小程序模板开发与定制开发的对比

一、引言 随着移动互联网的快速发展,小程序作为一种轻量级的应用形态,已经深入到人们的日常生活和工作中。小程序以其无需安装、即用即走的特点,受到了广大用户的青睐。在小程序开发领域,模板开发和定制开发是两种常见的开发方式…

[补题记录]LeetCode 6.Z字形变换

传送门:Z字形变换 转自:Z字形变换 Thought/思路 关键点在于,最后的答案是一行行连接起来的。 这样我们就会发现,这个 Z 字,实际上会让行数 不断加 1,然后又 不断减 1。每次按顺序选择 S 中的一个字符即…

基于C#使用ACCESS数据库时遇到的问题记录

一、32位版本Office与64位AccessDatabaseEngine共存安装方法 1. 使用winrar、7zip等软件将AccessDatabaseEngine_X64.exe解压缩,得到AceRedist.msi和files14.cat2个文件 2. 下载Orca MSI编辑修改工具。安装后,使用Orca打开AceRedist.msi,找到…

IF:83.5!一作兼通讯,​Nature系列综述:可以吃的机器人!

在当今科技与生物工程快速融合的时代,传统领域之间的界限正在逐渐模糊,创造了许多前所未有的创新机会。机器人设计与食品加工这两个看似无关的研究领域,正在通过材料特性、制造工艺和功能的交叉融合,展现出巨大的潜力。 可食用机器…

Python 算法交易实验70 简单回顾

说明 感觉停滞了一段时间,本来qtv200应该在去年12月就迭代好了。回顾了一下原因: 1 工作的约束。因为量化现在是打辅助的角色(现在的工作还是比较香的),去年上了项目,几乎与世隔绝的那种,打断了整体的节奏。2 信心的…

各类封装函数代码

计算相关系数,Filter方法,并筛选特征 def feature_select_pearson(train, test):"""利用pearson系数进行相关性特征选择:param train:训练集:param test:测试集:return:经过特征选择后的训练集与测试集"""print(feature_select...)features = …

【每日刷题】Day54

【每日刷题】Day54 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 575. 分糖果 - 力扣(LeetCode) 2. 147. 对链表进行插入排序 - 力扣&#xf…

多源 BFS 详解

目录 一、多源与单源的区别 二、例题练习 2.1 例题1:01 矩阵 2.2 例题2:飞地的数量 2.3 例题3:地图中的最高点 2.4 例题4:地图分析 一、多源与单源的区别 单源最短路问题如何解决已经在上篇博客给出BFS 解决最短路问题&am…

最新版ERP进销存网络多仓版WEB源码

安装说明 环境要求: PHP5.6MYSQL5.6 1.恢复数据库.sql数据 2.配置sql参数连接路径:application\config\database.php 3.前台登录用户名:admin 密码:admin 源码免费下载地址抄笔记 (chaobiji.cn)

解决sd-webui中rembg插件使用报错问题

stable-diffusion-webui-rembg是我非常喜欢的sd-webui插件,PS抠图手残党的福音,一键抠图太爽啦。对于主体明确线条简单的图片(如汽车、服饰简洁的人像等)效果相当好;即便对于毛茸茸的对象(如动物&#xff0…

Minio启动脚本-Windows版

MinIO 是一种高性能、S3 兼容的对象存储。 它专为大规模 AI/ML、数据湖和数据库工作负载而构建,并且它是由软件定义的存储。 不需要购买任何专有硬件,就可以在云上和普通硬件上拥有分布式对象存储。 MinIO拥有开源 GNU AGPL v3 和商业企业许可证的双重许可。 ——摘自…