Inspiré par ceci question ....
Je suis la seule personne à utiliser mon système avec 12.04.
Chaque fois que j'émets une commande Sudo
; le système demande le mot de passe de l'utilisateur (qui est correct à sa manière).
Cependant je pensais; sans activer le compte root ; comment puis-je exécuter les commandes Sudo qui ne demanderont pas le mot de passe de l'utilisateur pour s'authentifier.
REMARQUE: Je souhaite exécuter la commande Sudo sans authentification via un mot de passe. seulement quand ils sont exécutés via un terminal.
Je ne souhaite pas supprimer cette couche de sécurité supplémentaire d'autres fonctions, telles que l'utilisation du 'centre logiciel Ubuntu' ou l'exécution d'un script bash en faisant glisser un fichier quelque chose.sh sur le terminal.
Sudo -i
est la voie à suivre si vous ne souhaitez pas saisir un mot de passe toutes les 10 minutes lorsque vous apportez des modifications à votre système (ou à un autre système) et si vous ne souhaitez modifier aucun fichier système.
Il vous fera basculer vers la racine en utilisant votre mot de passe utilisateur Sudo
, lorsque vous fermez la console ou tapez exit
vous revenez à votre utilisateur normal.
Pour résoudre votre problème, l’approche consiste à placer votre utilisateur dans le fichier sudoers, comme vous pouvez le voir.
Ouvrez la fenêtre du terminal et tapez:
Sudo visudo
Au bas du fichier, tapez ce qui suit:
$USER ALL=(ALL) NOPASSWD: ALL
Où $USER
est votre nom d'utilisateur dans votre système. Enregistrez et fermez le fichier sudoers (si vous n'avez pas modifié votre éditeur de terminal par défaut (vous le saurez), appuyez sur ctl + x pour quitter nano
(mais notez que la capture d'écran ci-dessous montre vim
name__), et vous verrez le message sauver).
]
Ensuite, vous pouvez, dans la fenêtre du terminal, taper Sudo <Whatever you want>
sans être invité à entrer le mot de passe.
Ceci s’applique uniquement à la commande Sudo
dans la fenêtre du terminal. Par exemple, lorsque vous essayez d'installer un package dans le centre logiciel, il vous sera demandé d'insérer votre mot de passe, comme vous pouvez le voir dans la capture d'écran suivante.
Je pense que c'est ce que tu veux.
Les délais d’exécution Root Sudo sont le moyen le plus simple et le plus sûr de le faire. Je vais exposer tous les exemples, mais sachez que cette façon de procéder est très risquée, bien que cette façon soit beaucoup plus sûre:
Sudo visudo
Cela ouvre un éditeur et le pointe vers le fichier sudoers - Ubuntu utilise par défaut nano, d’autres systèmes utilisent Vi. Vous êtes maintenant un super utilisateur qui édite l'un des fichiers les plus importants de votre système. Pas de stress!
(Instructions spécifiques de Vi notées avec (vi!). Ignorez-les si vous utilisez nano.)
Utilisez les touches fléchées pour vous déplacer à la fin de la ligne Defaults
name__.
(vi!) Appuyez sur la touche A (majuscule "a") pour vous déplacer à la fin de la ligne en cours et passer en mode d'édition (ajouter après le dernier caractère de la ligne).
Maintenant tapez:
,timestamp_timeout=X
où X est l'expiration du délai d'attente en minutes. Si vous spécifiez 0, le mot de passe vous sera toujours demandé. Si vous spécifiez une valeur négative, le délai d'attente n'expirera jamais. E.g. Defaults env_reset,timestamp_timeout=5
.
(vi!) appuyez sur Echap pour revenir au mode commande. Maintenant, si vous êtes satisfait de votre modification, saisissez :w
Enter écrire le fichier et :q
Enter pour sortir vi. Si vous faites une erreur, le moyen le plus simple est peut-être de recommencer depuis le début, de quitter sans enregistrer (touche Escape pour entrer en mode commande) puis tapez: q! Enter.
Frappé Ctrl+X, puis Y, puis Enter pour enregistrer votre fichier et quitter nano.
Vous voudrez peut-être lire les pages de manuel de sudoers et vi pour des informations supplémentaires.
man sudoers
man vi
Réinitialiser la valeur de délai en utilisant:
Sudo -k
Ces instructions permettent de supprimer l'invite de mot de passe lors de l'utilisation de la commande Sudo. La commande Sudo devra néanmoins toujours être utilisée pour l'accès root.
Ouvrez une fenêtre de terminal. Tapez Sudo visudo
. Ajoutez la ligne suivante à la fin du fichier (sinon, elle peut être annulée par des entrées ultérieures):
<username> ALL=NOPASSWD: ALL
Remplacez <username>
par votre nom d'utilisateur (sans le <>
). Cela suppose qu'Ubuntu a créé un groupe portant le même nom que votre nom d'utilisateur, ce qui est typique. Vous pouvez également utiliser les utilisateurs du groupe ou tout autre groupe de ce type. Assurez-vous simplement que vous faites partie de ce groupe. Cela peut être vérifié en allant dans Système -> Administration -> Utilisateurs et groupes.
Exemple:
michael ALL=NOPASSWD: ALL
Tapez ^ X (Ctrl+X) pour quitter. Cela devrait demander une option pour enregistrer le fichier, tapez Y pour enregistrer.
Déconnectez-vous, puis reconnectez-vous. Cela devrait maintenant vous permettre d'exécuter la commande Sudo sans être invité à entrer un mot de passe.
Activer le compte root
L'activation du compte root est rarement nécessaire. Presque tout ce que vous devez faire en tant qu'administrateur d'un système Ubuntu peut être fait via Sudo ou gksudo. Si vous avez réellement besoin d'un identifiant root persistant, la meilleure solution consiste à simuler un shell de login root à l'aide de la commande suivante:
Sudo -i
Cependant, si vous devez activer les connexions à la racine, vous pouvez le faire comme suit:
Sudo passwd root
Réactiver votre compte root
Si, pour une raison quelconque, vous avez activé votre compte root et souhaitez le désactiver à nouveau, utilisez la commande suivante dans le terminal:
Sudo passwd -dl root
Groupe Sudo
root$ echo "%Sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Déconnectez-vous, puis revenez dans.
Réinitialiser le délai d'attente Sudo
Vous pouvez vous assurer que Sudo demandera le mot de passe la prochaine fois en exécutant:
Sudo -k
La méthode préférée pour accorder des autorisations individuelles (ou de groupe) consiste à ajouter des fichiers sous /etc/sudoers.d
Cela sépare les modifications locales de la stratégie par défaut et permet de gagner du temps au cas où le fichier de distribution sudoers serait modifié.
Par exemple:
Sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/username
Indiquera très clairement quels utilisateurs obtiennent la permission.
De même, un fichier peut être utilisé pour gérer plusieurs directives:
Sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/local
Veuillez consulter /etc/sudoers.d/README
pour plus d'informations.
Un one-liner pour supprimer les invites Sudo pour l'utilisateur actuel
Sudo bash -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)'
Bien sûr, ce que vous voulez faire n'est pas recommandé. Au bout d'un moment, entrer Sudo
devient tellement automatique que son utilité diminue.
Une autre approche consiste à laisser votre fichier sudoers tel quel et, tout en effectuant une opération compliquée pour vos cent mille serveurs, entrez Sudo bash
. Cela vous donnera un Shell qui sera authentifié en tant que root jusqu'à ce que vous le quittiez.
De super utilisateur vient une bonne réponse:
Utilisez le commutateur -S qui lit le mot de passe de STDIN:
echo <password> | Sudo -S <command>
Remplacez <password>
par votre mot de passe.
Il s’agit d’une solution d’une ligne qui modifie également les autorisations de fichiers comme indiqué dans /etc/sudoer.d/README
:
Sudo sh -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(logname)' & Sudo chmod 440 $(logname)
Bon mot
Sudo sed -i /etc/sudoers -re 's/^%Sudo.*/%Sudo ALL=(ALL:ALL) NOPASSWD: ALL/g'