Est-il possible pour l'utilisateur root sous Linux d'avoir une vue en temps réel (ou presque en temps réel) des commandes shell exécutées par un autre utilisateur connecté via un terminal ou SSH? De toute évidence, ils sont stockés dans .bash_history, mais cela n'est enregistré que lorsque l'utilisateur se déconnecte et peut également être désactivé.
Edit: idéalement quelque chose qui peut facilement être activé et désactivé.
ttyrpld
ça a l'air bon. recommandé dans cette question. serverfault.com/questions/40011/…Réponses:
en tant que root, vous pouvez remplacer leur shell par un simple script wrapper qui a consigné leurs commandes avant de les passer au vrai shell. Cela ne fonctionnerait qu'avant leur connexion.
la source
Utilisez sniffy si vous souhaitez pénétrer dans la session de l'utilisateur ou
screen -x
si vous avez une coopération.Sachez cependant que l'espionnage de vos utilisateurs peut être soumis à des réglementations, voire carrément illégal, en fonction de votre législation locale.
la source
Changer le shell est très simple à contourner, patcher le shell lui-même est mieux, mais vous devez patcher tous les shells. Notre pirate préféré utilise cela, en prime, il ne se soucie pas de désactiver bash_history.
Snoopy est un wrapper autour des fonctions exec et enregistre tout binaire externe exécuté (pas les commandes internes du shell)
La suggestion de @David Schmitt sniffy utilise une meilleure méthode, elle exploite le pseudoterminal.
ttysnoop utilise la même méthode, mais elle n'est pas entretenue. (J'ai probablement eu des problèmes pour qu'il enregistre les connexions ssh, je ne peux pas m'en souvenir)
Vous pouvez essayer de patcher ssh pour enregistrer une session, mais ce patch est ancien .
pseudopod et rootsh peuvent être utilisés pour enregistrer des sudos légitimes. Et shwatcr est une autre chose pour surveiller les connexions.
la source
ssh host /bin/sh -i
?Si vous êtes coopératif, vous pouvez utiliser l' écran GNU entre deux utilisateurs - demandez à l' un d'établir la session d'écran, puis à l'autre de se joindre à l'aide
screen -x
.Si vous voulez que root «espionne» d'autres utilisateurs à leur insu, la solution la meilleure et la plus efficace pourrait être un logiciel / matériel enregistreur de frappe.
la source
Sysdig est un puissant outil d'exploration au niveau du système - c'est ce que vous voulez;)
Exemple:
sysdig -i spy_users
Catégorie: Sécurité
spy_users Afficher l'activité interactive des utilisateurs
répertorie toutes les commandes que les utilisateurs lancent de manière interactive (par exemple à partir de bash) et tous les utilisateurs de l'annuaire visitent
la source
Vous pouvez essayer le patch bash-BOFH. Recherchez le patch.
la source
J'ai écrit une méthode pour enregistrer toutes les commandes / commandes intégrées de «bash» dans un fichier texte ou un serveur «syslog» sans utiliser de correctif ni d'outil exécutable spécial.
Il est très facile à déployer, car il s'agit d'un simple shellscript qui doit être appelé une fois lors de l'initialisation du 'bash'.
Voir la méthode ici: http://blog.pointsoftware.ch/index.php/howto-bash-audit-command-logger
la source
Semble fonctionner assez bien si cela ne vous dérange pas de trier un tas de sauts de ligne.
la source
Snoopy est destiné à la journalisation légère des commandes.
Si vous voulez voir en direct les commandes exécutées sur votre système, c'est peut-être le cas. Avertissement: snoopy n'est pas une solution d'audit appropriée et peut facilement être contourné.
Cependant, si vous souhaitez voir chaque caractère tapé dans le terminal, vous devrez utiliser un autre outil.
Divulgation: Je suis le responsable snoopy actuel.
la source
essayez cette exportation HISTTIMEFORMAT = "% T" exécutez ensuite quelques commandes et "historique" ...
la source