Que fait le service sudo?


17

Autant que je sache et il semble que d' autres personnes aient la même opinion sudo est une commande qui exécute quelque chose avec des privilèges administratifs.

Cependant, lorsque je cours, rcconfje peux voir cette ligne:

[*] sudo    Provide limited super user privileges to specific users

Alors à quoi bon ce service? Ou est-ce même un service?


C'est ce que j'ai trouvé en recherchant google-> Sudo
adi

"C'est là qu'intervient sudo - il permet aux utilisateurs autorisés (normalement les utilisateurs" administratifs "; pour plus d'informations, veuillez consulter AddUsersHowto) pour exécuter certains programmes en tant que root sans avoir à connaître le mot de passe root." - C'est exactement ce que j'ai dit dans ma question.
s3v3n

3
La question concerne le service, pas la commande
s3v3n

Réponses:


22

Réponse courte

Pour révoquer les actions d'authentification «mises en cache» des utilisateurs au redémarrage. Ce n'est pas un démon, juste un script exécuté au démarrage.


Réponse complète

En inspectant le fichier init /etc/init.d/sudoqui «démarre le service», vous pouvez facilement voir ce qu'il fait:

case "$1" in
  start)
        # make sure privileges don't persist across reboots
        if [ -d /var/lib/sudo ]
        then
                find /var/lib/sudo -exec touch -t 198501010000 '{}' \;
        fi
        ;;
  stop|reload|restart|force-reload)
        ;;
  *)
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

Donc, fondamentalement, il touche simplement certains fichiers au /var/lib/sudodémarrage du système pour lui donner un horodatage de modification très ancien. Par conséquent, les actions d'authentification accordées «mises en cache» sont révoquées au démarrage du service (ce qui se produit au démarrage).

Un peu plus de détails sur l' /var/lib/sudoannuaire et ces horodatages, s'il vous plaît? Eh bien, à partir de la cartographie de sudo(8):

[...]
Once a user has been authenticated, a time stamp is updated and the
user may then use sudo without a password for a short period of time
(15 minutes unless overridden in sudoers).
[...]
Since time stamp files live in the file system, they can outlive a
user's login session.  As a result, a user may be able to login, run a
command with sudo after authenticating, logout, login again, and run
sudo without authenticating so long as the time stamp file's
modification time is within 15 minutes (or whatever the timeout is set
to in sudoers).
[...]
/var/lib/sudo           Directory containing time stamps

Réponse parfaite :)
s3v3n

12

Le sudofichier de service existe pour s'assurer que les privilèges demandés ne restent pas après un redémarrage. Fondamentalement, il garantit qu'après le redémarrage, les utilisateurs normaux qui ont demandé des autorisations root resteront des utilisateurs normaux.


Une explication détaillée sur sudo

Toutes les explications ci-dessous consistent à obtenir toutes les informations pour tous ceux qui lisent cette question, puis à expliquer ce que fait le fichier sudo dans le dossier de service.

Lorsque vous installez Ubuntu ou toute autre distribution qui utilise sudola différence entre être root et être un utilisateur qui utilise sudopour obtenir des privilèges "root like" (privilèges administratifs ou super-utilisateurs), voici ce qui suit:

En tant que root

  • On ne vous demande pas de mot de passe pour chacune ou toutes les commandes que vous exécutez sur une session
  • Toutes les commandes que vous exécutez ne seront pas enregistrées par défaut
  • Le système suppose que vous savez ce que vous faites (raison pour laquelle il ne demande pas de mot de passe à chaque fois que vous exécutez une commande)
  • Il n'y a pas d'option de seconde chance ou de dernière minute si vous faites une erreur

Comme sudo

  • Un mot de passe vous est demandé pour chacune des commandes que vous exécutez au cours d'une session. Par exemple, si vous ouvrez un terminal et exécutez une commande qui nécessite des privilèges administratifs, il vous demandera le mot de passe une fois pour cette session jusqu'à ce que vous fermiez le terminal ou que vous vous déconnectiez. Cela varie selon la commande que vous utilisez et où. Il peut demander une ou plusieurs fois.
  • Toutes les commandes que vous exécutez seront enregistrées car vous demandez réellement la permission d'utiliser une commande privilégiée de superutilisateur.
  • Le système suppose que vous demandez la permission temporairement et le droit administratif sera prêté temporairement (jusqu'à ce que vous vous déconnectiez, fermez le terminal, etc.)
  • Vous avez une option de dernière minute pour corriger toute erreur. Cela se fait au moment où on vous demande le mot de passe.

Pourquoi SUDO a-t-il été créé

La création de SUDO a été réalisée car dans le passé, l'utilisation de root a créé plus de problèmes que de solutions. Les utilisateurs ont tous les droits, ce qui signifie que s'ils ont fait un nettoyage de printemps et littéralement supprimé le /usr, /libet les /bindossiers (parce qu'ils pensaient qu'ils ne les pas nécessaires) .. deviner ce qui se passerait. De nombreux problèmes dans le passé étaient dus au fait que les utilisateurs ne connaissaient pas la puissance dont ils disposaient lors de l'utilisation de root. Fondamentalement, ils avaient root mais ne comprenaient pas Linux, la hiérarchie du système de fichiers, quels fichiers étaient importants, etc. (Quelque chose comme avoir une Ferrari et ne pas savoir conduire ... sur une autoroute!)

SUDO est également utilisé par les applications GUI (comme Update Manager) lorsqu'elles ont besoin de privilèges administratifs temporaires pour faire quelque chose. Ils n'en ont besoin que pour une quantité spécifique de commandes (généralement 1), puis reviennent au privilège de niveau utilisateur. C'est pour éviter d'avoir des privilèges root tout le temps et pour éviter de faire une erreur si l'utilisateur décide de supprimer une partie importante du système.

De plus, il offre une meilleure sécurité car l'utilisateur root est désactivé par défaut.

Enfin, si vous avez un PC de bureau ou un serveur, vous ne voulez vraiment pas que tout le monde soit root, ni qu'il ait tous les privilèges d'administrateur. Très mauvaise idée si votre petite sœur ou vos petits frères commencent à se demander ce qui se passerait si la clé se /bootrencontrait DEL. C'est là sudoqu'intervient pour diminuer les chances que quelque chose de mauvais se produise.

Que signifie accorder des privilèges de superutilisateur limités à des utilisateurs spécifiques ?

L'utilisateur ou les sudoers sudo ont en fait un fichier de configuration qui leur indique à quel point la commande sudo est limitée ou ouverte pour un utilisateur spécifique. Le fichier /etc/sudoerscontient toutes les informations pour limiter ou donner accès à un utilisateur sudo. Par défaut, il est livré avec un accès à tout, mais vous pouvez configurer ou limiter cela comme vous le souhaitez.

Pour plus d'informations sur l'utilisation du type de fichier sudoers man sudoersdans un terminal. Par exemple, le format normal est:

HÔTE UTILISATEUR = COMMANDES

Par exemple cyrex server1 = /bin/ls, donnera à l'utilisateur cyrex dans le serveur hôte1 l'accès pour exécuter la commande ls.

Par exemple cyrex server1 (root) = /bin/ls, donnera à l'utilisateur cyrex dans le serveur hôte1 l'accès pour exécuter la commande ls en tant que root.

Par exemple cyrex ALL = /bin/ls, donnera à l'utilisateur cyrex dans tous les hôtes un accès pour exécuter la commande ls.

Par exemple cyrex ALL = ALL, donnera à l'utilisateur cyrex dans tous les hôtes un accès pour exécuter toutes les commandes.

Par exemple, luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killallcela me permettra d'exécuter sudo pour les commandes killet en killalltant que root sans demander de mot de passe.

entrez la description de l'image ici


2
Il sait ce que fait la commande sudo. La question concerne un service système pour sudo.
gertvdijk

1
@gertvdijk - J'ai d'abord dû expliquer les bases, car non seulement il se penchera sur cette question. La dernière partie comprend la seule raison pour laquelle je vois le fichier sudo dans le dossier de service.
Luis Alvarado

Merci Luis Alvarado - Le Wolver pour ces informations détaillées et merci pour le drôle de xkcd modifié référençant l' !!opérateur bang bang, mais que fait le service (PAS la commande) sudo? Ce serait formidable si vous pouviez mettre à jour votre réponse pour vraiment répondre à la question.
s3v3n

1
Un peu exagéré expliquant tout cela pour juste une phrase à la fin, mais cela répond à ma question;)
s3v3n

1
@ LuisAlvarado-TheWolverine Haha, votre droite. Cela avait été bien que vous me
Lucio
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.