编写应急脚本,以从不受信任的本地用户远程保护Mac Pro。


12

情况

假设我允许我的工作站上的“ Shady Sam”管理员访问权限通过为他们提供一个临时的root登录密码来为我在Mac Pro上执行一项重要的管理任务。(假设他们值得信赖的,也许是我公司的系统管理员。)

在远程位置(例如家庭),我使用MacBook Pro笔记本电脑观察Sam的活动,并学习如何通过远程桌面(VNC)自己完成任务。

在没有警告的情况下,谢迪·萨姆(Shady Sam)怯da地做着什么!也许我看到他试图从硬盘驱动器中删除数据或撬入受限制的文件夹等。无论多么卑鄙的行为,我都想立即将Shady Sam锁定,并尽可能从远程位置保护计算机。

由于我们共享鼠标和键盘,因此我无法在远程桌面内部可靠地执行操作(此外,它们可以关闭连接)。我必须编写一个脚本并远程运行它。

挑战

什么是最好的脚本(例如panicScript.shpanicScript.py),我可以远程运行以阻止Shady Sam执行其卑鄙的行为阻止他再次尝试?

我设想自己可以通过以下方式运行它:

scp panicScript.sh remoteMachine:~/panicScript.sh
ssh remoteMachine . ~/panicScript.sh

可能的功能:

明确鼓励其他想法!

  • 更改remoteMachine上任何/所有帐户的密码
  • 禁用键盘或鼠标
  • 禁用显示器
  • 重新启动机器

假设条件

Shady Sam不会以任何方式损坏Mac Pro或删除其任何组件(例如,物理上删除硬盘驱动器或有线网络连接),但他尝试重新登录并尽快执行其卑鄙行为。Sam具有(否则)对计算机的无限制物理访问权限和root登录密码。

假设Mac Pro具有显示器,键盘,鼠标,外部硬盘驱动器和用于互联网的以太网连接。假设它可以在公共区域中打印到网络打印机。为了好玩,让我们假设我在几个同事的工作站上有一个标准用户帐户,该帐户与我的相同(因此我可以通过来连接到他们的机器ssh)。

假设有十几个露天小卧室聚集在一起,以便同事可以站起来互相交谈。但是,我的同事们通常不会怀疑Shady Sam如果在我的计算机上看到他时会做出卑鄙的举动,因为他过去曾帮助过其中的几个人,并且没有对他们的计算机做过卑鄙的事情。

约束条件

最初,恐慌脚本位于我的笔记本电脑上。您可以将scp其安装到我的机器上并在那里运行,也可以直接从家里的笔记本电脑运行它。(请在您的回复中指定!)

脚本执行的所有操作都必须在远程位置无损坏和/或可逆,以便以后可以从远程位置重新获得访问权限,并且必须是Mac Pro上的标准功能/命令。

该脚本可以调用其他脚本/程序,只要它们是计算机的标准配置即可。命令行脚本工具(例如awk)可以,只要它们的命令包含在主脚本中(例如history | awk '{print $2}')就可以。当然,这限制了可以使用的脚本语言。

调用您编写的自定义脚本或程序(例如. ~/myOtherScriptOfKungFoo.sh)是不可行的,除非您从脚本内部生成它,并且生成的脚本少于32个字符:

echo -e "#"'!'"/bin/bash\necho \"Hello, World\"" >> test.sh
chmod +x test.sh
. test.sh 

我不必多次与脚本进行交互(例如,输入密码)。

标准

该脚本应简短(最多30行),但仍可读。主要标准是彻底性,创造性功能和样式,这比简单性要好。

最终,最多的选票获胜!


28
专家提示:请勿雇用任何名叫Shady Sam的人。
Geobits 2015年

Answers:


10

紧急脚本应使用scp发送到远程计算机(Mac Pro),然后运行(无需sudo或任何输入):

以下是脚本:(假设您是John Smith)

#!/bin/bash -m
f() {
 while true
 do
  pmset displaysleepnow
  sleep 0.1
 done
}
f&
while true
do
 osascript -e "set Volume 10"
 say -v Ralph "Stop Shady Sam now. He is trying to do something he is not allowed to."
 for n in {1..10};
 do
  afplay /System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/Sounds/Hit.aiff
  sleep 0.05
 done
 sleep 0.1
 say -v Ralph "This is John Smith speaking."
done

为了获得最大效率,您应该在房间中的每台机器上运行此程序,以确保每个人都能注意到问题并阻止它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.