Inspiré par cela question....
Je suis la seule personne utilisant mon système avec 12.04.
Chaque fois que je délivre un sudo
commander; le système demande le mot de passe utilisateur (ce qui est bien à sa manière).
Cependant je pensais; sans activer le racine Compte; Comment puis-je exécuter les commandes sudo qui ne demanderont pas d'authentification du mot de passe utilisateur?
REMARQUE: je veux exécuter la commande sudo sans authentification par mot de passe; seulement quand ils sont exécutés via le terminal.
Je ne veux pas supprimer cette couche de sécurité supplémentaire des autres fonctions en utilisant «Ubuntu software center» ou en exécutant un script bash en glissant-déposant le fichier something.sh sur le terminal.
sudo -i
est la voie à suivre si vous ne voulez pas taper un mot de passe toutes les 10 minutes lorsque vous apportez des modifications à votre système (ou à d'autres systèmes) et que vous ne souhaitez modifier aucun fichier système.
Il vous fera basculer en utilisant votre sudo
mot de passe utilisateur, lorsque vous fermez la console ou tapez exit
vous revenez à votre utilisateur normal.
L'approche pour résoudre votre problème consiste à placer votre utilisateur dans le fichier sudoers, comme vous pouvez le voir.
Ouvrez la fenêtre du terminal et tapez:
sudo visudo
En 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 saurez si vous en avez), appuyez sur ctl + x pour quitter nano
(mais notez que la capture d'écran ci-dessous montre vim
), et il vous invite à enregistrer).
]
Après cela, vous pouvez, dans la fenêtre du terminal, taper sudo <Whatever you want>
, sans être invité à saisir le mot de passe.
Cela ne s'applique qu'à sudo
commande dans la fenêtre du terminal.
Par exemple, lorsque vous essayez d'installer un package dans le centre du logiciel, vous serez invité à insérer votre mot de passe, comme vous pouvez le voir dans la capture d'écran suivante.

Je pense que c'est ce que vous voulez.
Les délais d'expiration de sudo racine sont le moyen le plus simple et le plus sûr d'y parvenir. Je vais exposer tous les exemples, mais sachez que c'est très risqué, même si cela est beaucoup plus sûr:
sudo visudo
Cela ouvre un éditeur et le pointe vers le fichier sudoers - Ubuntu par défaut à nano, les 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 Vi notées avec (vi!). Ignorez-les si vous utilisez nano.)
Utilisez les touches fléchées pour aller à la fin du Defaults
ligne.
(vi!) Appuyez sur la touche A (majuscule "a) pour vous déplacer à la fin de la ligne en cours et passer en mode é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'expiration n'expirera jamais. Par exemple. Defaults env_reset,timestamp_timeout=5
.
(vi!) appuyez sur Echap pour revenir au mode de commande. Maintenant, si vous êtes satisfait de votre édition, tapez :w
Entrer pour écrire le fichier et :q
Entrer sortir vi. Si vous avez commis une erreur, le moyen le plus simple est peut-être de recommencer depuis le début pour quitter sans enregistrer (appuyez sur Échapper pour entrer dans le mode de commande), puis tapez: q! Entrer.
Frappé Ctrl+X, puis Y, puis Entrer pour enregistrer votre fichier et quitter nano.
Vous pourriez vouloir lire les sudoers et les pages de manuel vi pour plus d'informations.
man sudoers
man vi
Réinitialiser la valeur du délai d'attente à l'aide de:
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 quand même être utilisée pour un accès root.
Modifier le fichier sudoers
Ouvrez une fenêtre de terminal. Tapez sudo visudo
. Ajoutez la ligne suivante à la fin du fichier (si ce n'est pas à la fin, il peut être annulé par des entrées ultérieures):
<username> ALL=NOPASSWD: ALL
Remplacer <username>
avec votre nom d'utilisateur (sans le <>
). Cela suppose que Ubuntu a créé un groupe avec 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 de vous trouver dans 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.
Le compte root
Activation du 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 vraiment besoin d'un login root persistant, la meilleure solution consiste à simuler un shell de connexion root à l'aide de la commande suivante:
sudo -i
Cependant, si vous doit activer les connexions root, vous pouvez le faire comme ceci:
sudo passwd root
Désactiver 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 à l'échelle du système sudo
root$ echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Déconnectez-vous, puis de nouveau
Réinitialiser le délai d'expiration de sudo
Vous pouvez vous assurer que sudo demande le mot de passe la prochaine fois en exécutant:
sudo -k
La méthode privilégié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 en cas de modification du fichier de distribution sudoers.
Par exemple:
sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/username
Sera très clair quels utilisateurs sont autorisés.
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
S'il te plait regarde /etc/sudoers.d/README
pour plus d'informations.
Nice 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é. Après un certain temps, en entrant sudo
devient tellement automatique que son utilité diminue.
Une autre approche consiste à laisser votre fichier sudoers tel quel et, tout en faisant quelque chose de compliqué pour vos centaines de 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>
Remplacer <password>
avec votre mot de passe