fix adduser + maintenance tasks (#4172)

* fix: add --shell /bin/bash to adduser

* joininbox update to v0.8.1 and install fixes

* CLN update to v23.08.1

* bos update to 15.8.14, improve menu

* lnproxy: deactivate in menu and provision

* copy the skeleton files for user used with login

* deprecate loop single install further

do not install in any case
the uninstall option is still used

* deprecate faraday single install further

do not install in any case
the uninstall option is still used

* deprecate pool single install further

do not install in any case
the uninstall option is still used

* bos: minimize changes to script

* only add --bash oprion to users intended for login

* add info to CHANGES

* add sudo to non-privileged scripts

* bos: don't download source

* ci: run apt update before qemu install
This commit is contained in:
openoms 2023-09-20 10:29:15 +02:00 committed by GitHub
parent ea41275b5d
commit 2c235f3b53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 74 additions and 78 deletions

View file

@ -3,7 +3,7 @@
- Update: RaspiOS base image from 2023-05-03
- Update: Bitcoin Core v25.0.0 [details](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-25.0.md)
- Update: LND v0.16.4-beta [details](https://github.com/lightningnetwork/lnd/releases/tag/v0.16.4-beta)
- Update: Core Lightning v23.08 [details](https://github.com/ElementsProject/lightning/releases/tag/v23.08)
- Update: Core Lightning v23.08.1 [details](https://github.com/ElementsProject/lightning/releases/tag/v23.08.1)
- Update: Suez - Channel Visualization for LND & CLN [details](https://github.com/prusnak/suez)
- Update: Electrum Server in Rust (electrs) v0.10.0 [details](https://github.com/romanz/electrs/blob/master/RELEASE-NOTES.md#0100-jul-22-2023)
- Update: C-lightningREST v0.10.5 [details](https://github.com/Ride-The-Lightning/c-lightning-REST/releases/tag/v0.10.5)
@ -16,8 +16,14 @@
- Update: BTCPayServer 1.10.3 (postgres by default with sqlite migration) [details](https://github.com/btcpayserver/btcpayserver/releases/tag/v1.10.3)
- Update: Specter Desktop 1.13.1 [details](https://github.com/cryptoadvance/specter-desktop/releases/tag/v1.13.1)
- Update: Kindle-Display 0.5.1 [details](https://github.com/dennisreimann/kindle-display/)
- Update: JoinMarket v0.9.10 [details](https://github.com/JoinMarket-Org/joinmarket-clientserver/releases/tag/v0.9.10)
- Update: JoininBox v0.8.1 [details](https://github.com/openoms/joininbox/releases/tag/v0.8.1)
- Update: Balance of Satoshis 15.11.0 (bos) [details](https://github.com/alexbosworth/balanceofsatoshis/blob/master/CHANGELOG.md#15110)
- Fix: Homebanking Interface FinTS/HBCI (experimental) [details](https://github.com/rootzoll/raspiblitz/issues/1186)
- Remove: Spark Wallet and Sparko CLN plugin (not maintained anymore)
- Remove: Faraday, Loop, Pool single installs - used in the LiT package instead
- Remove: deactivate LNproxy in the menu and in provision
- Info: the users not intended to be logged in will not be available to change into (manage them from admin with sudo)
## What's new in Version 1.9.0 of RaspiBlitz?

View file

@ -399,7 +399,9 @@ echo -e "\n*** PREPARE ${baseimage} ***"
# make sure the pi user is present
if [ "$(compgen -u | grep -c pi)" -eq 0 ];then
echo "# Adding the user pi"
adduser --system --group --home /home/pi pi
adduser --system --group --shell /bin/bash --home /home/pi pi
# copy the skeleton files for login
sudo -u pi cp -r /etc/skel/. /home/pi/
adduser pi sudo
fi
@ -542,7 +544,9 @@ service rsyslog restart
echo -e "\n*** ADDING MAIN USER admin ***"
# based on https://raspibolt.org/system-configuration.html#add-users
# using the default password 'raspiblitz'
adduser --system --group --home /home/admin admin
adduser --system --group --shell /bin/bash --home /home/admin admin
# copy the skeleton files for login
sudo -u admin cp -r /etc/skel/. /home/admin/
echo "admin:raspiblitz" | chpasswd
adduser admin sudo
chsh admin -s /bin/bash
@ -560,7 +564,9 @@ fi
echo -e "\n*** ADDING SERVICE USER bitcoin"
# based on https://raspibolt.org/guide/raspberry-pi/system-configuration.html
# create user and set default password for user
adduser --system --group --home /home/bitcoin bitcoin
adduser --system --group --shell /bin/bash --home /home/bitcoin bitcoin
# copy the skeleton files for login
sudo -u bitcoin cp -r /etc/skel/. /home/bitcoin/
echo "bitcoin:raspiblitz" | chpasswd
# make home directory readable
chmod 755 /home/bitcoin

View file

@ -1,5 +1,7 @@
#!/bin/bash -e
sudo apt-get update
# install packer
if ! packer version 2>/dev/null; then
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
@ -11,8 +13,11 @@ else
echo "# Packer is installed"
fi
# install qemu
echo -e "\nInstalling qemu..."
echo "# Install qemu ..."
sudo apt-get update
sudo apt-get install -y qemu-system
# set vars
@ -20,7 +25,7 @@ source ../set_variables.sh
set_variables "$@"
# Build the image
echo -e "\nBuilding the image..."
echo "# Build the image ..."
cd debian
packer init -upgrade .
command="PACKER_LOG=1 packer build ${vars} -only=qemu packer.build.amd64-debian.hcl"

View file

@ -126,9 +126,9 @@ fi
if [ "${bos}" == "on" ]; then
OPTIONS+=(BOS "Balance of Satoshis")
fi
if [ "${lnproxy}" == "on" ]; then
OPTIONS+=(LNPROXY "lnproxy server")
fi
#if [ "${lnproxy}" == "on" ]; then
# OPTIONS+=(LNPROXY "lnproxy server")
#fi
if [ "${pyblock}" == "on" ]; then
OPTIONS+=(PYBLOCK "PyBlock")
fi
@ -281,9 +281,6 @@ case $CHOICE in
LIGHTNINGTIPBOT)
/home/admin/config.scripts/bonus.lightningtipbot.sh menu
;;
LOOP)
/home/admin/config.scripts/bonus.loop.sh menu
;;
MEMPOOL)
/home/admin/config.scripts/bonus.mempool.sh menu
;;
@ -296,9 +293,6 @@ case $CHOICE in
JAM)
/home/admin/config.scripts/bonus.jam.sh menu
;;
FARADAY)
sudo /home/admin/config.scripts/bonus.faraday.sh menu
;;
BOS)
sudo /home/admin/config.scripts/bonus.bos.sh menu
;;
@ -317,9 +311,6 @@ case $CHOICE in
ZEROTIER)
sudo /home/admin/config.scripts/bonus.zerotier.sh menu
;;
POOL)
sudo /home/admin/config.scripts/bonus.pool.sh menu
;;
SPHINX)
sudo /home/admin/config.scripts/bonus.sphinxrelay.sh menu
;;

View file

@ -68,7 +68,7 @@ if [ "${lightning}" == "lnd" ] || [ "${lnd}" == "on" ]; then
OPTIONS+=(la 'LND LIT (loop, pool, faraday)' ${lit})
OPTIONS+=(gb 'LND LNDg (auto-rebalance, auto-fees)' ${lndg})
OPTIONS+=(oa 'LND Balance of Satoshis' ${bos})
OPTIONS+=(lp 'LND lnproxy server' ${lnproxy})
#OPTIONS+=(lp 'LND lnproxy server' ${lnproxy})
OPTIONS+=(ya 'LND PyBLOCK' ${pyblock})
OPTIONS+=(ha 'LND ChannelTools (Fund Rescue)' ${chantools})
OPTIONS+=(xa 'LND Sphinx-Relay' ${sphinxrelay})

View file

@ -269,10 +269,6 @@ Do you really want to update LND now?
if [ ${#error} -gt 0 ]; then
whiptail --title "ERROR" --msgbox "${error}" 8 30
else
# if loop was installed before reinstall
if [ "${loop}" == "on" ]; then
sudo -u admin /home/admin/config.scripts/bonus.loop.sh on
fi
/home/admin/config.scripts/blitz.shutdown.sh reboot
sleep 8
fi

View file

@ -425,15 +425,6 @@ else
echo "Provisioning clWatchtowerClient - keep default" >> ${logFile}
fi
#LOOP - install only if LiT won't be installed
if [ "${loop}" = "on" ] && [ "${lit}" != "on" ]; then
echo "Provisioning Lightning Loop - run config script" >> ${logFile}
/home/admin/_cache.sh set message "Setup Lightning Loop"
sudo -u admin /home/admin/config.scripts/bonus.loop.sh on >> ${logFile} 2>&1
else
echo "Provisioning Lightning Loop - keep default" >> ${logFile}
fi
#BTC RPC EXPLORER
if [ "${BTCRPCexplorer}" = "on" ]; then
echo "Provisioning BTCRPCexplorer - run config script" >> ${logFile}
@ -594,15 +585,6 @@ else
echo "Provisioning Specter - keep default" >> ${logFile}
fi
# Faraday
if [ "${faraday}" = "on" ]; then
echo "Provisioning Faraday - run config script" >> ${logFile}
/home/admin/_cache.sh set message "Setup Faraday"
sudo -u admin /home/admin/config.scripts/bonus.faraday.sh on >> ${logFile} 2>&1
else
echo "Provisioning Faraday - keep default" >> ${logFile}
fi
# BOS
if [ "${bos}" = "on" ]; then
echo "Provisioning Balance of Satoshis - run config script" >> ${logFile}
@ -612,14 +594,14 @@ else
echo "Provisioning Balance of Satoshis - keep default" >> ${logFile}
fi
# LNPROXY
if [ "${lnproxy}" = "on" ]; then
echo "Provisioning lnproxy - run config script" >> ${logFile}
/home/admin/_cache.sh set message "Setup lnproxy"
sudo -u admin /home/admin/config.scripts/bonus.lnproxy.sh on >> ${logFile} 2>&1
else
echo "Provisioning lnproxy - keep default" >> ${logFile}
fi
## LNPROXY
#if [ "${lnproxy}" = "on" ]; then
# echo "Provisioning lnproxy - run config script" >> ${logFile}
# /home/admin/_cache.sh set message "Setup lnproxy"
# sudo -u admin /home/admin/config.scripts/bonus.lnproxy.sh on >> ${logFile} 2>&1
#else
# echo "Provisioning lnproxy - keep default" >> ${logFile}
#fi
# thunderhub
if [ "${thunderhub}" = "on" ]; then
@ -675,15 +657,6 @@ else
echo "Provisioning Stacking Sats Kraken - keep default" >> ${logFile}
fi
# Pool - install only if LiT won't be installed
if [ "${pool}" = "on" ] && [ "${lit}" != "on" ]; then
echo "Provisioning Pool - run config script" >> ${logFile}
/home/admin/_cache.sh set message "Setup Pool"
sudo -u admin /home/admin/config.scripts/bonus.pool.sh on >> ${logFile} 2>&1
else
echo "Provisioning Pool - keep default" >> ${logFile}
fi
# lit (make sure to be installed after RTL)
if [ "${lit}" = "on" ]; then
echo "Provisioning LIT - run config script" >> ${logFile}

View file

@ -36,7 +36,11 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
echo ""
# create user
sudo adduser --system --group --home /home/bitcoinminds bitcoinminds
USERNAME=bitcoinminds
echo "# add the user: ${USERNAME}"
sudo adduser --system --group --shell /bin/bash --home /home/${USERNAME} ${USERNAME}
echo "Copy the skeleton files for login"
sudo -u ${USERNAME} cp -r /etc/skel/. /home/${USERNAME}/
# add local directory to path and set PATH for the user
sudo bash -c "echo 'PATH=\$PATH:/home/bitcoinminds/.local/bin' >> /home/bitcoinminds/.profile"

View file

@ -4,7 +4,7 @@
# https://github.com/alexbosworth/balanceofsatoshis/blob/master/package.json#L85
# https://www.npmjs.com/package/balanceofsatoshis
BOSVERSION="15.8.14"
BOSVERSION="15.11.0"
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
@ -194,7 +194,11 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
/home/admin/config.scripts/bonus.nodejs.sh on
# create bos user
sudo adduser --system --group --home /home/bos bos
USERNAME=bos
echo "# add the user: ${USERNAME}"
sudo adduser --system --group --shell /bin/bash --home /home/${USERNAME} ${USERNAME}
echo "Copy the skeleton files for login"
sudo -u ${USERNAME} cp -r /etc/skel/. /home/${USERNAME}/
echo "# Create data folder on the disk"
# move old data if present
@ -211,10 +215,6 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
sudo -u bos npm config set prefix '/home/bos/.npm-global'
sudo bash -c "echo 'PATH=$PATH:/home/bos/.npm-global/bin' >> /home/bos/.bashrc"
# download source code
sudo -u bos git clone https://github.com/alexbosworth/balanceofsatoshis.git /home/bos/balanceofsatoshis
cd /home/bos/balanceofsatoshis
# make sure symlink to central app-data directory exists ***"
sudo rm -rf /home/bos/.lnd # not a symlink.. delete it silently
# create symlink

View file

@ -6,7 +6,7 @@
# https://github.com/openoms/joininbox
# https://github.com/openoms/joininbox/tags
JBTAG="v0.7.8" # installs JoinMarket v0.9.9
JBTAG="v0.8.1" # installs JoinMarket v0.9.10
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
@ -56,8 +56,11 @@ if [ "$1" = "install" ]; then
echo "# cleaning before install"
sudo userdel -rf joinmarket 2>/dev/null
echo "# add the 'joinmarket' user"
adduser --system --group --home /home/joinmarket joinmarket
USERNAME=joinmarket
echo "# add the user: ${USERNAME}"
sudo adduser --system --group --shell /bin/bash --home /home/${USERNAME} ${USERNAME}
echo "Copy the skeleton files for login"
sudo -u ${USERNAME} cp -r /etc/skel/. /home/${USERNAME}/
# add to sudo group (required for installation)
adduser joinmarket sudo || exit 1
@ -69,9 +72,6 @@ if [ "$1" = "install" ]; then
sudo -u joinmarket mkdir -p /home/joinmarket/.ssh
chmod -R 700 /home/joinmarket/.ssh
# install the command-line fuzzy finder (https://github.com/junegunn/fzf)
bash -c "echo 'source /usr/share/doc/fzf/examples/key-bindings.bash' >> /home/joinmarket/.bashrc"
echo "# adding JoininBox"
sudo rm -rf /home/joinmarket/joininbox
sudo -u joinmarket git clone https://github.com/openoms/joininbox.git /home/joinmarket/joininbox
@ -115,8 +115,7 @@ if [ "$1" = "install" ]; then
echo
# install a command-line fuzzy finder (https://github.com/junegunn/fzf)
apt -y install fzf
bash -c "echo 'source /usr/share/doc/fzf/examples/key-bindings.bash' >> \
/home/joinmarket/.bashrc"
echo 'source /usr/share/doc/fzf/examples/key-bindings.bash' | sudo -u joinmarket tee -a /home/joinmarket/.bashrc
# install tmux
apt -y install tmux

View file

@ -90,7 +90,11 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
if [ ${isInstalled} -eq 0 ]; then
# create dedicated user
sudo adduser --system --group --home /home/lit lit
USERNAME=lit
echo "# add the user: ${USERNAME}"
sudo adduser --system --group --shell /bin/bash --home /home/${USERNAME} ${USERNAME}
echo "Copy the skeleton files for login"
sudo -u ${USERNAME} cp -r /etc/skel/. /home/${USERNAME}/
# make sure symlink to central app-data directory exists
sudo rm -rf /home/lit/.lnd # not a symlink.. delete it silently
# create symlink

View file

@ -29,7 +29,12 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
echo "*** INSTALL pyblocks***"
# create pyblock user
sudo adduser --system --group --home /home/pyblock pyblock
USERNAME=pyblock
echo "# add the user: ${USERNAME}"
sudo adduser --system --group --shell /bin/bash --home /home/${USERNAME} ${USERNAME}
echo "Copy the skeleton files for login"
sudo -u ${USERNAME} cp -r /etc/skel/. /home/${USERNAME}/
cd /home/pyblock
sudo -u pyblock mkdir /home/pyblock/config

View file

@ -28,7 +28,10 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
/home/admin/config.scripts/bonus.nodejs.sh on
# add user
sudo adduser --system --group --home /home/$USERNAME $USERNAME
echo "# add the user: ${USERNAME}"
sudo adduser --system --group --shell /bin/bash --home /home/${USERNAME} ${USERNAME}
echo "Copy the skeleton files for login"
sudo -u ${USERNAME} cp -r /etc/skel/. /home/${USERNAME}/
# install stacking-sats-kraken
cd $HOME_DIR

View file

@ -161,7 +161,11 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
# BACKGROUND is here to seperate running apps by unix users
# and only give file write access to the rest of the system where needed.
echo "# create user"
sudo adduser --system --group --home /home/${APPID} ${APPID} || exit 1
# If the user is intended to be loeed in to add '--shell /bin/bash'
# and copy the skeleton files
sudo adduser --system --group --shell /bin/bash --home /home/${APPID} ${APPID} || exit 1
# copy the skeleton files for login
sudo -u ${APPID} cp -r /etc/skel/. /home/${APPID}/
# add user to special groups with special access rights
# BACKGROUND there are some unix groups available that will give the access to

View file

@ -2,7 +2,7 @@
# https://lightning.readthedocs.io/
# https://github.com/ElementsProject/lightning/releases
CLVERSION="v23.08"
CLVERSION="v23.08.1"
# install the latest master by using the last commit id
# https://github.com/ElementsProject/lightning/commit/master