Linux——特殊文件与进程

本文深入探讨了Linux系统中SUID/SGID权限的特点与查询方法,以及/proc目录下各文件的意义,包括进程信息、CPU详情、文件系统状态等,为系统管理员提供了实用的维护指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

SUID的特点:

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

整个SUID的权限生效是由于具有该权限的程序会被触发。查询整个系统的SUID/SGID的文件可以使用指令:find  /  -perm  /6000

2、/proc/*代表的意义

进程都是在内存当中,而内存中的数据又都是写入到/proc/*目录下的,基本上目前主机上的各个进程PID都是以目录的形态存在于/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/uptime就是用 uptime 的时候,会出现的信息啦!
/proc/version核心的版本,就是用 uname -a 显示的内容啦!
/proc/bus/*一些总线的装置,还有 USB 的装置也记录在此喔!

3、查询已开启文件或已执行进程开启之文件

<1>藉由文件或文件系统找出正在使用该文件的进程

当我们想知道我的进程当中启动某过程开启了多少文件,就可以是使用fuser来进行观察。

[root@study ~]# fuser [-umv] [-k [i] [-signal]] file/dir
选项与参数:
-u :除了进程的 PID 之外,同时列出该进程的拥有者;
-m :后面接的那个档名会主动的上提到该文件系统的最顶层,对 umount 不成功很有效!
-v :可以列出每个文件与进程还有指令的完整相关性!
-k :找出使用该文件/目录的 PID ,并试图以 SIGKILL 这个讯号给予该 PID;
-i :必须与 -k 配合,在删除 PID 之前会先询问使用者意愿!
-signal:例如 -1 -15 等等,若不加的话,预设是 SIGKILL (-9) 啰!


以上指令是找出目前所在目录的使用PID/所属权限/权限为何

关于ACCESS的项目其意义为

· c :此进程在当前的目录下(非次目录);
· e :可被触发为执行状态;
· f :是一个被开启的文件;
· r :代表顶层目录 (root directory);
· F :该文件被开启了,不过在等待回应中;
· m :可能为分享的动态函式库;

<2>lsof:列出被进程所开启的文件档名

[root@study ~]# lsof [-aUu] [+d]

选项与参数:
-a :多项数据需要『同时成立』才显示出结果时!
-U :仅列出 Unix like 系统的 socket 文件类型;
-u :后面接 username,列出该使用者相关进程所开启的文件;
+d :后面接目录,亦即找出某个目录底下已经被开启的文件!

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

[root@study ~]# pidof [-sx] program_name

选项与参数:
-s :仅列出一个 PID 而不列出所有的 PID
-x :同时列出该 program name 可能的 PPID 那个进程的 PID
范例一:列出目前系统上面 systemd 以及 rsyslogd 这两个程序的 PID
[root@study ~]# pidof systemd rsyslogd
                                         1          742
# 理论上,应该会有两个 PID 才对。上面的显示也是出现了两个 PID 喔。
# 分别是 systemd 及 rsyslogd 这两支程序的 PID 啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值