自已建个人网站,站长网站,建设宠物网站的可行性,免费咨询服务合同模板下载16.4.1 具有 SUID/SGID 权限的指令执行状态
SUID 的权限其实与程序的相关性非常的大#xff01;为什么呢#xff1f;先来看看 SUID 的程序是如何被一般使用者执行#xff0c;且具有什么特色呢#xff1f;
SUID 权限仅对二进制程序#xff08;binary program#xff09;…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