Sur un serveur, un utilisateur 16040 a perdu son mot de passe. J'ai un mot de passe pour root mais je n'ai pas de mot de passe pour l'utilisateur 16040. Comment réinitialiser son mot de passe?
Avec passwd 16040
, unix me demande le mot de passe actuel que je n'ai pas. Existe-t-il une commande pour réinitialiser le mot de passe d'un utilisateur sans mot de passe actuel?
passwd 16040
Changing password for 16040.
Current password for [email protected]:
# >
est plutôt rare et>
invite simplement à être mal interprété dans le cadre de la commande - la pratique courante consiste à utiliser un simple#
pour lesroot
coquilles et$
pour les non-root.Si vous ne pouvez pas vous connecter directement en tant que root, vous pouvez essayer
sudo /usr/bin/passwd 16040
.sudo -i
et après/usr/bin/passwd 16040
Je suppose que
passwd
c'est dans / usr / bin (vous pouvez vérifier avec la commandewhich passwd
)la source
sudo bash
pour démarrer unroot
shell est (bien que courant) une très mauvaisesudo
pratique. C'estsudo -s
ousudo -i
(non-login ou login-shell, resp.). Cela honore même votre jeu de shell par défaut/etc/passwd
sans avoir à vous en soucier vous-même. De plus,bash
sans un chemin complet est une mauvaise idée en soi, car ce serait l'un des premiers faux binaires dans lesquels un utilisateur malveillant placerait quelque part$PATH
.sudo -i
, et j'ai donc modifié la réponse ... mais si vous parlez de sécurité et de la possibilité d'un troian caché dans le$PATH
peut - être, il vaut mieux éviter d'utilisersudo -s
car vous ajoutez au moins le$USER/bin
répertoire et tous les alias que vous pouvez imaginer ... :-)sudo
configuration: la configuration par défaut livrée avecsudo
ne conserve pas le$HOME
jeu de variables, vous finirez donc par avoir vos propres fichiers rc, pas$SUDO_USER
ceux de.