22Aug
Comme la plupart des choses sous Linux, la commande sudo est très configurable. Vous pouvez faire exécuter par sudo des commandes spécifiques sans demander de mot de passe, restreindre les utilisateurs spécifiques aux seules commandes approuvées, consigner les commandes exécutées avec sudo, et plus encore.
Le comportement de la commande sudo est contrôlé par le fichier sudoers /etc/ sur votre système. Cette commande doit être éditée avec la commande visudo, qui vérifie la syntaxe pour s'assurer que vous ne cassez pas accidentellement le fichier.
Spécifier des utilisateurs avec des autorisations Sudo
Le compte d'utilisateur que vous créez lors de l'installation d'Ubuntu est marqué en tant que compte administrateur, ce qui signifie qu'il peut utiliser sudo. Tous les comptes d'utilisateur supplémentaires créés après l'installation peuvent être des comptes d'utilisateur Administrateur ou Standard - Les comptes d'utilisateur standard ne disposent pas d'autorisations de type sudo.
Vous pouvez contrôler les types de compte utilisateur graphiquement à partir de l'outil Comptes utilisateur d'Ubuntu. Pour l'ouvrir, cliquez sur votre nom d'utilisateur sur le panneau et sélectionnez Comptes d'utilisateurs ou recherchez Comptes d'utilisateurs dans le tiret.
Faire Sudo Oublier Votre Mot de Passe
Par défaut, sudo se souvient de votre mot de passe pendant 15 minutes après l'avoir tapé.C'est pourquoi vous n'avez qu'à taper votre mot de passe une seule fois lors de l'exécution de plusieurs commandes avec sudo en succession rapide. Si vous êtes sur le point de laisser quelqu'un d'autre utiliser votre ordinateur et que vous voulez que sudo vous demande le mot de passe, exécutez la commande suivante et sudo oubliera votre mot de passe:
sudo -k
Toujours demander un mot de passe
Si vous utilisez sudo, par exemple, si d'autres personnes ont régulièrement accès à votre ordinateur, vous pouvez désactiver le comportement de rappel du mot de passe.
Ce paramètre, comme les autres paramètres sudo, est contenu dans le fichier sudoers /etc/.Exécutez la commande visudo dans un terminal pour ouvrir le fichier à éditer:
sudo visudo
Malgré son nom, cette commande utilise par défaut le nouvel éditeur nano convivial au lieu de l'éditeur vi traditionnel sur Ubuntu.
Ajoutez la ligne suivante sous les autres lignes par défaut dans le fichier:
Defaults timestamp_timeout = 0
Appuyez sur Ctrl + O pour enregistrer le fichier, puis appuyez sur Ctrl + X pour fermer Nano. Sudo vous demandera toujours un mot de passe.
Modification du délai d'expiration du mot de passe
Pour définir un délai d'expiration de mot de passe différent - soit un délai plus long de 30 minutes ou un délai plus court de 5 minutes - suivez les étapes ci-dessus mais utilisez une valeur différente pour timestamp_timeout. Le nombre correspond au nombre de minutes pour lesquelles sudo se souviendra de votre mot de passe. Pour que sudo mémorise votre mot de passe pendant 5 minutes, ajoutez la ligne suivante:
Default timestamp_timeout = 5
Ne demandez jamais de mot de passe
Vous pouvez également demander à sudo de ne jamais demander de mot de passe - tant que vous êtes connecté,Le préfixe avec sudo s'exécutera avec les permissions root. Pour ce faire, ajoutez la ligne suivante à votre fichier sudoers, où nom d'utilisateur est votre nom d'utilisateur: nom d'utilisateur
ALL =( ALL) NOPASSWD: ALL
Vous pouvez également modifier la ligne% sudo, c'est-à-dire la ligne permettant à tous les utilisateursgroupe sudo( également appelé utilisateurs Administrateur) pour utiliser sudo - pour que tous les utilisateurs Administrateur ne requièrent pas de mots de passe:
% sudo ALL =( ALL: ALL) NOPASSWD: ALL
Exécuter des commandes spécifiques sans mot de passe
Vous pouvez également spécifier des commandes spécifiquesne nécessitera jamais de mot de passe lorsqu'il est exécuté avec sudo. Au lieu d'utiliser "ALL" après NOPASSWD ci-dessus, spécifiez l'emplacement des commandes. Par exemple, la ligne suivante permettra à votre compte utilisateur d'exécuter les commandes apt-get et shutdown sans mot de passe. Nom d'utilisateur
ALL =( ALL) NOPASSWD: /usr/bin/ apt-get, /sbin/ arrêt
Cela peut être particulièrement utile lors de l'exécution de commandes spécifiques avec sudo dans un script.
Autoriser un utilisateur à exécuter uniquement des commandes spécifiques
Bien que vous puissiez blacklister des commandes spécifiques et empêcher les utilisateurs de les exécuter avec sudo, cela n'est pas très efficace. Par exemple, vous pouvez spécifier qu'un compte d'utilisateur ne peut pas exécuter la commande shutdown avec sudo. Mais ce compte utilisateur peut exécuter la commande cp avec sudo, créer une copie de la commande shutdown et arrêter le système en utilisant la copie.
Un moyen plus efficace consiste à ajouter à la liste blanche des commandes spécifiques. Par exemple, vous pouvez autoriser un compte utilisateur Standard à utiliser les commandes apt-get et shutdown, mais pas plus. Pour ce faire, ajoutez la ligne suivante, où standarduser est le nom d'utilisateur de l'utilisateur:
standarduser ALL = /usr/bin/ apt-get, /sbin/ shutdown
La commande suivante nous dira quelles commandes l'utilisateur peut exécuter avec sudo:
sudo -U standarduser -l
Journalisation Sudo Accès
Vous pouvez enregistrer tout l'accès sudo en ajoutant la ligne suivante. /var/log/ sudo est juste un exemple;vous pouvez utiliser n'importe quel emplacement de fichier journal que vous aimez.
Par défaut logfile = /var/log/ sudo
Afficher le contenu du fichier journal avec une commande comme celle-ci:
sudo cat /var/log/ sudo
Gardez à l'esprit que, si un utilisateur a un accès sudo illimité, cet utilisateur a la possibilité de supprimer ou de modifiercontenu de ce fichier. Un utilisateur peut également accéder à une invite root avec sudo et exécuter des commandes qui ne seraient pas consignées. La fonctionnalité de journalisation est très utile lorsqu'elle est associée à des comptes d'utilisateur qui ont un accès restreint à un sous-ensemble de commandes système.