-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Jeremy Katz wrote:
> On Sun, 2007-04-15 at 12:28 +0200, Jeroen van Meeuwen wrote:
>> This is an attempt to fix being able to set the root password from
>> kickstart.
>
> This changes the behavior, though. A blank password isn't the same as
> setting the passwd to empty with -d. So you need to check for a lack of
> a root pass and still set it with -d.
>
> Also, instead of essentially running sed on /etc/shadow for the case of
> a crypted password, you can use usermod -p. Or it could use libuser
> like anaconda currently does, but that's probably overkill.
>
> Jeremy
>
Good point. Improvements attached.
Kind regards,
Jeroen van Meeuwen
- -kanarip
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFGI5VrKN6f2pNCvwgRAjExAKCtuSlRrmVHyLjOkodp0k58tkbMiQCcCD6W
wBC8dBcoqCOE73yISXDwJW4=
=5YmH
-----END PGP SIGNATURE-----
--- livecd/creator/livecd-creator.orig 2007-04-10 23:53:59.000000000 +0200
+++ livecd/creator/livecd-creator 2007-04-16 14:21:52.000000000 +0200
@@ -522,9 +522,22 @@
@@ -522,9 +537,17 @@
args.append("--selinux=disabled")
subprocess.call(args, preexec_fn=self.run_in_root)
- # FIXME: we should allow the setting of the root pass
- if os.path.exists("%s/usr/bin/passwd" %(instroot,)):
+ # Set the root password
+ if self.ksparser.handler.rootpw.isCrypted:
+ subprocess.call(["/usr/sbin/usermod", "-p",
self.ksparser.handler.rootpw.password, "root"], preexec_fn=self.run_in_root)
+ elif self.ksparser.handler.rootpw.password == "":
+ # Root password is not set and not crypted, empty it
subprocess.call(["/usr/bin/passwd", "-d", "root"],
preexec_fn=self.run_in_root)
+ else:
+ # Root password is set and not crypted
+ p1 = subprocess.Popen(["/bin/echo",
self.ksparser.handler.rootpw.password], stdout=subprocess.PIPE,
preexec_fn=self.run_in_root)
+ p2 = subprocess.Popen(["/usr/bin/passwd", "--stdin", "root"],
stdin=p1.stdout, stdout=subprocess.PIPE, preexec_fn=self.run_in_root)
+ output = p2.communicate()[0]
# enable/disable services appropriately
if os.path.exists("%s/sbin/chkconfig" %(instroot,)):
--
Fedora-livecd-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/fedora-livecd-list