web-dev-qa-db-fra.com

Quels sont les avantages de Sudo sur le su?

Quel est l’avantage réel d’Ubuntu (ou de ses dérivés) en désactivant l’utilisateur root?

Partout où je lis, il est dit de prévenir les dommages non intentionnels pour les utilisateurs inexpérimentés. Je veux savoir quoi au juste, puisque Sudo peut exécuter toutes les commandes (que je connais/utilise).

Alors, dans quel cas root peut causer des dommages alors que Sudo ne le peut pas?

PS: Je sais comment fonctionne Sudo.

18
Web-E

Alors, dans quel cas root peut causer des dommages alors que Sudo ne le peut pas?

Puisque vous devez généralement invoquer Sudo chaque fois que vous souhaitez effectuer une tâche nécessitant des privilèges, vous devez "réfléchir avant de sauter", c’est-à-dire ne pas coller Sudo devant quelque chose sans penser au moindre instant à la commande que vous êtes. courir va faire.

Avec su en revanche, une fois que vous y êtes, vous y êtes. Vous avez carte blanche pour faire tout et n'importe quoi, et le raisonnement est que vous pourriez oublier un instant que vous avez ces privilèges et si vous êtes malchanceux, exécutez quelque chose qui va sérieusement endommager/endommager votre système - si vous n'aviez pas les privilèges su, la commande n'aurait rien fait de grave.

30
ish

Les principaux avantages de Sudo par rapport à l’OMI sont que Sudo possède une journalisation supérieure des commandes exécutées et que Sudo donne un contrôle plus fin sur ce que les utilisateurs peuvent faire.

su est tout ou rien, mais Sudo peut être configuré pour autoriser l'accès à certaines, mais pas à toutes les commandes.

Voir https://help.ubuntu.com/community/RootSudo pour une discussion plus complète, incluant les avantages et les inconvénients.

16
Panther

su -

Lorsque vous êtes connecté en tant que root, toute tâche que vous démarrez, action que vous déclenchez ou un événement aléatoire provoqué par la visite d'un site Web donné, etc., est exécuté en tant que super-utilisateur.

Sudo

Lorsque vous appelez Sudo, lorsque vous exécutez une commande, niquement cette commande s'exécutera sous le nom super-utilisateur.

On vous demandera votre mot de passe avant que la commande ne soit exécutée. Ainsi, l’interaction de l’utilisateur par vous est aussi obligatoire.

Les tentatives d’invocation de Sudo peuvent également être enregistrées.

10
david6

Il s’agit de la gestion des utilisateurs/mots de passe pour les administrateurs système.

Si vous avez plusieurs utilisateurs, ils doivent tous avoir des comptes distincts et doivent pouvoir être suivis à l'aide de ces comptes. Cela signifie que les gens ne peuvent pas cacher leur identité. De plus, si vous devez révoquer les autorisations d'un utilisateur spécifique, vous ne devez pas également réinitialiser le mot de passe root. Donner à chaque personne dans un environnement avec plus de 2 administrateurs le mot de passe root est un cauchemar lorsqu'une personne quitte le poste. Vous devez non seulement le changer, mais aussi le communiquer, etc. Tout cela doit également se produire lorsqu'un de ces ordinateurs se fait voler un ordinateur portable ou quelque chose du genre. Un compte avec un mot de passe par personne simplifie l'administration. Cela ressemble à la philosophie qui sous-tend pourquoi chaque service devrait avoir son propre compte. Si un compte est compromis, vous n'avez pas besoin de reconfigurer une douzaine de services (tels que des tâches de sauvegarde) pour utiliser un compte différent.

Personnellement, je trouve également pratique de ne pas avoir encore un autre mot de passe, de perdre et de compromettre. Sur RHEL, je désactive spécifiquement le compte root après la configuration de Sudo afin de ne pas avoir à le suivre. De temps en temps, un utilisateur crée le fichier Sudo, mais ce problème peut être résolu en mode mono-utilisateur. (Naturellement, il s’agit généralement d’une machine de production.)

NOTE: 'Sudo bash' vous permettra de ne pas taper Sudo pour chaque commande ...

3
flickerfly

De plus, vous devez prendre en compte la journalisation entre Sudo et su. Être su fait tout simplement en tant que root sans autre entrée qu'une ligne dans le journal d'authentification indiquant que vous êtes devenu root.

Sudo, d’autre part - est toujours enregistré en tant que votre identifiant utilisateur avec une hiérarchie de privilèges.

2
kd1s

Je pense d’abord, nous devons examiner ce que su et Sudo sont

s - signifie utilisateur suppléant. Vous l'utilisez pour basculer vers un shell en tant qu'utilisateur utilisant le mot de passe de cet utilisateur. Couramment utilisé avec root. Ne nécessite pas de mot de passe lorsqu'il est exécuté en tant que root.

Sudo - permet à un utilisateur autorisé d'exécuter une commande spécifiée en tant qu'autre utilisateur. Aussi couramment utilisé avec la racine. Cependant, cela vous permet de gérer spécifiquement quelles commandes peuvent être exécutées pour un autre usage. (Par exemple, vous pouvez donner à un utilisateur la possibilité d'exécuter un script init.d mais rien d'autre.)

Notez que vous pouvez toujours exécuter Sudo su ou Sudo -i et cela vous donnera un shell racine. Cependant, pas de mot de passe root signifie pas de connexion directe en tant que root ... ce qui signifie que personne ne peut pénétrer dans cet utilisateur.

EDIT: alors peut-être que votre réponse est la suivante: ne pas avoir de mot de passe root vous oblige à utiliser Sudo, qui à son tour vous aligne naturellement sur la philosophie Sudo qui vous suggère de mieux contrôler les actions exécutées en tant que root.

2
user606723

La connexion en tant que su est généralement facilitée lors de tâches administratives. Cependant, il existe au moins une exception: lorsque la propriété du fichier est importante. Si vous avez besoin qu'un utilisateur soit le propriétaire d'un fichier, connectez-vous en tant que cet utilisateur et utilisez Sudo pour télécharger ou copier des fichiers. Des exemples simples sont les fichiers de signets et de papier peint. Si un utilisateur ne possède pas le fichier, Firefox "Restaurer" les signets "À partir du fichier" échouera. Lorsque vous définissez un fond d'écran, celui-ci risque de ne pas fonctionner à moins que vous ne possédiez le fichier. Parfois, il vous suffit de définir des privilèges ou d'activer un fichier exécutable, mais certains paramètres ou programmes échouent si vous n'êtes pas le propriétaire d'un fichier.

0
DotheMath45