前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >第七章 权限管理

第七章 权限管理

作者头像
晓天
发布于 2019-07-04 06:17:43
发布于 2019-07-04 06:17:43
7530
举报

第七章 权限管理

7.1 用户使用资源限制文件

Linux中,对于用户使用系统资源,如:CPU、内存、磁盘空间等,都可以做出限制,需要在相关的配置文件中做设置:

vi /etc/security/limits.conf ---编辑资源限制文件,可写入

zhang soft nproc 70

---soft 设置软限制,即警告值, nproc表示该用户运行起的进程数

zhang hard nproc 100 ---hard 设置硬限制,即上限最大值

以上案例可以实现对用户zhang限制其运行进程的数量,到达soft软限制时,会有警报,但仍可继续使用,到达hard硬限制时,将不允许再使用了。

注:该文件注释中的<item>项对可设定限制的资源项有解释。

7.2 文件访问权限设置

7.2.1 文件详细信息介绍

之前我们学习过,ls –l 或 ll后可见到目录下文件的详细信息,那么具体这些信息都是什么呢?我们来详细介绍下:

ls -l ---显示目录内容的详细信息,会显示7项信息

从左至右依次为:文件权限 硬链接数 文件的所属者(属主) 文件的所属组(属组) 文件大小(单位:B) 上一次修改时间 文件名

对应下图:

其中:文件权限部分由10个字符组成,意义如下:

- rwx rwx rwx

文件类型 所属者权限u 所属组权限 g 其他用户权限 o

注:三类用户统一表示用 a

第一个字符的文件类型,由不同字符表示不同类型的文件,具体如下:

- 二进制文件,即文档类 d 目录 l 软链接 b 块设备,如磁盘 c 字符设备,如磁带

注:块设备、字符设备的原理,我们将在后续章节中介绍

每类用户的权限,都由rwx组成,表示了该类用户的访问权限:r读取 w写入 x执行,例如:-rw-r--r-- 表示文档类文件,属主具备读写权限,属组成员具备只读权限,其他用户具备只读权限。

权限的10个字符后的数字1 表示该文件的硬链接数,之前已经讲过。在后面的两个root,前一个表示文件的所属者即属主,后一个表示文件的所属组即属组。二者的权限对应权限中的u和g块。

7.2.2 权限配置

我们先来看一个案例:

图中,以root用户创建并写入一个文件f1,切换到zhang用户下,可查看但不可写入,原因是对于f1文件来讲,属主是root,属组是root,而zhang用户属于其他用户类别,所以只有读权限,没有写权限。那么如果想要允许zhang用户能够写入f1,则需要做权限的更改。更改权限的命令是chmod,它有三种设置方式:

chmod u+x,g+w,o-r f1 ---增减方式配置权限

chmod a+x f1 ---三类用户统一设置

注:增减的方式是在原有权限的基础上做增加或减去

chmod u=rw,g=r,o=r f1 ---赋值方式

chmod a=rw f1

注:赋值方式是全新赋值,覆盖原有权限

chmod 644 f1 ---数字赋值方式,即u=6,g=4,o=4

解释:把rwx三个权限视为一组3bit的二进制数字,有该权限,对应位置1;没有该权限,对应位置0,再转回十进制

例:rw- => 110 => 6 rwx=> 111 =>7 r-x => 101 => 5

所以:chmod 644 f1即 u=rw g=r o=r

chmod 66f1 ---位数不足三位,采用高位补零,即066,称为:右匹配原则

7.2.3 目录的rwx对应的意义

对于文件,我们很容易判断rwx三种权限的功能,即r读取文档,w写入文档,x执行该程序。但是对于目录,我们可能不太清楚rwx的功能,下面具体介绍一下:

r ---显示目录下的内容,即ls功能

w ---允许在目录下创建子目录、子文件

x ---进入目录的功能,即cd功能

可参考如下实验:

由图中可见,只有单x权限的目录,其他用户只能cd进去,却ls查看不了;只有单r权限的目录,其他用户只能ls查看其内容,但cd不进去。而w权限对于目录应该是比较好理解的,表示能够在目录下创建、删除、改名子目录或子文件。

7.2.4默认权限

由前面的案例可见,root创建目录后的默认权限是755,创建文件后的默认权限是644,原因是Linux中有一个权限参数变量:umask 默认值是0022,先关注后三位,即022。可用umask命令查看到其值:

umask ---查看umask变量的值

文件的默认权限其实是由满权限减去umask的后三位的值得到的,如下:

文件默认权限:满权限 - umask = 默认权限

666 - 022 = 644

目录默认权限:满权限 - umask = 默认权限

777 - 022 = 755

注:普通文件因为一般无需执行,所以满权限被认为是666;目录因为必须有x权限才可进入,所以满权限被认为是777

其实umask的值也不是固定的,不同身份的用户umask值也不同,管理员root umask=0022 普通用户 umask=0002,读者可自行查看。

另外,umask的应用除了系统中会有使用,很多文件传输类服务,如:FTP,在上传文件时也会设置umask以制定默认权限,这里暂不展开讲解,先行记住即可。

7.2.5安全位 ---set位

安全位的概念有些复杂,比较难以理解,读者需要多做实验,加以印证。

功能:可以给u 或 g 增加安全位 即 u+s 或 g+s,并且安全位是加给某个程序的,

则运行该程序时,程序所访问到的文件,以此文件的所属者或所属组身份访问

案例:chmod u+s /usr/bin/cat ---给cat命令程序增加用户安全位

su zhang

cat f1 ---则此时,访问f1时,以f1文件的所属者身份访问

ll /usr/bin/cat

注:查看显示程序信息,安全位s显示在x权限的位置,大写S说明之前无x权限,小写s说明之前有x权限

案例如下图:

如图,给cat命令的执行程序增加安全位后,zhang用户使用cat命令时,读取f1的内容,按f1文件的属主身份访问,但是如果使用head、tail、more等命令读取f1时仍应该是拒绝的。

同样道理,如果给cat命令增加了g+s即组的安全位,则cat访问f1时,会以f1的属组身份访问的。

7.2.6 粘贴位 ---sticky位,又称粘连位

我们可以想象一下,如果我们以一个用户的身份进入系统,在某目录下创建了自己的目录和文件,当其他用户也登录进系统,如果权限允许,是可以删除我们所创建的文件的,这样对于我们的个人资料就不安全了,为了保护用户的个人资料,可以使用目录粘贴位的方式加以保护。

介绍:可以给目录增加粘贴位,粘贴位只能加到o 上,即 o+t,增加了粘贴位的目录,目录中的内容只有创建者有权删除

案例如图:

上图中,我们首先给/mnt的o增加了w权限,因为默认/mnt目录的权限是755,即其他用户无权写入。查看是用ll –d /mnt是只显示/mnt目录的信息,不显示/mnt目录下内容的信息。之后我们使用zhang用户进入/mnt中,创建了目录和文件,但是切换到moon用户下时,是可以删除的。下面我们来看一下增加了粘贴位的效果:

上图中可见,给/mnt增加了粘贴位后,zhang所创建的目录及文件,moon用户无权删除了,这就是粘贴位的功能。

7.2.7 权限配置进阶

有了安全位、粘贴位的概念,我们再来看一下四位数字赋值的方式

chmod 5755 d1

解释:第一位数字表示 u g 的安全位和o的粘贴位组成的3bit的二进制,如:5表示 s-t,即 u+s o+t

umask 中的第一位数字,也代表的也是文件默认的u g 的安全位和o的粘贴位。

另外,我们可以做实验证明,当给目录设置权限以后,目录内的子目录、子文件是不跟着一起变化的,那么如果我们想要实现改变目录的权限,其内部文件一起变,即配置的继承功能,则需要增加–R 参数,我们称之为递归操作,案例如下:

chmod -R 755 /mnt/d1 --- -R 表示递归操作

7.3 所属信息配置

我们在ls -l 查看的结果中,第三、第四项表示文件的所属者、所属组。当创建文件、目录后,默认当前的创建者即是文件的所属者,所属者所在的私有组即是该文件的所属组。可以想象一下,在权限为644的文件上,如果禁止更改权限,却仍想要允许zhang用户写入文件,可以采用的方法是更改文件的所属者为zhang用户,则zhang即可有写入权限了。

7.3.1 所属信息配置命令

更改文件所属的命令是chown,具体格式如下:

chown zhang f1 ---更改文件的所属者

注:更改后可验证zhang用户对f1有写入权限了

chown .zhang f1 ---更改所属组, 用 . 前面空白,表示略过属主,设置属组,注:用.或:都可以,如 chown:zhang f1

chown root.root f1 ---同时改两项, 等同于:chown root:rootf1

其实更改所属组,还有一个命令是 chgrp,但我们日常使用并不多,所以这里仅仅提示一下。如:chgrp zhang f1

另外,如果我们更改所属的对象是一个目录,默认仅是更改了目录的所属,而目录内的子文件、子目录并未跟着一起更改,若想实现目录内容继承更改,则需要增加递归参数–R,命令如下:

chown -R zhang.zhang dd ---更改目录及其内容的所属信息,-R 递归

最后再来看一下文件复制对文件所属信息的影响:

如图可见,复制目录后,文件的所属发生了变化,变回root属主root属组了。那么如果想要复制后保持原所属信息不变,可增加 –p 参数,如下图:

7.4 访问控制列表ACL

7.4.1 ACL的功能

我们可以试想一下,如果我们有一个文件,属主root,属组root,权限644,现不希望更改文件所属,却想仅允许用户zhang可以写入,该怎么办呢?如果用o+w的操作,虽然zhang可以写了,但是除了zhang以外的其他用户,如:lisi等,也具备了写的权限,这与我们的初衷不符,这时候,就可以使用acl来解决此问题。

ACL的功能就是:针对文件,设置特权用户,即允许特定用户访问

如:f1文件权限644,属主root,属组root,则zhang无权写入,可给zhang设定特权,仅允许zhang写入

7.4.2 ACL命令

具体的配置命令如下:

getfacl f1 ---查看文件的acl信息

setfacl -m u:zhang:rw f1 --- 针对文件,设置用户的acl, -m表示设置 u: 表示设置用户的acl

如图所见,用户zhang即对f1有rw权限了,可尝试编辑f1文件加以验证。

另外针对文件,也可以做组的ACL,命令如下

setfacl -m g:zu11:rw f1 --- g:表示设置组的acl

若要撤销acl,可使用-x或-b参数,具体如下:

setfacl -x u:zhang f1 ---撤销单个acl

setfacl -b f1 ---撤销文件的所有acl

7.5 文件属性设置

关于文件属性,其实日常工作中使用较少,这里我们只是简单介绍下,读者能够知道其功能即可。

属性,即文件的某些特性。使用lsattr命令查看,案例如下

lsattr -aR /root ---查看 /root 下的文件及目录权限

-a: 显示指定目录下的文件及目录的属性

-R: 递归显示

文件的常用属性有:

i: 只读属性

A:不更新文件的访问时间 .可减少磁盘 IO 操作

a:可追加数据,但无法修改、删除、重命名

c:压缩, 文件使用时自动解压, 离开文件 / 目录时自动压缩,以节省使用空间

d: 忽略 dump 备份 , 文件有此属性将不允许备份

S: sync 同步

s:安全删除属性 , 文件不可恢复

u:文件删除后,可恢复

其中我们比较容易理解的是:i a c 等属性

我们可以用 chattr命令,使用 + - 号来给文件增加或删除属性:

如图所示,在给f1增加i属性前,是可以写入的,给f1增加了i属性后,f1即处于只读状态,可用lsattr查看到,便不可再写入了。之后去除i属性后,f1又可写了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 教主小筑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux权限管理
之前在用户管理中提到用户和组的概念,服务器添加多账户的作用之一是可以针对不同用户分配不同的权限,从而根据不同权限限制用户可以访问到的系统资源。那么这次就来说一下Linux权限管理的相关内容,这部分也是非常重要的。如下。
reload
2024/02/04
4300
Linux权限管理
快速学习-Linux权限管理
由于Linux是多用户、多任务的操作系统,因此可能常常有多人同时在某台主机上工作,但每个人均可在主机上设置文件的权限,让其成为个人的“私密文件”,即个人所有者。因为设置了适当的文件权限,除本人(文件所有者)之外的用户无法查看文件内容。
cwl_java
2020/03/31
1.1K0
快速学习-Linux权限管理
Linux权限管理
Linux权限管理是其一大特色,优秀的权限管理机制为Linux安全性提供了可靠的保障。 ###一、用户权限管理: root用户是系统的超级用户,是Linux系统的CEO,它具有最高的管理权限,所以一般不用该用户登录系统进行日常的操作与维护,root可将某些权限赋予其他用户来管理系统的某些资源。 su命令用来切换用户,用该命令切换用户时,用户身份和环境变量都发生改变。例如: kelvin@kelvin-laptop:~$ ls examples.desktop workplace 公共的 模板 视频
宅蓝三木
2018/02/07
5.5K0
Linux权限详解 命令之 chmod:修改权限
在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4 +1 = 5 即
用户1214487
2018/08/01
6K0
Linux权限详解 命令之 chmod:修改权限
Linux入门篇 —— 一文带你彻底搞懂Linux 文件权限管理
Linux下文件/目录的权限和归属 访问权限 读取(r): 允许查看文件内容,显示目录列表 写入(w): 允许修改文件内容,允许在目录中新建、删除、移动文件或者子目录 可执行(x): 允许运行程序,切换目录 无权限(-): 没有权限 权限介绍 rw-r--r-- . 1 root root 1258 Jun 3 2019 initial-setup-ks.cfgd rwxr-xr-x . 2 root root 6 Jun 3 2019 Music - 代表普通文件 d 代表目录 c
ruochen
2021/02/07
1.1K0
Linux入门篇 —— 一文带你彻底搞懂Linux 文件权限管理
看了还想看—普通权限及umask
权限在操作系统是尤为重要的,无论是windows和linux中,都少不了权限这么一说,权限的大小决定了你能操作些什么,在linux中,权限对目录和文件的意义是不同的,并且还有特殊权限。今天,我们就来说说一说权限在linux中的重要性以及权限操作命令。 权限: 权限决定用户对文件或目录的使用范围,权限如果设定的不恰当会带来很大安全隐患。其中root的权限最大,能做任何事,之所以设定root用户权限为最大是为了方便与管理用户或系统重要信息的,而不是在工作中用来维护服务器的,所以在生产环境中基本没人拿root来操
小小科
2018/05/04
1.3K0
Linux—权限管理
Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限:属主、属组以及其他人,通过这样的机制来限制哪些用户或用户组可以对特定文件进行相应的操作。
Alone-林
2022/09/23
4.4K0
红帽认证RedHat-RHCSA 权限管理
青灯古酒
2023/10/16
2360
红帽认证RedHat-RHCSA 权限管理
Linux系统安全 | Linux下的用户、组和权限
注:一般来说,只有 root 用户的 uid 是为0的。如果黑客把一个普通用户的 uid 修改为0的话,那么他只要以普通用户的用户名和密码登录,系统就会自动切换到root用户。所以,系统加固的时候一定要过滤出有哪些用户的UID为0
谢公子
2022/01/19
3.1K0
Linux系统安全 | Linux下的用户、组和权限
红帽认证RedHat-RHCSA 权限管理特殊权限网络配置磁盘管理逻辑卷管理软件管理笔记汇总
ACL是Access Control List的缩写,主要的目的是在提供传统的ower,group,others的read,write,execute权限之外的细部权限决定
青灯古酒
2023/10/16
2380
红帽认证RedHat-RHCSA 权限管理特殊权限网络配置磁盘管理逻辑卷管理软件管理笔记汇总
轻松掌握 Linux 权限(一文搞懂)
要从普通⽤户user切换到root⽤⼾则使⽤su root(root可以省略),此时系统会提⽰输⼊root⽤户的⼝令。
用户11375356
2025/05/09
2300
轻松掌握 Linux 权限(一文搞懂)
Linux之权限管理操作
以下出现的 “ # ” 表示以超级管理员(root)用户操作 Linux的权限操作与用户、用户组是兄弟操作。 文章目录 一、权限概述 1、权限介绍 2、身份介绍 3、Linux的权限介绍 二、权限设置 1、字母形式 2、数字形式 3、注意事项 三、属主与属组设置 1、chown(重点) 2、chgrp(了解) 四、扩展(1) 一、权限概述 总述:Linux系统一般将文件可存/取访问的身份分为3个类别:owner、group、others,且3种身份各有read、write、execute
兮动人
2021/06/11
1.1K0
Linux之权限管理操作
【Linux】掌握Linux系统编程中的权限与访问控制
✨Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情
大耳朵土土垚
2024/05/07
2470
【Linux】掌握Linux系统编程中的权限与访问控制
linux用户和权限管理
用户名:密码:上次修改密码的天数:密码最短有效天数:提前多少天警告过期:过期多少天禁用:失效日期:保留字段
yuezhimi
2020/09/30
4.2K0
100个linux命令(3)-权限管理
文件权限附属在文件所有者 u,文件所属组 g 和其他用户o 上。使用字符修改权限需要指明操作谁的权限,另外还要使用"+"或"-"指定增加权限还是删除权限,也可以使用"="。
懒人的小脑
2019/01/09
9860
100个linux命令(3)-权限管理
Linux系统文件权限管理
Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限,每当我们使用用户名登录操作系统时,linux都会对该用户进行认证、授权审计等操作,本章主要内容就是围绕着权限来讲解的,我会讲解Linux系统中的所有常用权限包括,普通权限/隐藏权限/特殊权限/ACL/SUDO/SELinux,等的设置与使用技巧.
王 瑞
2022/12/28
4.9K0
Linux基础教程之linux文件权限深度解读
基本命令—— 1.cut : cat /etc/passwd | cut -d’:’ -f7| uniq -c| sort -nr
马哥linux运维
2018/11/16
1.2K0
Linux基础教程之linux文件权限深度解读
Linux权限机制深度解读:系统安全的第一道防线
在现代操作系统中,权限管理是保障安全与系统稳定运行的关键环节。Linux作为一个广泛应用的开源操作系统,其权限体系以灵活性、可扩展性和严谨性著称。无论是个人用户还是企业环境,理解并掌握Linux权限管理,既是保障信息安全的基础,也能大幅提升系统管理效率。本文将带你深入探索Linux权限体系的核心概念、常见操作以及最佳实践。
suye
2024/12/20
3250
Linux权限机制深度解读:系统安全的第一道防线
第八章·Linux权限管理-基本权限
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
6570
第八章·Linux权限管理-基本权限
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
在计算机系统中,权限是指用户或进程对系统资源(如文件、目录、设备、网络等)可以执行的操作的授权。权限的设计目的是为了保障系统的安全性,防止未经授权的访问或操作。
换一颗红豆
2025/02/02
1290
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
推荐阅读
相关推荐
Linux权限管理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档