Linux基础知识 ·

Linux特殊程序与文件

[隐藏]

具有 SUID/SGID 权限的程序

SUID 的权限其实与程序的相关性非常的大!

  • SUID 权限仅对二进位程序(binary program)有效;
  • 运行者对于该程序需要具有 x 的可运行权限;
  • 本权限仅在运行该程序的过程中有效 (run-time);
  • 运行者将具有该程序拥有者 (owner) 的权限。

所以说,整个 SUID 的权限会生效是由于『具有该权限的程序被触发』,而我们知道一个程序被触发会变成程序。

所以,运行者可以具有程序拥有者的权限就是在该程序变成程序的那个时候啦!为啥运行了 passwd 后你就具有 root 的权限呢?不都是一般使用者运行的吗? 这是因为你在触发 passwd 后,会取得一个新的程序与 PID,该 PID 产生时通过 SUID 来给予该 PID 特殊的权限配置啦!

从上表的结果我们可以发现,底线的部分是属于 zhang 这个一般帐号的权限,特殊字体的则是 root 的权限! 但你看到了, passwd 确实是由 bash 衍生出来的!不过就是权限不一样!通过这样的解析, 你也会比较清楚为何不同程序所产生的权限不同了吧!这是由于『SUID 程序运行过程中产生的程序』的关系了!

那么既然 SUID/SGID 的权限是比较可怕的,您该如何查询整个系统的 SUID/SGID 的文件呢? 应该是还不会忘记吧?使用find 即可!

find / -perm +6000

/proc/* 代表的意义

proc 目录内是内存中数据的映射,而通过其中的一些文件则可以查看系统的一些信息呢!

文件名文件内容
/proc/cmdline加载 kernel 时所下达的相关参数!查阅此文件,可了解系统是如何启动的!
/proc/cpuinfo本机的 CPU 的相关信息,包含时脉、类型与运算功能等
/proc/devices这个文件记录了系统各个主要装置的主要装置代号,与 mknod 有关呢!
/proc/filesystems目前系统已经加载的文件系统罗!
/proc/interrupts目前系统上面的 IRQ 分配状态。
/proc/ioports目前系统上面各个装置所配置的 I/O 位址。
/proc/kcore这个就是内存的大小啦!好大对吧!但是不要读他啦!
/proc/loadavg还记得 top 以及 uptime 吧?没错!上头的三个平均数值就是记录在此!
/proc/meminfo使用 free 列出的内存信息,嘿嘿!在这里也能够查阅到!
/proc/modules目前我们的 Linux 已经加载的模块列表,也可以想成是驱动程序啦!
/proc/mounts系统已经挂载的数据,就是用 mount 这个命令呼叫出来的数据啦!
/proc/swaps到底系统挂加载的内存在哪里?使用掉的 partition 就记录在此啦!
/proc/partitions使用 fdisk -l 会出现目前所有的 partition 吧?在这个文件当中也有纪录!
/proc/pci在 PCI 汇流排上面,每个装置的详细情况!可用 lspci 来查阅!
/proc/uptime就是用 uptime 的时候,会出现的信息啦!
/proc/version核心的版本,就是用 uname -a 显示的内容啦!
/proc/bus/*一些汇流排的装置,还有 U盘 的装置也记录在此!

其实,上面这些文件在此建议您可以使用 cat 去查阅看看,不必深入了解, 不过,观看过文件内容后,毕竟会比较有感觉啦!如果未来您想要自行撰写某些工具软件, 那么这个目录底下的相关文件可能会对您有点帮助的!

参与评论