Nous voulons que certains utilisateurs puissent faire par exemple sudo
et devenir root,
Eh bien, c’est le problème que sudo est conçu pour résoudre, de sorte que cette partie est assez simple.
mais avec la restriction que l'utilisateur ne peut pas changer le mot de passe root.
Comme SHW l'a souligné dans un commentaire, vous pouvez configurer sudo pour autoriser uniquement certaines actions à être effectuées en tant que root par certains utilisateurs. Autrement dit, vous pouvez autoriser l'utilisateur1 à faire sudo services apache2 restart
, autoriser l'utilisateur2 à faire, sudo reboot
mais rien d'autre, tout en autorisant l'administrateur recruté en tant qu'administrateur système user3
à le faire sudo -i
. Il y a des howtos disponibles sur la façon de configurer sudo comme ça, ou vous pouvez chercher (ou demander) ici. C'est un problème qui peut être résolu.
Cependant, un utilisateur qui a été accordé la possibilité de sudo -i
ou sudo
dans une coquille ( sudo bash
par exemple) peut faire quoi que ce soit. En effet, à l'heure où sudo lance le shell, sudo n'est plus sur la photo. Il fournit le contexte de sécurité d'un utilisateur différent (le plus souvent root), mais n'a aucun mot à dire sur ce que fait l'application exécutée. Si cette application passwd root
est lancée à son tour , rien ne peut être fait par sudo. Notez que cela peut aussi être fait par d’autres applications; Par exemple, de nombreux éditeurs plus avancés fournissent des fonctionnalités permettant d'exécuter une commande via le shell, un shell qui sera exécuté avec l'identifiant effectif de ce processus d'édition (c'est-à-dire, root).
C’est-à-dire que nous pouvons toujours nous connecter à ce serveur et devenir root, quoi que fassent les autres utilisateurs.
Pardon; si vous voulez vraiment dire "assurez-vous que nous pourrons nous connecter et utiliser le système peu importe ce que quelqu'un avec un accès root y fait", cela (à toutes fins pratiques) ne peut être fait. Un rapide "sudo rm / etc / passwd" ou "sudo chmod -x / bin / bash" (ou tout ce que la racine du shell utilise) et vous êtes quand même assez arrosé. "Assez arraché", ce qui signifie "vous aurez besoin de restaurer à partir d'une sauvegarde en espérant qu'ils n'ont rien fait de pire qu'un glissement de doigts". Vous pouvez prendre certaines mesures pour réduire le risque d' accident accidentel conduisant à un système inutilisable, mais vous ne pouvez pas empêcher la malveillance de causer de très graves problèmes pouvant aller jusqu'au besoin de reconstruire le système à partir de zéro ou à tout le moins de problèmes connus. bonnes sauvegardes.
En accordant à un utilisateur un accès root sans entrave sur un système, vous faites en sorte que cet utilisateur (y compris tout logiciel qu’il pourrait choisir d’exécuter, même quelque chose d'aussi banal que ls) ne soit pas victime d'intention malveillante et ne se trompe pas accidentellement. C'est la nature de l'accès root.
Un accès root limité, par exemple sudo, est un peu mieux, mais vous devez toujours faire attention à ne pas ouvrir de vecteurs d'attaque. Et avec l'accès root, il existe de nombreux vecteurs d'attaque possibles pour les attaques avec élévation de privilèges.
Si vous ne pouvez pas leur faire confiance avec le niveau d'accès qu'implique la racine, vous aurez besoin d'une configuration sudo très stricte ou simplement de ne pas accorder à l'utilisateur en question un accès root par quelque moyen que ce soit, que ce soit par sudo ou autrement.
sudo
pour accorder une autorisation uniquement pour une application spécifique à privilèges root. De cette façon, l'utilisateur ne sera pas autorisé à changer le mot de passe root