顶部隐藏其他用户的进程

我正在运行Debian服务器,并为less数朋友提供shell访问。 我想隐藏正常用户的正在运行的进程,例如top只显示他们自己的进程,而不是其他任何人启动的进程。 显然,root应该看到所有的进程。

我将如何做到这一点? 我已经看到它在许多提供shell帐户的共享托pipe服务上的行动,但没有遇到自己的方式来做到这一点。

只有Linux是不可能的。 使用SeLinux或GrSecurity,用户之间可以“隐藏”(实际上,不授予访问权限)进程。 这有点复杂,但不是不可能的。

一个快速而简单的方法是让它们在〜/ .bashrc(或者特定于shell的合适的启动/别名文件)中给出一个别名,这个别名只是用来查看他们自己的用户名:

 alias top="top -u $USER" 

这对于ps或者课程来说没有任何意义,但是除了把用户放在chroot或者jail环境中,或者像Sacx所说的selinux之外,你可以做些什么来隐藏系统。

有命令行选项-U

按用户进行监视:-U somebody只监视具有与给定UID或用户名匹配的进程。 这匹配真实,有效,保存和文件系统的UID。

或-u

按用户监视:-u somebody仅监视与给定的UID或用户名相匹配的进程。

如何有效地对那些有命令行访问权限的用户执行这个操作,我真的不知道。 鉴于用户有权访问命令行,他们可以使用其他各种工具来查看其他人的进程。

如果你对SELinux不感兴趣的话,可以通过对/ proc /中的PID子目录的权限进行创新来解决这个问题,但是一些大规模的testing是必须的。