Skip to content

Commit edbfa67

Browse files
committed
randomize database password
1 parent 3ee3a28 commit edbfa67

File tree

5 files changed

+29
-21
lines changed

5 files changed

+29
-21
lines changed

etc/nextcloudpi-config.d/nc-backup.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,21 @@
1717

1818
DESTDIR_=/media/USBdrive
1919
BASEDIR_=/var/www
20-
DBPASSWD_=ownyourbits
2120
DESCRIPTION="Backup this NC instance to a file"
2221

2322
DESTFILE=$DESTDIR_/nextcloud-bkp_`date +"%Y%m%d"`.tar
2423
DBBACKUP=nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
2524

2625
configure()
2726
{
27+
local DBPASSWD=$( cat /root/.dbpass )
28+
2829
cd $BASEDIR_/nextcloud
2930
sudo -u www-data php occ maintenance:mode --on
3031

3132
cd $BASEDIR_
3233
echo -e "backup database..."
33-
mysqldump -u root -p$DBPASSWD_ --single-transaction nextcloud > $DBBACKUP
34+
mysqldump -u root -p$DBPASSWD --single-transaction nextcloud > $DBBACKUP
3435

3536
echo -e "backup files..."
3637
mkdir -p $DESTDIR

etc/nextcloudpi-config.d/nc-init.sh

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
ADMINUSER_=admin
1919
DBADMIN_=ncadmin
20-
DBPASSWD_=ownyourbits
2120
DESCRIPTION="(Re)initiate Nextcloud to a clean configuration"
2221

2322
show_info()
@@ -35,6 +34,8 @@ show_info()
3534

3635
configure()
3736
{
37+
local DBPASSWD=$( cat /root/.dbpass )
38+
3839
## RE-CREATE DATABASE TABLE
3940

4041
echo "Setting up database..."
@@ -48,14 +49,14 @@ configure()
4849
done
4950

5051
# workaround to emulate DROP USER IF EXISTS ..;)
51-
mysql -u root -p$DBPASSWD_ <<EOF
52+
mysql -u root -p$DBPASSWD <<EOF
5253
DROP DATABASE IF EXISTS nextcloud;
5354
CREATE DATABASE nextcloud
5455
CHARACTER SET utf8mb4
5556
COLLATE utf8mb4_unicode_ci;
56-
GRANT USAGE ON *.* TO '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
57+
GRANT USAGE ON *.* TO '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD';
5758
DROP USER '$DBADMIN_'@'localhost';
58-
CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
59+
CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD';
5960
GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_@localhost;
6061
EXIT
6162
EOF
@@ -68,7 +69,7 @@ EOF
6869
rm -f config/config.php
6970
sudo -u www-data php occ maintenance:install --database \
7071
"mysql" --database-name "nextcloud" --database-user "$DBADMIN_" --database-pass \
71-
"$DBPASSWD_" --admin-user "$ADMINUSER_" --admin-pass "$DBPASSWD_"
72+
"$DBPASSWD" --admin-user "$ADMINUSER_" --admin-pass "$DBPASSWD"
7273

7374
# cron jobs
7475
sudo -u www-data php occ background:cron

etc/nextcloudpi-config.d/nc-nextcloud.sh

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ MAXFILESIZE_=2G
2020
MEMORYLIMIT_=768M
2121
MAXTRANSFERTIME_=3600
2222
DBADMIN_=ncadmin
23-
DBPASSWD_=ownyourbits
2423
DESCRIPTION="Install any NextCloud version"
2524

2625
export DEBIAN_FRONTEND=noninteractive
@@ -46,6 +45,8 @@ install() { :; }
4645

4746
configure()
4847
{
48+
local DBPASSWD=$( cat /root/.dbpass )
49+
4950
## RE-CREATE DATABASE TABLE
5051
echo "Starting mariaDB"
5152

@@ -62,14 +63,14 @@ configure()
6263

6364
echo "Setting up database..."
6465
# workaround to emulate DROP USER IF EXISTS ..;)
65-
mysql -u root -p$DBPASSWD_ <<EOF
66+
mysql -u root -p$DBPASSWD <<EOF
6667
DROP DATABASE IF EXISTS nextcloud;
6768
CREATE DATABASE nextcloud
6869
CHARACTER SET utf8mb4
6970
COLLATE utf8mb4_unicode_ci;
70-
GRANT USAGE ON *.* TO '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
71+
GRANT USAGE ON *.* TO '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD';
7172
DROP USER '$DBADMIN_'@'localhost';
72-
CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
73+
CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD';
7374
GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_@localhost;
7475
EXIT
7576
EOF

etc/nextcloudpi-config.d/nc-restore.sh

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
BACKUPFILE_=/media/USBdrive/nextcloud-bkp_xxxxxxxx.tar
2121
BASEDIR_=/var/www
22-
DBPASSWD_=ownyourbits
2322
DBADMIN_=ncadmin
2423
DESCRIPTION="Restore a previously backuped NC instance"
2524

@@ -40,6 +39,8 @@ You can use nc-backup " \
4039

4140
configure()
4241
{
42+
local DBPASSWD=$( cat /root/.dbpass )
43+
4344
[ -f $BACKUPFILE_ ] || { echo -e "$BACKUPFILE_ not found"; return 1; }
4445
[ -d $BASEDIR_ ] || { echo -e "$BASEDIR_ not found"; return 1; }
4546
[ -d $BASEDIR_/nextcloud ] && { echo -e "WARNING: overwriting old instance"; }
@@ -55,18 +56,18 @@ configure()
5556

5657
# RE-CREATE DATABASE TABLE
5758
echo -e "restore database..."
58-
mysql -u root -p$DBPASSWD_ <<EOF
59+
mysql -u root -p$DBPASSWD <<EOF
5960
DROP DATABASE IF EXISTS nextcloud;
6061
CREATE DATABASE nextcloud;
61-
GRANT USAGE ON *.* TO '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
62+
GRANT USAGE ON *.* TO '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD';
6263
DROP USER '$DBADMIN_'@'localhost';
63-
CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
64+
CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD';
6465
GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_@localhost;
6566
EXIT
6667
EOF
6768
[ $? -ne 0 ] && { echo -e "error configuring nextcloud database"; return 1; }
6869

69-
mysql -u root -p$DBPASSWD_ nextcloud < nextcloud-sqlbkp_*.bak || { echo -e "error restoring nextcloud database"; return 1; }
70+
mysql -u root -p$DBPASSWD nextcloud < nextcloud-sqlbkp_*.bak || { echo -e "error restoring nextcloud database"; return 1; }
7071

7172
cd $BASEDIR_/nextcloud
7273
sudo -u www-data php occ maintenance:mode --off

lamp.sh

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
# More at https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/
2121
#
2222

23-
DBPASSWD_=ownyourbits
24-
2523
APTINSTALL="apt-get install -y --no-install-recommends"
2624
export DEBIAN_FRONTEND=noninteractive
2725

@@ -47,8 +45,14 @@ EOF
4745
$APTINSTALL -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip php7.0-APC
4846
mkdir -p /run/php
4947

50-
debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password password $DBPASSWD_"
51-
debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password_again password $DBPASSWD_"
48+
# Randomize mariaDB password
49+
# Suggested by @enoch85 and taken from the nextcloud vm ( https://github.com/nextcloud/vm/blob/master/lib.sh#L46 )
50+
$DBPASSWD=$(tr -dc "a-zA-Z0-9@#*=" < /dev/urandom | fold -w "$(shuf -i 30-35 -n 1)" | head -n 1)
51+
echo $DBPASSWD > /root/.dbpass
52+
chmod 600 /root/.dbpass
53+
54+
debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password password $DBPASSWD"
55+
debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password_again password $DBPASSWD"
5256
$APTINSTALL -t stretch mariadb-server php7.0-mysql
5357
mkdir -p /run/mysqld
5458
chown mysql /run/mysqld
@@ -126,7 +130,7 @@ EOF
126130
sed -i '/\[mysqld\]/ainnodb_file_format=barracuda' /etc/mysql/mariadb.conf.d/50-server.cnf
127131

128132
mysql_secure_installation <<EOF
129-
$DBPASSWD_
133+
$DBPASSWD
130134
n
131135
y
132136
y

0 commit comments

Comments
 (0)