68 lines
1.0 KiB
Bash
Executable File
68 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# turn shadow passwords on or off on a Debian system
|
|
|
|
set -e
|
|
|
|
permfix () {
|
|
[ -f $1 ] || return 0
|
|
chown root:shadow $1
|
|
chmod 2755 $1
|
|
}
|
|
export -f permfix
|
|
|
|
shadowon () {
|
|
bash<<- EOF
|
|
set -e
|
|
|
|
permfix /usr/X11R6/bin/xlock
|
|
permfix /usr/X11R6/bin/xtrlock
|
|
permfix /bin/vlock
|
|
|
|
pwck -q
|
|
grpck
|
|
pwconv
|
|
grpconv
|
|
cd /etc
|
|
chown root:root passwd group
|
|
chmod 644 passwd group
|
|
chown root:shadow shadow gshadow
|
|
chmod 640 shadow gshadow
|
|
EOF
|
|
}
|
|
|
|
shadowoff () {
|
|
bash<<- EOF
|
|
set -e
|
|
pwck -q
|
|
grpck
|
|
pwunconv
|
|
grpunconv
|
|
cd /etc
|
|
# sometimes the passwd perms get munged
|
|
chown root:root passwd group
|
|
chmod 644 passwd group
|
|
EOF
|
|
}
|
|
|
|
case "$1" in
|
|
"on")
|
|
if shadowon ; then
|
|
echo Shadow passwords are now on.
|
|
else
|
|
echo Please correct the error and rerun \`$0 on\'
|
|
exit 1
|
|
fi
|
|
;;
|
|
"off")
|
|
if shadowoff ; then
|
|
echo Shadow passwords are now off.
|
|
else
|
|
echo Please correct the error and rerun \`$0 off\'
|
|
exit 1
|
|
fi
|
|
;;
|
|
*)
|
|
echo Usage: $0 on \| off
|
|
;;
|
|
esac
|