11 my @chars = ("A".."Z", "a".."z", "0".."9", ".", "/");
12 $salt .= $chars[rand @chars] for 1..16;
13 my $crypted = crypt ($newpw, '$5$' . $salt . '$');
15 my $g = Sys::Guestfs->new ();
17 $g->add_domain ($vm, libvirturi => "qemu:///session");
19 $g->mount ("/dev/fedora/root", "/");
21 my @shadow = $g->read_lines ("/etc/shadow");
22 s/^root:.*?:/root:$crypted:/ foreach @shadow;
24 $g->write ("/etc/shadow", join ("\n", @shadow) . "\n");
25 $g->chmod (0, "/etc/shadow");
27 $g->touch ("/.autorelabel");