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

Linux中权限系统

目录

简介:

文件和文件目录的权限:

ls -l 结果解析:

修改文件权限:

数字法:

字母法:

命令chown:

命令su

su和su - :

详细对比

环境变量:

什么是环境变量??

环境变量举例:

什么叫环境变量不纯净??

举个危险的例子:

重要总结!!:


简介:

        权限是对文件和文件目录之间的一套管理规则

        这种规则决定了不同角色可以对文件做什么事情


文件和文件目录的权限:

文件:

        r:读权限,用类似cat命令去查看文件时需要该权限

        w:写权限,使用vim进行编辑,删除时需要用到该权限

        x:执行权限,将文件交给内核处理并运行文件中的内容
        r--:只具有读权限,可以通过vim往里面写但是,:wq不能保存退出,:wq!可以强制保存

                退出

        -w-:只具有写权限,但是在这个状态不能从vim写,

                因为你使用vim写时必须先要读取文件里的数据

                可以使用echo加重定向往文件写内容

        --x:不能读不能写,不能执行,因为你要执行文件里的内容,也得先知道文件里的内容,也

                就是得先读取文件里的内容

文件目录(和文件权限有点不同):

        r:读权限,类似通过ls查看(不能ls -l)目录下的文件名需要用到这个权限。

        w:写权限,就是对目录内的的东西操作,比如创建删除等对文件的操作

        x:执行权限,cd进目录需要该权限,ls -l也需要该权限

        r--:只有读权限,不能cd进目录,也不能ls -l(需要x),可以ls -ld查看目录信息

        -w-:只有写权限,不能ls ,可以touch 路径创建文件,但是还是不能cd

        --x:只有执行权限,只可以cd进目录,ls,ll,touch,rm都不行


ls -l 结果解析:

例如:查看文件test1

现在对结果一列一列说:

-:

        这个位置代表文件类型:

        -:代表普通文件

        d:目录文件

        l:链接文件

        b:block块设备文件,提供带缓冲的随机访问,按照快数据访问

        c:字符设备文件,提供无缓冲的串行输入输出,一次处理一个字符

        s:套接字文件,进程间的通信文件

        p:命名管道,先进先出的特殊文件,用于进程间的通信

后面的九列分为三个部分:

        rw-:这个代表文件所属用户的权限,

        r--:这个代表文件所属组的权限

        r--:这个是其他用户对该文件拥有的权限

        .:这个点是特殊权限符。

        1:这个是共享文件数量,硬链接数量

        root:文件所属用户

        root:文件所属组

        0:这代表文件的大小

        oct...:代表更改文件的时间

        test1:文件名


修改文件权限:

命令: chmod

数字法:

        chmod  数字  文件名

        数字如何确定权限?现在来举个例子:

        1.rw- r-- r-- (有权限就是1,没有权限-就是0) 转化位二进制:110 100 100

        2.再将二进制三组每一组都化为10 进制,就是 6  4  4

        3.所有设置rw- r-- r--就是 chmod 644 test1

        如图设置test权限为rwxr-xr-x

字母法:

首先要明白

        u代表第一段权限(用户)

        g代表第二段权限(组)

        o代表第三段权限(其他用户)

案例:

如图语法,等号后面有什莫权限就在对应的部分增加权限,

如果等号后面啥都不写,则对应段权限为---

比如

本来是rwxr-xr--,使用了chmod  o= test  变成了rwxr-x---

当然还有第二中比较方便:

列出原本权限:

u用户对应的权限是rw-,现在为他增加一个x权限

chmod u+x test1

去掉则是:

chmod u-x test1


命令chown:

chown student:studentGroup test1

命令su

su - 用户名(完全切换或者登录式切换)

su 用户名(不完全切换或者是非登录切换)


su和su - :

详细对比

特性su (不完全切换)su - (完全切换)
全称Substitute User (替代用户)Substitute User Login (以登录方式替代用户)
环境变量继承 了当前用户的环境变量。完全重置 为目标用户的环境变量。
工作目录保持在当前目录。切换 到目标用户的家目录。
Shell 模式非登录 Shell。登录 Shell。
读取的配置文件通常只读取 ~/.bashrc会读取目标用户的所有登录配置文件,如:
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
体验像是“借用”了目标用户的身份,但还穿着旧用户的“工作服和环境”。像是 完全重新登录 到目标用户的账户,拥有一个全新的会话。

以以下的代码为例:

[zhangsan@server ~]$ su
密码: 
[root@server zhangsan]# pwd      # 注意:目录没变,还在 /home/zhangsan
/home/zhangsan

就是zhangsan想用root用户的权限,在自己的目录下做一些事情。

注:意思zhangsan希望以root用户的身份,但保持当前的工作目录和环境变量,来执行操作。

        环境变量还是zhangsan的

但是一般使用:

su - root #进入root用户
cd /home/zhangsan

因为直接su有风险,导致环境变量不纯净


环境变量:

什么是环境变量??

环境变量就像是程序的身份证和工作证

  • 我是谁? (USER=zhangsan)

  • 我在哪? (PWD=/home/zhangsan)

  • 我该去哪找工具? (PATH=...)

  • 我该说什么语言? (LANG=zh_CN.UTF-8)

环境变量举例:

$ echo $USER    # 当前用户名
zhangsan
$ echo $HOME    # 家目录位置
/home/zhangsan
$ echo $PATH    # 命令搜索路径
/usr/local/bin:/usr/bin:/bin
$ echo $PWD     # 当前目录
/home/zhangsan

什么叫环境变量不纯净??

场景再现:

# zhangsan用户的环境
[zhangsan@server ~]$ echo $PATH
/home/zhangsan/.local/bin:/usr/local/bin:/usr/bin:/bin# 使用 su 切换到root
[zhangsan@server ~]$ su
密码:
[root@server zhangsan]# echo $PATH
/home/zhangsan/.local/bin:/usr/local/bin:/usr/bin:/bin  # 看!还是zhangsan的PATH!

不纯净就是:身份是root但是环境还是zhangsan的

举个危险的例子:

zhangsan是恶意用户他在自己目录下放了

/home/zhangsan/.local/bin/ls   # 这是个恶意程序!

现在root用户执行ls会先把在zhangsan的环境下寻找

# 使用 su(不纯净环境)
[root@server zhangsan]# ls   # 系统会先搜索 /home/zhangsan/.local/bin/ls
# 💥 中招!root执行了恶意程序!

重要总结!!:

zhangsan恶意用户写的这个/home/zhangsan/.local/bin/ls,这个ls根本是假的ls,他的作用以及不

是查询了,而是其他恶意操作名字叫ls

但是root还是会去找这个假的ls导致出现危险操作!!!

http://www.dtcms.com/a/456999.html

相关文章:

  • 网站域名到期后果四川人力资源考试官网二建
  • python爬虫(五) ---- Pyinstaller打包Python程序为exe文件及遇到的问题
  • 沈阳做网站价格自己做网站要学什么
  • 深入浅出ArkTS:HarmonyOS应用开发的现代化语法解析
  • UVa 204 Robot Crash
  • 2025 完整指南:Gemini 2.5 Computer Use 模型 - AI Agent 界面控制的革命性突破
  • 云南网站建设专业品牌网站域名怎么转
  • Vue项目中如何实现表格选中数据的 Excel 导出
  • 【多模态学习】QA7: GRPO算法?KL散度指的是什么?什么叫做长思维连冷启动?模型退火是什么意思?
  • 无人机_鲁棒性
  • 用自己的计算机做服务器建网站海外模板网站有哪些
  • 检测MODBUS通讯连接 (MODBUS POLL)
  • 数据结构(陈越,何钦铭)期末考试
  • 接口测试-Postman的关联
  • 重庆网站建设快忻科技国外h5汇总网站
  • 解决 LÖVE 引擎 liblua.so.5.4 库缺失问题
  • 从原始数据到实时防御:与 John Hammond 的对话
  • JavaScript事件流:冒泡与捕获的深度解析
  • 避免网站侵权免费域名申请 freenom最新
  • 【C++进阶】---- 红黑树实现
  • 【多模态学习】QA6: 什么是MOE架构?Router Z Loss函数是指什么?
  • 做seo网站公司jsp做网站还
  • 本地部署javaweb项目到Tomcat的三种方法
  • 中秋月满,心却不满
  • VSCode 中 c_cpp_properties.json 配置项 includePath 通配符“**”含义
  • 电商网站建设要多少钱建设银行官方网站入口
  • VS Code配置Python开发环境系列(1)___VScode的安装 ,VScode常用快捷键
  • Redis 集群分片算法
  • 【MYSQL】SQL学习指南:从常见错误到高级函数与正则表达式
  • 个人网站开发 怎么赚钱吗wordpress阿里图标库