Det är enkelt att ändra ett annat användarlösenord via ett bash-skript – gör bara echo newpw | passwd username
och bam, du är klar. Men hur är det med att ändra ditt lösenord via bash? echo newpw | passwd username
fungerar inte eftersom det ber dig om ditt nuvarande lösenord innan du låter dig ange ditt nya lösenord.
Kommentarer
- Måste du använda
su
ellersudo
för din " ändra en annan användare ' s lösenord " exempel för att fungera? - Endast
root
kan användapasswd username
för en annan användare. När du körpasswd
(utanusername
) somroot
det ber inte om det gamla lösenordet (på mitt Ubuntu 19.10-system). - Yah – jag gjorde
sudo
. Frågan står fortfarande lol - Så var du tvungen att ange ditt lösenord för att
sudo
till ändra en annan användare ' s lösenord? - Tja, ge det nuvarande lösenordet,
{ sleep .1; echo OLDPASSWORD; for i in 1 2; do sleep .1; echo Trump2020! ; done; } | passwd
. Använd... | script -c passwd /dev/null
ompasswd
vill läsa från en tty. Men du borde verkligen inte ' inte göra det. Säg bättre vad du ' försöker uppnå.
Svar
Om du vill ändra passwd för den aktuella användaren bör detta också göra:
echo -e "MyOldPasswd\nMyNewPasswd\nMyNewPasswd" | passwd
Svar
Du kan använda chpasswd .
sudo chpasswd <<<"neubert:newpass"
Svar
Det fungerar inte med någon halvvägs rimlig installation. Endast root kan ändra andra användares lösenord via passwd user
(det borde be om det nya lösenordet). För att ändra ditt eget lösenord, gör passwd
, det borde be om det aktuella lösenordet och sedan be om det nya (och bekräftelse).
Tillåter alla slumpmässiga användare att ändra andra lösenord är ett stort säkerhetsproblem.