我正在考虑通过运行以下命令之一来恶作剧某人:
echo bash >> .bashrc
或者
echo source .bashrc >> .bashrc
如果有人对您这样做,您可以采取什么措施来解决它(假设您只有命令行访问权限)?除了要求其他用户使用 来编辑它之外,您还能做些什么吗sudo
?
答案1
除非权限设置不安全,否则您无法编辑其他用户的 shell 启动文件。在他们不知情或未经同意的情况下执行此操作(适用于其主目录中的任何文件)将被视为不道德,也可能被视为违反行为,具体取决于系统上有效的行为规则。
如果您拥有sudo
系统权限,并考虑玩这个“恶作剧”,那么您不应该拥有sudo
该系统的权限。
第一个命令将bash
作为命令添加到 的末尾.bashrc
。如果这是.bashrc
在用户的主目录中,并且用户是用户bash
,那么这将导致启动交互式 shell 的无限递归循环(一旦启动一个这样的 shell 会话),直到终止或遇到资源限制。
第二个命令会导致类似的循环,但代码只会在单bash
进程环境中运行。这将一直持续到终止,或者直到某个环境变量(例如PATH
,如果在每次迭代中添加到其中的脚本)变得太大,此时将达到资源限制。
在多用户系统上,这两种“恶作剧”都可能会影响其他用户,因为共享资源(主要是 CPU 和内存)被消耗。
在上述情况发生时编辑、更正然后保存文件将停止循环,但在受影响用户的进程终止.bashrc
之前不会释放资源。bash
作为一种紧急修复,人们可以使用pkill -U username bash
root 或pkill bash
受影响的用户来停止它。这将终止bash
受影响用户的所有进程。