16.4 【Linux】特殊文件与程序

简介: 16.4 【Linux】特殊文件与程序

16.4.1 具有 SUID/SGID 权限的指令执行状态

SUID 的权限其实与程序的相关性非常的大!为什么呢?先来看看 SUID 的程序是如何被一般使用者执行,且具有什么特色呢?


SUID 权限仅对二进制程序(binary program)有效;

执行者对于该程序需要具有 x 的可执行权限;

本权限仅在执行该程序的过程中有效 (run-time);

执行者将具有该程序拥有者 (owner) 的权限。

从上表的结果我们可以发现,底线的部分是属于 dmtsai 这个一般帐号的权限,特殊字体的则是 root 的权限! 但你看到了, passwd 确实是由 bash 衍生出来的!不过就是权限不一样!

16.4.2 /proc/* 代表的意义

之前提到的所谓的程序都是在内存当中。而内存当中的数据又都是写入到/proc/* 这个目录下的,我们当然可以直接观察 /proc 这个目录当中的文件。如果你观察过 /proc 这个目录的话,应该会发现他有点像这样:

基本上,目前主机上面的各个程序的 PID 都是以目录的型态存在于 /proc 当中。 举例来说,我们开机所执行的第一支程序 systemd 他的 PID 是 1 , 这个 PID 的所有相关信息都写入在/proc/1/* 当中!若我们直接观察 PID 为 1 的数据好了,他有点像这样:

cmdline:这个程序被启动的指令串;

environ:这个程序的环境变量内容。

如果你查阅一下 cmdline 的话,就会发现:

就是这个指令、选项与参数启动 systemd。如果是针对整个 Linux 系统相关的参数呢?那就是在 /proc 目录下面的文件。相关的文件与对应的内容是这样的:


16.4.3. 查询已打开文件或已执行程序打开之文件

fuser:借由文件(或文件系统)找出正在使用该文件的程序

有的时候我想要知道我的程序到底在这次启动过程中打开了多少文件,可以利用 fuser 来观察。


下面有两个 PID 分别为 13888, 31743 的程序,该程序属于 root且指令为 bash 。 比较有趣的是那个 ACCESS 的项目,那个项目代表的意义为:

c :此程序在当前的目录下(非次目录);

e :可被触发为执行状态;

f :是一个被打开的文件;

r :代表顶层目录 (root directory);

F :该文件被打开了,不过在等待回应中;

m :可能为分享的动态函数库;



通过这个 fuser 我们可以找出使用该文件、目录的程序,借以观察。他的重点与 ps, pstree 不同。 fuser 可以让我们了解到某个文件 (或文件系统) 目前正在被哪些程序所利用。

lsof :列出被程序所打开的文件文件名


pidof :找出某支正在执行的程序的 PID

相关文章
|
17天前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
84 4
|
9天前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
61 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
5月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
3月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
558 13
|
4月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
158 16
|
4月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
88 4
|
5月前
|
Linux
【Linux】 Linux文件I/O常见操作技巧
以上就是Linux文件I/O操作的一些技巧,接纳它们,让它们成为你在Linux世界中的得力伙伴,工作会变得轻松许多。不过记住,技巧的运用也需要根据实际情况灵活掌握,毕竟,最适合的才是最好的。
159 28
|
5月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
729 12
|
6月前
|
Linux Shell
Linux系统下快速批量创建和删除文件的方法
总的来说,使用shell脚本来批量处理文件是一种非常强大的工具,只要你愿意花时间学习和实践,你会发现它能大大提高你的工作效率。
378 19
|
4月前
|
Linux
linux文件重命名命令
本指南介绍Linux文件重命名方法,包括单文件操作的`mv`命令和批量处理的`rename`命令。`mv`可简单更改文件名并保留扩展名,如`mv old_file.txt new_name.txt`;`rename`支持正则表达式,适用于复杂批量操作,如`rename 's/2023/2024/' *.log`。提供实用技巧如大小写转换、数字序列处理等,并提醒覆盖风险与版本差异,建议使用`-n`参数预览效果。