[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Skrypt z passwd



Witajcie ludzie z debian-user-polish!

  Piszę sobie skrypcik w perlu i chcialbym zmienic haslo za pomoca tego
  skryptu dla danego usera. I tu mam problem.

  Ze strony http://www.tldp.org/LDP/abs/html/system.html wyczytalem, ze
  w bashu wykona to taki oto skrypcik:

---- cytuje start ----
passwd
Sets or changes a user's password.

The passwd can be used in a script, but should not be. #!/bin/bash
#  set-new-password.sh: Not a good idea.
#  This script must be run as root,
#+ or better yet, not run at all.

ROOT_UID=0         # Root has $UID 0.
E_WRONG_USER=65    # Not root?

if [ "$UID" -ne "$ROOT_UID" ]
then
  echo; echo "Only root can run this script."; echo
  exit $E_WRONG_USER
else
  echo; echo "You should know better than to run this script, root."
fi  


username=bozo
NEWPASSWORD=security_violation

echo "$NEWPASSWORD" | passwd --stdin "$username"
#  The '--stdin' option to 'passwd' permits
#+ getting new password from stdin (or a pipe).

echo; echo "User $username's password changed!"

# Using the 'passwd' command in a script is dangerous.

exit 0
 
---- cytuje end ----

W tym sek, ze nie dziala to u mnie i nie wiem dlaczego :////
(oczywiscie w tym skrypcie zmieniam zmiena username na konto z mojego
systemu oraz NEWPASSWORD na cos co potrzebuje).

Efetem wykonania skryptu w moim systemie jest co takiego (loguje sie na
konto uzytkownika za pomoca putty a potem su -):
----
You should know better than to run this script, root.
passwd: błędna opcja -- -
usage: passwd [ -f | -s ] [ name ]
       passwd [ -x max ] [ -n min ] [ -w warn ] [ -i inact ] name
       passwd { -l | -u | -d | -S | -e } name

User xxxx's password changed!
----
I nie dziala :/ (chyba, ze musze uzyc skryptu z czystego konta root? ale
z linii polecen moge zminiac haslo wiec nie powinno byc roznicy).

Interesuje mnie ta linia:
echo "$NEWPASSWORD" | passwd --stdin "$username"
jesli to zadziala to wstawie do skryptu perlowego:
system('echo "$newpass" | passwd --stdin "$username"');

Macie moze jakies sugestie?

Z gory thx za pomoc.

Pozdrawiam,
-- 
 Piotr                          najduk(at)dami(dot)pl
 Linux Registered User          # 217130
 GG UIN                         # 1176825




Reply to: