Est-ce que «sudo su -» est considéré comme une mauvaise pratique?

13

Contexte

Je sais que la différence entre su -, sudo su -et sudo <command>:

  • su - - bascule l'utilisateur vers root, nécessite le mot de passe root
  • sudo su - - bascule l'utilisateur vers root, ne nécessite que le mot de passe de l'utilisateur actuel
  • sudo <command>- accorde un accès root uniquement pour une commande spécifique; requiert uniquement le mot de passe de l'utilisateur actuel

Ma question est de savoir si l'utilisation sudo su -est ou non une pratique sûre dans un environnement de production.

Quelques idées:

  1. Il semble que le fait d'autoriser sudo su -pose un risque pour la sécurité en rendant l'accès au compte root dépendant des mots de passe des utilisateurs individuels. Bien sûr, cela pourrait être atténué en appliquant une politique de mot de passe stricte. Je ne pense pas que ce su -soit mieux car cela nécessiterait que l'administrateur partage le mot de passe root réel.

  2. Permettre aux utilisateurs de basculer complètement vers le compte root rend plus difficile de savoir qui apporte des modifications au système. J'ai vu des cas à mon travail de jour où plusieurs utilisateurs ont sudo su -accès. La première chose que les utilisateurs font lorsqu'ils se connectent au système est exécutée sudo su -, avant de commencer à travailler. Puis, un jour, quelque chose se casse et il n'y a pas de traçabilité pour savoir qui a couru rm -rf *dans le mauvais répertoire.

Des questions

Compte tenu des préoccupations ci-dessus, est-ce jamais une bonne idée de permettre aux utilisateurs d'utiliser sudo su -ou même pas su -du tout?

Y a-t-il des raisons pour lesquelles un administrateur configurerait des comptes d'utilisateurs pour sudo su -ou su -au lieu de sudo <command>(à part la paresse)?

Remarque: j'ignore le cas où l'utilisateur exécutant sudo su -ou su -l'administrateur doit apporter des modifications au système, lorsque l'accès direct ssh a été désactivé pour l'utilisateur root.

Kingand
la source
4
sudo su -est plutôt idiot car sudo -ifait essentiellement la même chose, avec moins de frappes.
Michael Hampton
Je suis d'accord avec @MichaelHampton. Cependant, je lance généralement sudo bashsimplement pour éviter une partie de la surcharge de connexion. Cependant, après réflexion, cela n'évitera peut-être pas autant que j'imagine.
ericx
2
@ericx Considérez également sudo -s.
Michael Hampton

Réponses:

11

Regardons vos cas:

 su -

exécutera un / bin / sh en tant qu'utilisateur root en utilisant l'environnement root. Le mot de passe root est nécessaire et la journalisation PEUT être enregistrée en fonction des paramètres syslog (généralement par défaut dans /var/log/auth.log).

 sudo /bin/sh

exécutera le shell en tant qu'utilisateur root en utilisant l'ensemble actuel de variables d'environnement (à quelques exceptions près, comme cela serait défini dans le fichier sudoers). Le mot de passe est le mot de passe utilisateur source et NON PAS le mot de passe utilisateur root. sudo est généralement connecté.

 sudo su -

exécutera un shell (généralement / bin / sh) en tant qu'utilisateur root configurant l'environnement en tant qu'utilisateur root. Cela nécessitera le mot de passe de l'utilisateur source et ce sera généralement enregistré.

Parfois, il est nécessaire d'avoir l'environnement racine sur votre propre environnement, donc su - est une méthode appropriée. N'oubliez pas que sudo enregistrera toujours l'utilisation de la commande shell dans les deux cas.

mdpc
la source
J'ai complètement raté la différence d'environnements entre sudo et su. Je vous remercie!
Kingand
0

* Compte tenu des préoccupations ci-dessus, est-ce toujours une bonne idée d'autoriser les utilisateurs à utiliser sudo su *

Non, pas à mon avis. Il n'a aucun avantage pratique par rapport à leur permettre de poursuivre, sauf qu'ils n'ont pas besoin du mot de passe root pour le faire.

ou su - du tout?

Étant donné que je désactive toujours la connexion root, su est nécessaire et dans l'ensemble, rend le serveur plus sécurisé.

Ron Lawhorn
la source
2
Ne pas obliger tout le monde à partager activement le mot de passe root présente des avantages culturels de sécurité importants qui ne doivent pas être négligés.
Falcon Momot
0

L'OP semble fournir beaucoup de bonnes raisons de ne pas permettre / encourager les utilisations générales à exécuter sudo bashou sudo su -depuis les commutateurs à un mode tout-puissant qui les entrailles de ne sont généralement pas connecté. Et ils pourraient oublier qu'ils sont dans ce mode et faire quelque chose ... regrettable.

Ergo, il semble plus sûr de limiter la plupart des utilisateurs à l'exécution sudo on/a/particular/command/ou à la liste des commandes. De cette façon, chaque commande sudo est enregistrée.

Allez-vous rencontrer des exceptions dans la pratique? Sûr. Est-ce que la réaction à de telles exceptions revient à la pratique paresseuse de la non-restriction - sudo suprobablement pas.

MarkHu
la source