add adminpasswd script to conveniently update admin/root password

This commit is contained in:
Calin Crisan 2017-08-06 12:06:44 +03:00
parent 8556a04e97
commit 217053f76f
4 changed files with 35 additions and 52 deletions

View File

@ -51,6 +51,10 @@ case "$1" in
touch /data/etc/adjtime
sync
msg_done
msg_begin "Setting empty root password"
PASSWORD="" adminpasswd
msg_done
# mount other partitions depending on data
mount -T /etc/fstab.disk -a

View File

@ -1,48 +0,0 @@
#!/bin/bash
test -n "$os_version" || source /etc/init.d/base
case "$1" in
start)
# make sure root and admin users exist in shadow file
touch /data/etc/shadow
chmod go-rwx /data/etc/shadow
if ! grep root /data/etc/shadow &>/dev/null; then
echo 'root::::::::' >> /data/etc/shadow
fi
if ! grep admin /data/etc/shadow &>/dev/null; then
echo 'admin::::::::' >> /data/etc/shadow
fi
# remove shadow backups
rm -f /data/etc/shadow+
rm -f /data/etc/shadow-
if [ -x /etc/init.d/adminpw ]; then
# set root and admin passwords (admin is just an alias for root)
password=$(/etc/init.d/adminpw)
msg_begin "Setting root password"
echo -en "$password\n$password\n" | passwd &>/dev/null # root
echo -en "$password\n$password\n" | passwd admin &>/dev/null # admin
sed -r -i 's/root:([^:]+):[[:digit:]]+:/root:\1::/' /data/etc/shadow # removes pwd expiration
sed -r -i 's/admin:([^:]+):[[:digit:]]+:/admin:\1::/' /data/etc/shadow # removes pwd expiration
msg_done
fi
sync
;;
stop)
true
;;
*)
echo "Usage: $0 {start}"
exit 1
esac
exit $?

View File

@ -1,4 +0,0 @@
#!/bin/bash
# echo your admin password here

View File

@ -0,0 +1,31 @@
#!/bin/bash
# we verify the presence of the PASSWORD variable using env,
# as it can also have an empty string value
if ! env | grep PASSWORD &>/dev/null; then
echo "You must set the PASSWORD environment variable."
exit 1
fi
# make sure root and admin users exist in shadow file
touch /data/etc/shadow
chmod go-rwx /data/etc/shadow
if ! grep root /data/etc/shadow &>/dev/null; then
echo 'root::::::::' >> /data/etc/shadow
fi
if ! grep admin /data/etc/shadow &>/dev/null; then
echo 'admin::::::::' >> /data/etc/shadow
fi
# remove shadow backups
rm -f /data/etc/shadow+
rm -f /data/etc/shadow-
# set root and admin passwords (admin is just an alias for root)
echo -en "$PASSWORD\n$PASSWORD\n" | passwd &>/dev/null # root
echo -en "$PASSWORD\n$PASSWORD\n" | passwd admin &>/dev/null # admin
sed -r -i 's/root:([^:]+):[[:digit:]]+:/root:\1::/' /data/etc/shadow # removes pwd expiration
sed -r -i 's/admin:([^:]+):[[:digit:]]+:/admin:\1::/' /data/etc/shadow # removes pwd expiration