| Server IP : 81.2.241.106 / Your IP : 216.73.216.165 Web Server : Apache/2.4.67 (Debian) System : Linux tranq-f.bakta.org 5.10.0-45-amd64 #1 SMP Debian 5.10.259-1 (2026-07-02) x86_64 User : lisky ( 1002) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /proc/thread-self/root/usr/sbin/ |
Upload File : |
#!/bin/bash
if test -r /etc/su-to-rootrc; then
. /etc/su-to-rootrc
fi
if test -r ~/.su-to-rootrc; then
. ~/.su-to-rootrc
fi
PRIV=root
COMMAND=
NEEDS=text
gettext=$(which gettext 2>/dev/null)
transl() {
txt="$1";
shift;
if [ -n "$gettext" ]; then
txt="$(gettext su-to-root "$txt")";
fi
printf "$txt" "$@"
}
eshell() {
getent passwd $1 | cut -f7 -d:
}
usage () {
transl 'usage: %s [-X] [-p <user>] -c <command>
-c command: command to execute as a string (mandatory)
-p <user>: user to switch to (default: root)
-X: command is a X11 program\n' "$0" >&2
exit 1
}
for i in "$@"; do
case "$prev" in
-p)
PRIV="$i";;
-c)
COMMAND="$i";;
-X)
NEEDS="X11";;
esac
prev="$i"
done
if [ -z "$COMMAND" ] ; then
usage;
fi
euid=$(id -u)
privid=$(id -u $PRIV)
if test "$euid" = "$privid"; then
sh -c "$COMMAND"
else
case $NEEDS in
text)
if test "$euid" != 0; then
transl 'About to execute %s.\n' "$COMMAND"
transl 'This command needs %s privileges to be executed.\n' "$PRIV"
fi
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin
SHELL=`eshell $PRIV`
case $SU_TO_ROOT_SU in
sux) suname=sux; pwuser="$PRIV"; cmd='sux -p "$PRIV" "$COMMAND"';;
sudo) suname=sudo;pwuser="$USER"; cmd='sudo -u "$PRIV" sh -c "$COMMAND"';;
*) suname=su; pwuser="$PRIV"; cmd='su -p "$PRIV" -c "$COMMAND"';;
esac
transl 'Using %s...\n' "$suname"
transl 'Enter %s password at prompt.\n' "$pwuser"
yesexpr=$(locale yesexpr)
while ! eval $cmd; do
transl 'Incorrect password or command failed. Try again? (y/N)'
read ans
if echo "$ans" | perl -e "<> =~ /$yesexpr/ and exit(1);"; then
exit 1
fi
done;;
X11)
if test -z "$SU_TO_ROOT_X"; then
if which gksu >/dev/null 2>&1 ; then
SU_TO_ROOT_X=gksu
if test "X$KDE_FULL_SESSION" = "Xtrue" ; then
if which kdesu >/dev/null 2>&1 ; then
SU_TO_ROOT_X=kdesu
elif test -x /usr/lib/kde4/libexec/kdesu ; then
SU_TO_ROOT_X=kde4su
fi;
fi;
elif which kdesu >/dev/null 2>&1 ; then
SU_TO_ROOT_X=kdesu
elif test -x /usr/lib/kde4/libexec/kdesu ; then
SU_TO_ROOT_X=kde4su
elif which ktsuss >/dev/null 2>&1 ; then
SU_TO_ROOT_X=ktsuss
elif which sux >/dev/null 2>&1 ; then
SU_TO_ROOT_X=sux
else
SU_TO_ROOT_X=su-to-root
fi
fi
case $SU_TO_ROOT_X in
gksu) gksu -u "$PRIV" "$COMMAND";;
gksudo) gksudo -u "$PRIV" "$COMMAND";;
kdesu) kdesu -u "$PRIV" "$COMMAND";;
kdesudo) kdesudo -u "$PRIV" "$COMMAND";;
kde4su) /usr/lib/kde4/libexec/kdesu -u "$PRIV" "$COMMAND";;
ktsuss) ktsuss -u "$PRIV" "$COMMAND";;
sux) env SU_TO_ROOT_SU=sux \
x-terminal-emulator -e su-to-root -p "$PRIV" -c "$COMMAND";;
sudo-askpass) env SUDO_ASKPASS=/usr/bin/ssh-askpass \
sudo -u "$PRIV" --askpass sh -c "$COMMAND";;
# As a last resort, open a new x-terminal-emulator and prompt for the password
# Do not use -X here!
*) x-terminal-emulator -e su-to-root -p "$PRIV" -c "$COMMAND";;
esac;;
esac
fi