forked from obel1x/fedora-OEMDRV
configure.sh: allow root and non-root execution
- install.sh: pre-create ks.cfg with o+w after permission setup so non-root users can overwrite it (OEMDRV root itself stays o=rX) - install.sh: restore su drop to $SUDO_USER when it is set and not root; fall back to direct root execution otherwise - configure.sh: remove the hard root check so both cases work - configure.md: update docs to reflect root/non-root support Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,11 +8,6 @@ SCRIPTDIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
CONF_DIST="${SCRIPTDIR}/config.dist/setup_system.conf.dist"
|
||||
CONF_FILE="${SCRIPTDIR}/../config.d/configure.conf"
|
||||
|
||||
if [[ "$EUID" -eq 0 ]]; then
|
||||
echo "ERROR: This script must not be run as root." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prompt for a single value; returns the old value unchanged if the user presses Enter.
|
||||
prompt_value() {
|
||||
local name="$1" current="$2" new_val
|
||||
|
||||
@@ -31,6 +31,11 @@ finish_install() {
|
||||
chmod ug=rwX,o=rX "$MOUNT_POINT" -R
|
||||
chmod o+w "$MOUNT_POINT/config" "$MOUNT_POINT/config.d"
|
||||
|
||||
# Create an empty ks.cfg at the OEMDRV root so non-root can overwrite it
|
||||
# with configure.sh (the OEMDRV root itself is not world-writable).
|
||||
touch "$MOUNT_POINT/ks.cfg"
|
||||
chmod o+w "$MOUNT_POINT/ks.cfg"
|
||||
|
||||
info "Done."
|
||||
echo
|
||||
echo " OEMDRV device : $dev"
|
||||
@@ -42,13 +47,12 @@ finish_install() {
|
||||
echo
|
||||
read -r -p "Run configure.sh now to set up your environment? [y/N]: " RUN_CONF
|
||||
if [[ "${RUN_CONF,,}" == "y" ]]; then
|
||||
if [[ -n "$SUDO_USER" ]]; then
|
||||
if [[ -n "$SUDO_USER" && "$SUDO_USER" != "root" ]]; then
|
||||
info "Running configure.sh as user '$SUDO_USER'..."
|
||||
su - "$SUDO_USER" -c "DISPLAY='${DISPLAY}' WAYLAND_DISPLAY='${WAYLAND_DISPLAY}' bash '$CONF_SCRIPT'"
|
||||
else
|
||||
echo
|
||||
echo "configure.sh must be run as a non-root user. Please run:"
|
||||
echo " bash $CONF_SCRIPT"
|
||||
info "Running configure.sh as root..."
|
||||
bash "$CONF_SCRIPT"
|
||||
fi
|
||||
else
|
||||
echo
|
||||
|
||||
Reference in New Issue
Block a user