Aujourd'hui, j'ai arrêté une machine de production par erreur parce que je pensais que j'étais sur ma machine locale. Je sais, novice :-(
Pour éviter que cela ne se reproduise, je pensais supprimer la permission d'exécution pour la commande d'arrêt car cette machine devrait toujours être allumée.
est-ce une bonne idée? Pouvez-vous voir un effet secondaire indésirable en faisant cela?
À la vôtre, Dan
Réponses:
Complètement une autre approche pour être averti que vous travaillez sur une machine de production est de marquer le terminal. Par exemple , le
user@machine:~#
texte pourrait être rouge sur des machines de production, vert au développement, etc. Voici beau tutoriel comment faire: Couleur Bash Promptla source
Le meilleur conseil que je puisse vous donner est de ne pas vous connecter en tant que root, sauf si vous avez besoin d'un accès root, et assurez-vous d'avoir un mot de passe root / sudo différent sur chaque machine.
Rendre l'arrêt inaccessible est une option, mais ce n'est pas une bonne. Soit alias
shutdown
versshutdown -a
ettouch /etc/shutdown.allow
ouchmod a-x /sbin/shutdown
Aussi, où cela se termine-t-il? Allez-vous également interdire l'arrêt, le redémarrage et l'initialisation?
la source
-a
. De plus, s'appuyer sur un alias comme celui-ci équivaut à s'appuyer suralias rm='rm -i'
- un jour, il ne sera pas là quand vous en aurez vraiment besoin. De plus,shutdown -a
il n'a de toute façon qu'une utilité limitée.Quelques points à considérer:
la source
Je ne pense pas que jouer avec les autorisations
shutdown
soit le moyen de gérer la situation. Fondamentalement, vous venez d'apprendre une leçon. Tête haute.J'ai fait le même genre de choses - obtenir de longues chaînes de sessions ssh, puis jouer avec les routes sur l'une des machines que j'ai traversées, en me coupant. J'ai bâclé une demande rsync, conduisant à une destruction systématique d'un système à l'autre bout du monde. J'ai couru
rm -rf / path
sur un serveur de production. (Cette fois, j'ai appris comment les restaurations ont fonctionné.)Donc, beaucoup plus vieux et, je l'espère, un peu plus sage, j'ai maintenant des règles strictes que je m'impose.
La nature de mon travail m'oblige à passer beaucoup de temps à de nombreuses invites racine variées, mais grâce à mes erreurs dans le passé, je conserve une bien meilleure conscience de la situation que lorsque j'ai commencé.
la source
Si vous utilisez Ubuntu, essayez Molly-guard. Comme discuté dans cette question similaire .
la source
Ça dépend vraiment. Vous pouvez essayer d'encapsuler la commande, mais cela signifie que si vous effectuez des mises à jour ou des mises à niveau qui affectent cet exécutable, vous pouvez l'oublier et lui faire foirer une mise à jour. Jouer avec les commandes d'arrêt du système peut être un PITA, surtout si vous avez de nouveaux employés ou un remplaçant qui finit par ne pas savoir que vous jouiez avec des binaires du système.
Personnellement, je regarderais envelopper la commande dans un script qui identifie le système par son nom et vous fait confirmer que c'est vraiment ce que vous voulez faire avant d'exécuter le binaire réel, ou que vous devez taper une certaine séquence de lettres pour confirmer l'arrêt avant d'exécuter le binaire. Cela devrait donner une pause.
la source
Vous pouvez envisager de définir l'invite de commande pour inclure le nom de l'ordinateur, au moins sur les serveurs. Cela pourrait aider à empêcher l'exécution d'autres commandes sur la mauvaise machine à l'avenir. C'est plus efficace si les noms des machines sont colorés pour les faire ressortir et vous pouvez même colorer le code pour identifier les rôles de serveur.
la source
Une façon consiste à ne pas utiliser
su
et / ou se connecter directement àroot
. Mieux vaut se connecter directement au compte ET avoir un mot de passe différent pourroot
sur la machine locale et la clé ssh.Bien sûr, cela s'ajoute à l'observation de l'invite rouge «#».
la source
Oui, la suppression du bit d'exécution de la commande d'arrêt est le moyen le plus simple et le plus sûr d'empêcher les arrêts accidentels, surtout si vous avez un environnement de bureau comme KDE sur la machine et que vous souhaitez empêcher les arrêts accidentels lors de la déconnexion.
En ce qui concerne les nouvelles personnes confuses, je pense que la première chose qu'elles feront serait
ls -l /sbin/shutdown
de découvrir pourquoi cela ne fonctionne pas (surtout si elles ont la bonne habitude de compléter les noms d'exécutables par tabulation). De toute évidence, vous devez toutefois leur faire part des modifications que vous avez apportées.Pour plus de sécurité, vous pouvez ajouter une ligne pour
/etc/rc.local
supprimer le bit d'exécution de la commande d'arrêt afin de ne pas oublier de le réinitialiser après un redémarrage.la source
vous pouvez simplement supprimer / sbin / du chemin d'accès de root. de cette façon, vous devez taper le chemin complet pour l'exécuter, et il corrige généralement les accidents.
la source