ändra * ditt * linux-lösenord via ett bash-skript

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 eller sudo för din " ändra en annan användare ' s lösenord " exempel för att fungera?
  • Endast root kan använda passwd username för en annan användare. När du kör passwd (utan username) som root 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 om passwd 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.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *