Compare commits
2 Commits
fc6d9fff29
...
4c97cbb2e2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c97cbb2e2 | ||
|
|
179b895cac |
@ -1,5 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Resolves the system user that owns the Docker install — and therefore the
|
||||
# backup repos and container files. Rooted installs run as $sudo_user_name;
|
||||
# rootless installs use $CFG_DOCKER_INSTALL_USER. Falls back to $sudo_user_name
|
||||
# and finally 'libreportal' so the value is never empty: an empty user turns
|
||||
# `sudo -u "$docker_install_user"` into a sudo usage error. Reads only config,
|
||||
# so it is safe to call from any CLI entry point.
|
||||
resolveDockerInstallUser()
|
||||
{
|
||||
if [[ "$CFG_DOCKER_INSTALL_TYPE" == "rootless" ]]; then
|
||||
docker_install_user="$CFG_DOCKER_INSTALL_USER"
|
||||
else
|
||||
docker_install_user="$sudo_user_name"
|
||||
fi
|
||||
[[ -z "$docker_install_user" ]] && docker_install_user="$sudo_user_name"
|
||||
[[ -z "$docker_install_user" ]] && docker_install_user="libreportal"
|
||||
}
|
||||
|
||||
checkInstallTypeRequirement()
|
||||
{
|
||||
if [[ "$OS_TYPE" == "Ubuntu" || "$OS_TYPE" == "Debian" ]]; then
|
||||
@ -7,14 +24,12 @@ checkInstallTypeRequirement()
|
||||
ISUFW=$( (sudo ufw status ) 2>&1 )
|
||||
ISUFWD=$( (sudo ufw-docker) 2>&1 )
|
||||
|
||||
resolveDockerInstallUser
|
||||
|
||||
if [[ $CFG_DOCKER_INSTALL_TYPE == "rooted" ]]; then
|
||||
# Docker Type username
|
||||
docker_install_user="$sudo_user_name"
|
||||
# Used for checking if rooted docket is active
|
||||
ISACT=$( (sudo systemctl is-active docker ) 2>&1 )
|
||||
elif [[ $CFG_DOCKER_INSTALL_TYPE == "rootless" ]]; then
|
||||
# Docker Type username
|
||||
docker_install_user="$CFG_DOCKER_INSTALL_USER"
|
||||
# Used for checking the rootless user
|
||||
local ISUSER=$( (sudo id -u "$CFG_DOCKER_INSTALL_USER"))
|
||||
if [[ "$ISUSER" == *"no such user"* ]]; then
|
||||
|
||||
@ -4,6 +4,13 @@ cliInitialize()
|
||||
{
|
||||
cliUpdateCommands;
|
||||
|
||||
# Many commands shell out via `sudo -u "$docker_install_user"` (backup
|
||||
# engines, permission fixes, file copies). Resolve it up front so commands
|
||||
# run from the WebUI — e.g. `setup finalize`, `backup` — get a valid user
|
||||
# instead of an empty one. The app category still runs the fuller
|
||||
# checkInstallTypeRequirement below.
|
||||
resolveDockerInstallUser;
|
||||
|
||||
# Dynamic routing - auto-discover ALL categories!
|
||||
local category="$initial_command1"
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user