File opera.sh of Package opera
#!/bin/bash
# Authors:
# Sorokin Alexei <sor.alexei@meowr.ru>
# Fabien Tassin <fta@sofaraway.org>
# License: GPLv2+
APPNAME="opera"
LIBDIR="/usr/lib64/$APPNAME"
SANDBOX_APP="$LIBDIR/${APPNAME}_sandbox"
# Allow users to override command-line options.
# Based on Gentoo's chromium package (and by extension, Debian's).
if [ -r "/etc/default/$APPNAME" ]; then
. "/etc/default/$APPNAME"
fi
# Prefer user defined OPERA_USER_FLAGS (from env) over system
# default OPERA_FLAGS (from /etc/default/opera).
OPERA_FLAGS="${OPERA_USER_FLAGS:-$OPERA_FLAGS}"
# Check if sandbox binary has setuid.
if ( grep -qE '^.r.sr..r.. . 0 0' <<< "$(ls -n "$SANDBOX_APP")" ); then
SETUID_SANDBOX_SET=1
else
SETUID_SANDBOX_SET=
fi
# Enable SUID sandboxing for those who wish.
if [ -n "$SETUID_SANDBOX_SET" ] || [[ "$OPERA_FLAGS" =~ '--enable-setuid-sandbox' ]]; then
OPERA_FLAGS=$(echo "$OPERA_FLAGS" | sed -e 's/--enable-setuid-sandbox//g')
if [ -z "$SETUID_SANDBOX_SET" ]; then
if ( ! xdg-su -c "chmod 4755 "$SANDBOX_APP"" &> /dev/null ); then
echo "Permission granting failed, falling back to disabled SUID sanboxing." >&2
OPERA_FLAGS="$OPERA_FLAGS --disable-setuid-sandbox"
fi
fi
else
OPERA_FLAGS="$OPERA_FLAGS --disable-setuid-sandbox"
fi
exec "$LIBDIR/$APPNAME" $SANDBOX $CHROMIUM_FLAGS $OPERA_FLAGS "$@"