Quels sont les avantages réels de l'attribution de privilèges sudo à un utilisateur au lieu d'utiliser root?

25

Je suis relativement nouveau dans l'administration des serveurs et j'ai vu de nombreux sites recommander d'attribuer des privilèges sudo à un utilisateur créé par l'utilisateur root et lui donner un mot de passe incroyablement long pour améliorer la sécurité.

Si l'utilisateur nouvellement créé peut cependant exécuter les mêmes fonctions qu'un utilisateur root, quel est l'avantage réel de le faire?

JM4
la source
7
Le sudoer ne peut pas faire tout ce que root peut faire, seulement ce que root autorise sudoers à sudo, et le sudoer doit toujours sudo la commande. Enfin, sudoers sudo choses comme leur propre compte utilisateur, ce qui signifie d'abord qu'ils n'ont pas à se connecter en tant que root, et deuxièmement vous permettant de voir qui a soudid quelque chose.
KeithS

Réponses:

48

Il y a plusieurs avantages à utiliser sudola remise du mot de passe root. Dans aucun ordre particulier:

  • Vous ne donnez pas votre mot de passe root
    En règle générale, si quelqu'un quitte votre entreprise et connaît le ou les mots de passe root, vous devez maintenant changer ces mots de passe partout. Avec une bonne gestion de la configuration, c'est une gêne mineure. Sans elle, c'est une énorme corvée.

  • Vous ne donnez pas les clés du royaume
    sudo vous permet de spécifier une liste restreinte de commandes que les utilisateurs peuvent exécuter, donc si vous décidez qu'Alice n'a besoin que de la capacité d'arrêter et de démarrer Apache, mais Bob a besoin de droits root complets que vous pouvez définir les en conséquence.

  • Vous pouvez gérer les autorisations de manière centralisée et prendre en sudo charge la configuration LDAP, ce qui signifie que chaque système de votre entreprise peut consulter un serveur LDAP central pour déterminer qui est autorisé à faire quoi.
    Besoin d'autoriser (ou de dé-autoriser) quelqu'un? Modifiez la configuration des sudoers dans LDAP et tous vos systèmes sont mis à jour en même temps.

  • Il y a une piste de vérification
    à l'exception des utilisateurs qui sont autorisés à le faire sudo su -, sudo shou quelque chose d' équivalent, sudoproduira une piste d'audit dont RAN utilisateur quelles commandes.
    (Cela produira également une liste des personnes qui se sont donné un shell racine non connecté, de sorte que vous pouvez pointer du doigt vers elles et siffler de désapprobation.)

  • sudoest bon pour plus que la racine des concentrés de tout le monde sudocomme un moyen de faire des choses comme su peruser, mais ce n'est pas tout ce qui est bon pour.
    Supposons qu'Alice soit responsable d'une version logicielle particulière, mais Bob devrait également pouvoir exécuter le script de génération. Vous pouvez donner à Bob une entrée dans sudoers qui lui permet d'exécuter le script de construction en tant qu'utilisateur d'Alice. (Oui, bien sûr, il existe de bien meilleures façons de traiter ce cas particulier, mais le principe de Let user A run a program as user Bpeut être utile ...).
    Vous bénéficiez également des mêmes avantages de piste d'audit que ceux mentionnés ci-dessus lorsque vous effectuez cette opération ...

voretaq7
la source
1
Réponse très utile - si je sais (et je veux dire avec une certitude à 100%) que je serai le seul à gérer un seul serveur, voyez-vous beaucoup d'avantages à attribuer des privilèges sudo à un autre utilisateur (qui serait moi-même de toute façon) en dehors de m'empêcher de foutre quelque chose?
JM4
3
@ Cohérence JM4 et bonnes pratiques pour une journée dans le futur lorsque vous travaillez dans un environnement plus large. D'un point de vue pratique, vous ne devriez jamais vous connecter directement en tant que root, sauf si vous êtes sur la console physique en train de réparer quelque chose qui est royalement arrosé, donc sudopar rapport à suune distinction académique - vous allez devoir sauter à travers un cerceau ou l'autre. L'utilisation sudovous offre la possibilité d'exercer le principe du moindre privilège (mon dernier point) là où c'est pratique, et c'est toujours quelque chose à considérer sérieusement.
voretaq7
2
Utilisez également visudo pour modifier votre fichier sudoers.
Justin Dearing
3
Notez que de nombreuses commandes interactives permettront aux utilisateurs de contourner la piste d'audit. Par exemple, tout utilisateur qui sudo vipeut :! bashune fois à l'intérieur de vi.
Dietrich Epp
4
@DietrichEpp La NOEXECbalise aide dans ce cas.
Shane Madden
17

La principale différence est que les utilisateurs s'authentifient à l' sudoaide de leur propre mot de passe, alors qu'avec suou connexion root directe le mot de passe root est utilisé.

Cela signifie que vous n'avez pas à partager le mot de passe root avec tout le monde et que si vous devez désactiver l'accès root pour un ou deux utilisateurs à l'avenir, vous pouvez simplement le désactiver pour eux, au lieu d'avoir à changer le mot de passe root.

sudoest également capable de limiter les commandes que chaque utilisateur peut exécuter en tant que root, afin que des utilisateurs spécifiques ne puissent avoir accès qu'aux tâches dont ils ont besoin pour effectuer, s'ils ne nécessitent pas un accès root complet.

Michael Hampton
la source
1
Merci de votre aide. Je vois l'avantage de votre point, mais j'ai également vraiment considéré un utilisateur de base à un utilisateur root comme un double point d'authentification étant donné que j'ai désactivé la connexion de l'utilisateur root à partir de ssh sur mon serveur.
JM4
4

En plus des réponses données, qui sont valides, n'oubliez pas qu'un utilisateur connecté en tant que root peut potentiellement casser le système à chaque commande. Si vous les forcez à taper sudo avant de faire quelque chose de potentiellement dangereux, au moins vous leur faites savoir qu'ils doivent vérifier deux fois avant d'exécuter une commande particulière.

gyin
la source
2

Oui, du point de vue du contrôle et de la journalisation, sudo est bien meilleur.

Par exemple - si vous poursuivez le seul événement capturé dans les journaux, vous poursuivez. Tout ce qui suit va comme root. Et si vous avez déjà regardé les journaux sous Unix / Linux, vous savez que root fait beaucoup de choses.

Sudo, d'autre part, enregistre à peu près tout en tant qu'utilisateur d'origine.

kd1s
la source
0

L'utilisation de sudo rend plus difficile pour un utilisateur malveillant d'accéder à un système. Lorsqu'il y a un compte root déverrouillé, un utilisateur malveillant connaît le nom d'utilisateur du compte qu'elle souhaite pirater avant de commencer. Lorsque le compte root est verrouillé, l'utilisateur doit déterminer le nom d'utilisateur et le mot de passe pour pénétrer dans un système.

Prof McAnthony
la source