La situation
Supposons que j'autorise l'accès administrateur "Shady Sam" sur mon poste de travail à effectuer une tâche administrative importante sur mon Mac Pro pour moi en leur donnant un mot de passe de connexion root temporaire. (Supposons qu'ils étaient dignes de confiance, peut-être un administrateur système pour mon entreprise.)
Depuis un endroit éloigné (par exemple la maison), j'utilise mon ordinateur portable MacBook Pro pour observer les activités de Sam et apprendre à faire la tâche moi-même via Remote Desktop (VNC).
Sans avertissement, Shady Sam fait quelque chose de lâche! Peut-être que je le vois essayer de supprimer des données de mon disque dur ou de fouiller dans des dossiers restreints, etc.
Étant donné que nous partageons la souris et le clavier, je ne pouvais pas effectuer une action de manière fiable à partir du Bureau à distance (en outre, ils pouvaient fermer la connexion). Je devrais écrire un script et l'exécuter à distance.
Le défi
Quel est le meilleur script (par exemple panicScript.sh
ou panicScript.py
) que je pourrais exécuter à distance pour empêcher Shady Sam d'exécuter son acte ignoble et l' empêcher de recommencer?
Je m'imagine le faire fonctionner de la manière suivante:
scp panicScript.sh remoteMachine:~/panicScript.sh
ssh remoteMachine . ~/panicScript.sh
Caractéristiques possibles:
D'autres idées sont expressément encouragées!
- Changer les mots de passe de n'importe quel / tous les comptes sur remoteMachine
- Désactivez le clavier ou la souris
- Désactiver le moniteur
- Redémarrez la machine
Hypothèses
Shady Sam ne sera pas endommager le Mac Pro de quelque façon ou supprimer l' un de ses composants (par exemple , retirer physiquement un disque dur ou d'une connexion réseau filaire), mais il va tenter de re-login et continuer son acte ignoble le plus rapidement possible. Sam a (sinon) un accès physique illimité à l'ordinateur et un mot de passe de connexion root.
Supposons que le Mac Pro dispose d'un moniteur, d'un clavier, d'une souris, d'un disque dur externe et d'une connexion Ethernet pour Internet. Supposons qu'il puisse imprimer sur une imprimante réseau dans une zone commune. Pour le plaisir, supposons que j'ai un compte utilisateur standard sur plusieurs postes de travail de collègues, qui sont identiques au mien (afin que je puisse me connecter à leurs machines via ssh
).
Supposons qu'il y ait une douzaine de cabines en plein air regroupées afin que les collègues puissent se lever et parler entre eux. Mes collègues, cependant, ne soupçonneront généralement pas que Shady Sam fait quelque chose de douteux s'ils le voient sur mon ordinateur parce qu'il a aidé plusieurs d'entre eux dans le passé et n'a pas fait de choses ignobles à leurs ordinateurs.
Contraintes
Le script de panique est initialement sur mon ordinateur portable à la maison. Vous pouvez le scp
faire sur ma machine et l'exécuter là-bas, ou l'exécuter directement depuis mon ordinateur portable à la maison. (Précisez dans votre réponse!)
Toutes les actions prises par le script doivent être non dommageables et / ou réversibles depuis mon emplacement distant afin que je puisse y accéder ultérieurement à partir de mon emplacement distant, et doivent être des fonctionnalités / commandes standard sur un Mac Pro.
Le script peut appeler d'autres scripts / programmes tant qu'ils sont fournis en standard avec la machine. Les outils de script en ligne de commande (par exemple awk
) sont corrects tant que leurs commandes sont contenues dans le script principal (par exemple history | awk '{print $2}'
). Certes, cela limite les langages de script qui pourraient être utilisés.
Appeler un script ou un programme personnalisé que vous avez écrit (par exemple . ~/myOtherScriptOfKungFoo.sh
) n'est pas correct, sauf si vous le générez à partir de votre script et que le script généré contient moins de 32 caractères:
echo -e "#"'!'"/bin/bash\necho \"Hello, World\"" >> test.sh
chmod +x test.sh
. test.sh
Je ne devrais pas avoir à interagir avec le script plus d'une fois (par exemple pour taper un mot de passe).
Critères
Le script doit être court (30 lignes maximum), mais lisible. Les critères principaux sont la minutie, les caractéristiques créatives et le style, ce qui est mieux que la simplicité.
En fin de compte, le plus de votes gagne!
la source
Réponses:
Le script de panique doit être envoyé à la machine distante (Mac Pro) à l'aide de scp, puis exécuté (aucun sudo ou aucune entrée requis):
Voici le script: (cela suppose que vous êtes John Smith)
Pour une efficacité maximale, vous devez l'exécuter sur chaque machine dans la pièce pour vous assurer que tout le monde remarquera le problème et l'arrêtera.
la source