linux进程权限
- 一.linux进程管理
- 1.什么是进程(process)
- 2.进程与程序(process & program)
- 3.命令执行过程fork and exec
- 4.进程角度理解Linux的多用户多任务多终端环境
- 二.查看系统进程的状态信息
- 1.ps打印当前时刻进程的运行状态
- 2.top观察进程状态的动态变化
- 3.pstree以树状结构显示系统中进程的父子关系
- 三.kill或者killall给进程发送信号(signal)
- 四.进程优先级Priority和Nice值
- 1.nice :新执行的指令即给予新的 nice 值
- 2.renice :已存在进程的 nice 重新调整
- 五.进程特殊权限UUID、SUID、SGID
- 六./proc目录的意义
- 七.与进程相关的其他命令
- 1.fuser找出正在使用某个文件的进程
- 2.lsof列出进程所打开的文件名
- 3.pidof通过进程名打印进程的PID
五.进程特殊权限UUID、SUID、SGID
回到顶部
我们在第六章曾经谈到特殊权限的 SUID/SGID/SBIT ,虽然第六章已经将这三种特殊权限作了详细
的解释,不过,我们依旧要来探讨的是,那么到底这些权限对于你的『进程』是如何影响的? 此外,
进程可能会使用到系统资源,举例来说,磁盘就是其中一项资源。哪天你在 umount 磁盘时,系统老
是出现『 device is busy 』的字样~到底是怎么回事啊?我们底下就来谈一谈这些和进程有关系的细
节部分:
SUID 的权限其实与进程的相关性非常的大!为什么呢?先来看看 SUID 的程序是如何被一般用户
执行,且具有什么特色呢?
SUID 权限仅对二进制程序(binary program)有效;
执行者对于该程序需要具有 x 的可执行权限;
本权限仅在执行该程序的过程中有效 (run-time);
执行者将具有该程序拥有者 (owner) 的权限。
所以说,整个 SUID 的权限会生效是由于『具有该权限的程序被触发』,而我们知道一个程序被触
发会变成进程, 所以啰,执行者可以具有程序拥有者的权限就是在该程序变成进程的那个时候啦!
第六章我们还没谈到进程的概念, 所以你或许那时候会觉得很奇怪,为啥执行了 passwd 后你就具
有 root 的权限呢?不都是一般使用者执行的吗? 这是因为你在触发 passwd 后,会取得一个新的进
程与 PID,该 PID 产生时透过 SUID 来给予该 PID 特殊的权限设定啦! 我们使用 peter 登入系
统且执行 passwd 后,透过工作控制来理解一下!
[peter@study ~]$ passwd Changing password for user peter. Changing password for peter (current) UNIX password: #这里按下 [ctrl]-z 并且按下 [enter] [1]+ Stopped passwd [peter@study ~]$ pstree -uA systemd-+-ModemManager---2*[{ModemManager}] ....(中间省略).... |-sshd---sshd---sshd(peter)---bash-+-passwd(root) | ...(底下省略)...`-pstree从上表的结果我们可以发现,底线的部分是属于 peter 这个一般账号的权限,特殊字体的则是 root 的权限! 但你看到了, passwd 确实是由 bash 衍生出来的!不过就是权限不一样!透过这样的解 析, 你也会比较清楚为何不同程序所产生的权限不同了吧!这是由于『SUID 程序运作过程中产生 的进程』的关系啦!
那么既然 SUID/SGID 的权限是比较可怕的,您该如何查询整个系统的 SUID/SGID 的文件呢? 应 该是还不会忘记吧?使用 find 即可啊!
find / -perm /6000
initroot编辑整理,转载请注明www.initroot.com