chromium/remoting/host/linux/remoting_user_session_wrapper.sh

#!/bin/bash

# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This is a simple wrapper script around the remoting_user_session binary,
# intended only for development use. It is copied into a build
# subdirectory as
# $CHROMIUM_OUTPUT_DIR/remoting/user-session
# and runs the remoting_user_session binary from the same directory via sudo to
# allow testing without making remoting_user_session setuid root. The
# linux_me2me_host.py script is also copied into the remoting/ build directory,
# so it finds this user-session wrapper script in the same directory.

REMOTING_DIR="$(realpath "$(dirname "$0")")"

if [ -n "$DISPLAY" ]; then
  ELEVATE=pkexec
else
  ELEVATE=sudo
fi

PASSTHROUGH_VARIABLES=(
    "GOOGLE_CLIENT_ID_REMOTING" "GOOGLE_CLIENT_ID_REMOTING_HOST"
    "GOOGLE_CLIENT_SECRET_REMOTING" "GOOGLE_CLIENT_SECRET_REMOTING_HOST"
    "CHROME_REMOTE_DESKTOP_HOST_EXTRA_PARAMS")

ENVIRONMENT=("USER=${USER}" "LOGNAME=${LOGNAME}")
for var in "${PASSTHROUGH_VARIABLES[@]}"; do
  if [ -n "${!var+x}" ]; then
    ENVIRONMENT+=("${var}=${!var}")
  fi
done

# Simulate setuid
exec "$ELEVATE" python -c "
import os
import sys

os.chdir(sys.argv[1])
os.setreuid($(id -u), -1)
os.execvp('/usr/bin/env', ['/usr/bin/env'] + sys.argv[2:])" \
"${REMOTING_DIR}" "${ENVIRONMENT[@]}" \
"${REMOTING_DIR}/remoting_user_session" "$@"