hint-login.1() {
cat << EOF
	To solve this problem, you must first get into the
	system.  To read log files or change configuration files,
	you will need to have root privileges, but you cannot log
	in as root. How do you gain root privileges on your
	system?

EOF
}

hint-login.2() {
cat << EOF
	To gain root privileges on the system, use grub to boot
	into single user mode.

EOF
}

hint-login.3() {
cat << EOF
	Now that you have broken into the system as root,
	checking log files is always a good way to start
	debugging.  But tailing the log file, a common step, will
	not work, as the reboots have written much to the
	/var/log/messages file.  You will have to search back in
	the messages file to find the messages before the reboot.


EOF
}

hint-login.4() {
cat << EOF
	Searching the log file, you will find lines similar to:

		login(pam_unix)[919]: account root has expired (account expired)
		login[919]: User account has expired

	What subsystem is in charge of account expiration?

EOF
}

hint-login.5() {
cat << EOF
	Password and account aging information is kept in the
	/etc/shadow file and manipulated by the chage command.
	Check out the man page for chage for clues as to how to
	debug the problem further.

EOF
}

hint-login.6() {
cat << EOF
	According the the chage man page, the command:

		chage -l root

	will give information on the current state of root's
	aging information.  Any interesting information derived
	from this command?

EOF
}

hint-login.7() {
cat << EOF
	The "chage -l root" command shows that the account has
	expired.  Accessing the chage man page, we see a
	deficiency: it does not tell how to cancel the
	expiration.  However, we may find clues in the output of
	"chage -l root".  Here are some things to try:

		a.  Set an expiration date of 0.  Does it work?

		b.  Set an expiration date of -1.  Does it work?

		c.  Set an expiration date of 99999.  What is the
		    effect?

		d.  Read the shadow man page to determine how to
		    change the expiration date directly (man 5
		    shadow: why is the 5 needed?).

EOF
}
