当前位置: 首页 > news >正文

Linux中的权限管理

一、权限的概念

在 Linux 系统的架构里,权限是构建安全堡垒的基石,精准界定了不同用户对文件与目录的操作边界,对系统安全的维护以及数据完整性的保障起着决定性作用。

1.权限的三种基础类别:

权限对文件的影响对目录的影响

读(r)

read

查看文件的具体内容,无论是文本文件中的文字信息,还是配置文件里的参数设置。
可以运用ls命令,罗列目录中的所有文件与子目录,了解目录结构与内容分布。

写(w)

write

自由修改文件内容,无论是增添新的文字段落,还是修正既有数据。
可在目录中创建全新的文件与子目录,还能删除目录里已有的文件与子目录(删除需与x权限一起使用)

执行(x)

execute

文件属于可执行文件时,用户得以运行该文件,让程序中的指令依序执行,实现各种功能。
允许用户运用cd命令顺利进入该目录。

二、权限的查看及读取

1.权限的查看

touch 文件    (建立文件)

mkdir 目录     (建立目录)
ls -l 文件        (查看文件权限)
ls -ld 目录     (查看目录权限)

2.文件权限的种类 

文件的属性被叫做文件的元数据(meta data),一种元数据用1个 byte 来记录内容。

元数据:用来描述数据的数据

类型  u(所有者)  g(所属组)  o(其他人)链接数大小拥有者拥有组时间文件/目录名
文件权限信息-            rw-             r--              r--10rootrootMar 31 21:26test.sh
目录权限信息d            rwx             r-x              r-x26rootrootMar 31 21:27lxt

1)文件类型

-dlbcs(socket)p
普通文件目录软连接块设备(硬盘)字符设备套接字(跨网络通信)管道 |

2)文件权限说明

文件可能出现的权限: ---、r--、r-x、rw-、rwx

目录可能出现的权限:---、r-x、rwx

r:read,可读

w:write,可写

e:esecute,可执行

-:没有对应权限

3.用户对文件的身份识别及设定

owner:文件所有者/拥有者(默认为文档的创建者),缩写u

group:文件所属组/拥有组(与文件同组的用户),缩写g

others:其他用户(相对于所有者),缩写o

root:超级用户(权限最大,管理普通用户)

1)chown命令:更改文件的所有者\拥有者 

格式:chown [-R] 新拥有者名称 文件名或目录名  

①进入 mnt 目录,建立五个 lee 文件(lee1、lee2、lee3、lee4、lee5),建立 lxt 目录,并在 lxt 目录中建立三个 test 文件(test1、test2、test3),用作测试。 

②进入监控界面,实时观察数据的变化 

③新开一个命令界面,切换到 mnt 目录,用相对路径,并查看 lee 文件和 lxt 目录是否存在,若不存在,需建立。

④更改 lee1、lee2 文件的拥有者,分别为 lee、lxt 。

⑤更改 lxt 目录的拥有者为 lee ,但只能该更改主目录的拥有者,无法更改子目录。 

⑥若要将子目录的拥有者一起更改,需加上 -R(递归),使得主目录与子目录的拥有者一起更改。

2)chgrp命令:更改文件所属组\拥有组

格式:chgrp [-R] 新拥有组名称 文件名或目录名 

 ①更改 lee3 文件的拥有组为 lee 。

② 更改 lxt 目录的拥有组为 lee 。

③若将子目录的拥有组一起更改,加上 -R(递归),使得主目录与子目录的拥有者一起更改。

3)同时更改文件和目录的拥有者和拥有组

①更改 lee2 文件的拥有者和拥有组

格式:chown 新拥有者:新拥有组 文件名 (冒号或点都可以)

②同时更改 lxt 目录以及子目录的拥有者和拥有组

格式:chown -R 新拥有者.新拥有组 目录名 (冒号或点都可以)

4.设定普通权限 

1)复制权限

格式:

chmod --reference=/lxt lee5                  (复制目录lxt的权限到文件lee5上)

chmod -R --reference=/lxt 目录/子文件 (复制目录/lxt的权限到该目录及其子文件上)

复制 lxt 目录的权限到 lee5 文件上

2)设定权限

格式:chmod <a|u|g|o><+|-|=><r|w|x> file

权限定义: 

u(user)文件所有者/拥有者
g(group)文件所属组/拥有组
o(others)其他用户
a(all)所有
+增加
-移除
=设定
r(read)可读权限
w(write)可写权限
x(execute)可执行权限

设定权限前:

设定权限后:

3)数字方式设定权限

bool:(on off )(true faluse)(yes no)(0 1)

权限波尔指表示方式: 

例如:755 = rwx | r-x | r-x =7 5 5           r-x rw- --x = 561

将 lee1 文件的权限改为561,也就是 r-xrw---x。 

rwx1117
rw-1106
r-x1015
r--1004
-wx0113
-w-0102
--x0011
---0000

5. 特殊权限

在 Linux 系统中,用户对文件或目录的访问权限除了 r、w、x 三种一般权限外,还有 SUID(Set Uid) 、SGID(Set Gid) 、Sticky Bit( 粘滞位 ) 三种特殊权限,用于对文件或目录进行更加灵活方便的访问控制。

1)SUID(Set Uid)——冒险位

2)SGID(Set Gid)——强制位

对于可执行文件,当设置了 SGID 权限的程序被执行时,进程的有效组 ID(Effective Group ID)会临时被设置为文件所属组的组 ID。对于目录,设置了 SGID 权限后,在该目录下创建的新文件和子目录将自动继承该目录的组,而不是创建者的默认组。

对目录:

①进入 mnt 目录界面,建立 lxt 目录,并建立 lxt 目录的拥有组为 lee , 随后打开监控界面。

②建立 haha 用户,不能更改用户的主组,于是更改用户附加组为 lee , 查看用户id信息,确定 haha 用户的主组为 haha ,附加组为 lee 。

③若在 lxt 目录中建立文件,文件拥有组应为目录的拥有组。切换到 haha 用户的界面,在 lxt 目录中建立名为 hahafile1 的文件,但其拥有组是它的主组 haha ,这在 lxt 目录中不合适。

③为了让在 lxt 目录中建立文件时,拥有组都与 lxt 目录的拥有组相同,可设置 SGID ,让该目录下创建的文件和子目录都继承该目录的拥有组。( g 中的 x 变为 s )

格式:chmod 2权限 目录    或    chmod g+s 目录(Set Gid 的权限值为2)

随后再进入 haha 用户界面,在 lxt 目录中建立 hahafile2 文件,可看到 hahafile2 文件的拥有组为它的附加组 lee ,而不是它的主组 haha ,对于已经存在的 hahafile1 文件不生效。

对文件:

SGID 对于文件,仅对二进制可执行文件生效,当开启 SGID 的二进制可执行文件被任何用户产生进程时,都属于二进制可执行文件的所有者和所有组无关。

①实时监控进程信息

命令说明:

watch -n 1实时监控
ps显示进程信息
ax所有信息
user进程拥有者
group进程拥有组
comm进程名称
grep cat过滤(将含有cat名称的挑出来)
ls -l /bin/cat查看/bin/cat的权限

①haha 用户建立的进程中,所有人和所有组与 /bin/cat 文件的所有人和所有组无关。

②先退出 haha 用户界面,用 root 用户身份对 /bin/cat 文件建立 SGID 权限,将 g 中的 x 变为 s 。然后再次进入 haha 用户,建立 /bin/cat 进程,受 s 的影响,此时 haha 用户的拥有组为 /bin/cat 进程的拥有组。

3)Sticky Bit——粘滞位

Sticky Bit 权限通过在目录权限上设置一个特殊标志,实现在这个目录的文件只能被文件所有人删除。它限制了用户对目录中文件的删除和重命名操作,只有满足特定条件的用户才能执行这些操作。

①进入 mnt 目录界面,建立 pub 目录,并设定 pub 目录的权限为777,随后进入监控界面。同时,另外打开两个命令界面,分别切换到叫做 lee 和 admin 的用户(若无用户,自行建立)。

切换用户命令:su 用户名                                 建立用户命令:useradd 用户名

② lee 和 admin 用户分别在 pub 目录建立 leefile 和 adminfile 文件,是成功的。

③ admin 用户可以删除自己和 lee 用户在 pub 目录建立的文件,在日常生活中这是不安全的行为。

④在根目录里开启 pub 目录的 t 权限(以下两条命令任何一条都可以),那么这个目录中的文件只能被文件所有者删除。

开启 t 权限的命令:chmod 1777 目录名   或   chmod o+t 目录名

 ⑤开启 t 权限后,再重新建立 leefile 和 adminfile 文件,再由 admin 用户删除,结果是 admin 用户删除不了不属于它的文件,只能由文件所有者删除。

相关文章:

  • git clone 提示需要登录 github
  • #Linux内存管理# 在32bit Linux中,内核空间的线性映射的虚拟地址和物理地址是如何换算的?
  • PWA 进阶教程(三): 如何在 PWA 中实现后台同步
  • mediacodec服务启动时加载media_codecs.xml
  • MySql面试总结(五)
  • 关于修改 vue Element admin、若依, 等后台管理系统模板的一些全局样式问题:
  • 这样看数组
  • 【TS学习】(19)TS中的类
  • 机器学习(八):K-Means聚类原理与实战
  • CSS3学习教程,从入门到精通, 化妆品网站 HTML5 + CSS3 完整项目(26)
  • Debian/Ubuntu的networking的`/etc/network/interfaces`配置文件详解
  • bilibili全链路压测改造之全链自动化测试实践
  • ZLMediaKit 源码分析——[3] ZLToolKit 中EventPoller之网络事件处理
  • Jmeter操作(数据库)
  • 讯投 QMT 使用小技巧 -如何判断今天是不是交易日
  • Java 流程控制关键字全解析:break、continue 与 goto 的深度实践指南
  • uniapp APP端在线升级(简版)
  • Linux服务器配置安装与管理
  • Linux探秘坊-------10.基础IO
  • WebRTC的ICE之TURN协议的交互流程中继转发Relay媒体数据的turnserver的测试
  • 郑培凯:汤显祖的“至情”与罗汝芳的“赤子之心”
  • 中央结算公司:减免境外央行类机构账户开户费用
  • 专访|西蒙·斯特朗格:以“辞典”的方式讲述二战家族史
  • 5年建成强化城市核心功能新引擎,上海北外滩“风景文化都是顶流”
  • 欧阳娜娜担任江西吉安文化旅游大使
  • 上海:企业招用高校毕业生可享受1500元/人一次性扩岗补助