【Linux权限:系统中的数字锁与安全之门】(上)

简介: 【Linux权限:系统中的数字锁与安全之门】

1.Linux下的用户


Linux下有两种用户:超级用户(root)、普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。


命令:su [用户名]


功能:切换用户。


例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。


总结:


  • 普通用户切换成root,需要输入root密码。
  • root回退到普通用户:exit或者ctrl+d(logout)。


  • root账号变成普通,不用认证。


  • 普通用户变成另一个普通用户,需要对方的密码。


su - :以root身份重新登录一次。


su :用户身份切换为root。


如果我们所有人都有root密码,每个人都可以删除用户添加信息,但是总不能排出有新手误删了,此时对数据就会造成不可挽回的影响,所以一般拥有root密码的是Linux管理员。


sudo:对指定的指令进行提权


普通用户不想切换为root,但是想以root权限执行指令:sudo touch file1.txt,然后输入普通用户的密码。


我们后面再以root权限执行指令:sudo touch file3.txt,我们会发现此次不需要输出普通用户的密码就创建出文件了,这是因为曾经sodu输过密码,并且Linux会短暂的记录用户在一段时间执行过sudo命令,是已经做过认证的,所以后面就不需要再输入密码。


如果我们输入sudo就可以以root的身份执行指定的命令,root的密码是否就毫无意义呢?我们去执行一下sudo ls


如果我们将用户添加到该配置文件中,那用户是否可以执行sudo吗?当然可以,但是该配置文件(白名单)是root文件,我们普通用户无法自己添加该配置文件,要添加该配置文件必须以root的身份添加。所以能够执行sudo的,一定是历史上曾经经过管理员允许的用户,才能执行sudo,我们上面之所以能执行sudo是因为将sudo touch命令添加到该配置文件


2.Linux权限管理


首先了解一个概念,权限一定是限制人的,比如优酷会员,买了会员就可以看一些付费的电视剧。 对应的操作对象,一定要有对应的满足人的需求的属性。比如:优酷就专门看电视剧,csnd专门学习。


01.文件访问者的分类(人)


  • 文件和文件目录的所有者:u---User
  • 文件和文件目录的所有者所在的组的用户:g---Group
  • 其它用户:o---Others



为什么会存在一个所属组


 假设当张三这个拥有者写了一份非常优秀的代码,他的领导是属于其他普通用户,领导觉得张三的代码非常好,想看一下,于是张三想打开了权限,让其他用户可以看到,但是同为竞争者的李四也是其他普通用户也就能看到,于是张三拥有者就和领导这个普通用户搭建了一个所属组,该组的所属者为张三,将其组内的内容对领导这个普通用户设置可见,只能让领导这个普通用户看到。


02.文件类型和访问权限(事物属性)



a) 文件类型


  • d:文件夹 -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件


b)基本权限


  • i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • iv.“—”表示不具有该项权限


03.文件权限值的表示方法


a)字符表示方法


Linux表示 说明 Linux表示 说明
r-- 只读 -w- 仅可写
--x 仅可执行 rw- 可读可写
-wx 可写可执行 r-w 可读可执行
rwx 可读可写可执行 --- 无权限


b)8进制数值表示方法


权限符号(读写执行) 八进制 二进制
r 4 100
w 2 010
x 1 001
rw 6 110
rx 5 101
wx 3 011
rwx 7 111
--- 0 000


04.文件访问权限的相关设置方法


a)chmod


功能:设置文件的访问权限


格式:chmod [参数] 权限 文件名


常用选项:

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限



修改权限:chmod ugoa+=rwx FILE


验证有无权限,对比是什么?


当我们没有权限的时候,就不能以该方式访问该文件,直接被拒绝访问。有对应的权限才能做对应的事。对于可执行来说,不一定拥有可执行的权限就可以执行该文件。


当我们去掉拥有者的可执行权限,whb用户就不能执行文件了,可是我们发现所属组拥有可执行权限,而且所属组的用户还是whb用户,此时whb用户以所属组的身份去执行为什么不能执行此文件呢?


这是因为一个用户在去访问这文件的时候,Linux系统默认当前的用户的身份是拥有者,只会去看拥有者的权限,而且Linux系统的这种匹配只会匹配一次,匹配到了拥有者就不能再次匹配到所属组了。


此时拥有者就切换为了gaobo这个用户,但是此时登录的还是whb,此时Linux系统根据当前的用户whb就去匹配到了所属组,从而也就可以执行这个文件了。


当我们切换到gaobo这个普通用户,此时Linux系统又会再次匹配,此时匹配的就是拥有者,此时就没有可执行的权限。        


我们再切换为whb用户,此时我们对file.txt文件删除所有权限


然后我们切换超级用户root,此时root归属于other,root此时依然没有任何权限


上面图片观察到,尽管root没有权限,但是依然能够访问到该文件,说明权限对超级用户root形同虚设。

同时根据8进制数值表示法,我还可以用8进制进行权限修改。


【Linux权限:系统中的数字锁与安全之门】(下):https://developer.aliyun.com/article/1425487

相关文章
|
11月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
971 3
Linux系统禁用swap
|
11月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1565 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
1045 3
Linux系统初始化脚本
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
730 18
|
11月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
436 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
11月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
1197 1
|
11月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1471 1
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
2669 10
|
安全 Linux C++
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
474 0
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
|
安全 Linux 数据安全/隐私保护
为Linux系统的普通账户授予sudo访问权限的过程
完成上述步骤后,你提升的用户就能够使用 `sudo`命令来执行管理员级别的操作,而无需切换到root用户。这是一种更加安全和便捷的权限管理方式,因为它能够留下完整的权限使用记录,并以最小权限的方式工作。需要注意的是,随意授予sudo权限可能会使系统暴露在风险之中,尤其是在用户不了解其所执行命令可能带来的后果的情况下。所以在配置sudo权限时,必须谨慎行事。
1942 0