8 façons de peaufiner et de configurer Sudo sur Ubuntu
Comme la plupart des choses sur Linux, la commande sudo est très configurable. Vous pouvez faire en sorte que sudo exécute des commandes spécifiques sans demander de mot de passe, n'autorise pas certains utilisateurs à n'approuver que les commandes approuvées, enregistre les commandes exécutées avec sudo, etc..
Le comportement de la commande sudo est contrôlé par le fichier / etc / sudoers de votre système. Cette commande doit être modifiée avec la commande visudo, qui effectue une vérification de la syntaxe pour vous assurer de ne pas endommager le fichier par inadvertance..
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. Les comptes utilisateur supplémentaires que vous créez après l'installation peuvent être des comptes utilisateur administrateur ou standard. Les comptes utilisateur standard ne disposent pas d'autorisations sudo..
Vous pouvez contrôler graphiquement les types de compte d'utilisateur à partir de l'outil Comptes d'utilisateurs d'Ubuntu. Pour l'ouvrir, cliquez sur votre nom d'utilisateur dans le panneau et sélectionnez Comptes d'utilisateurs ou recherchez des comptes d'utilisateurs dans le tiret..
Faites que Sudo oublie votre mot de passe
Par défaut, sudo conserve votre mot de passe 15 minutes après sa saisie. C'est pourquoi il vous suffit de saisir votre mot de passe une seule fois lorsque vous exécutez 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 demande le mot de passe lors de la prochaine exécution, exécutez la commande suivante et sudo oubliera votre mot de passe:
sudo -k
Toujours demander un mot de passe
Si vous préférez être invité à chaque utilisation de sudo (par exemple, si d'autres personnes ont régulièrement accès à votre ordinateur), vous pouvez désactiver complètement le comportement de mémorisation du mot de passe..
Ce paramètre, comme d’autres paramètres sudo, est contenu dans le fichier / etc / sudoers. Exécutez la commande visudo dans un terminal pour ouvrir le fichier en modification:
sudo visudo
Malgré son nom, cette commande utilise par défaut le nouvel éditeur nano convivial, au lieu de l’éditeur vi traditionnel sous Ubuntu..
Ajoutez la ligne suivante en dessous des autres lignes de valeurs par défaut du fichier:
Valeurs par défaut 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.
Changer le délai de mot de passe
Pour définir un délai de mot de passe différent (délai plus long, 30 minutes ou plus court, 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 retienne votre mot de passe pendant 5 minutes, ajoutez la ligne suivante:
Valeurs par défaut timestamp_timeout = 5
Ne jamais demander un mot de passe
Vous pouvez également demander à sudo de ne jamais demander de mot de passe. Tant que vous êtes connecté, chaque commande précédée du préfixe sudo s'exécutera avec les droits root. Pour ce faire, ajoutez la ligne suivante à votre fichier sudoers, où nomutilisateur correspond à votre nom d'utilisateur:
nom d'utilisateur ALL = (ALL) NOPASSWD: ALL
Vous pouvez également modifier la ligne% sudo - c'est-à-dire la ligne qui permet à tous les utilisateurs du groupe sudo (également appelés utilisateurs administrateurs) d'utiliser sudo - pour que tous les utilisateurs administrateurs 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écifiques qui ne nécessiteront jamais de mot de passe lors de l'exécution 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 d'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 / shutdown
Cela peut être particulièrement utile lorsque vous exécutez des commandes spécifiques avec sudo dans un script.
Autoriser un utilisateur à exécuter uniquement des commandes spécifiques
Bien que vous puissiez ajouter des commandes spécifiques à une liste noire 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 puisse 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 à l'aide de 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ù utilisateur standard est le nom d'utilisateur de l'utilisateur:
utilisateur standard ALL = / usr / bin / apt-get, / sbin / shutdown
La commande suivante nous dira quelles commandes l'utilisateur peut exécuter avec sudo:
sudo -U utilisateur standard -l
Enregistrement de l'accès Sudo
Vous pouvez vous connecter à tous les accès sudo en ajoutant la ligne suivante. / var / log / sudo n'est qu'un exemple; vous pouvez utiliser n'importe quel emplacement de fichier journal que vous aimez.
Fichier de consignation par défaut = / var / log / sudo
Affichez le contenu du fichier journal avec une commande comme celle-ci:
chat sudo / var / log / sudo
N'oubliez pas que si un utilisateur dispose d'un accès sudo illimité, il peut supprimer ou modifier le contenu de ce fichier. Un utilisateur peut également accéder à une invite racine avec sudo et exécuter des commandes qui ne seraient pas consignées. La fonctionnalité de journalisation est particulièrement utile lorsqu'elle est associée à des comptes d'utilisateurs disposant d'un accès restreint à un sous-ensemble de commandes système..