dinosudo – alternativa CLI para executar aplicativos gráficos como root enquanto logado como
Publicado por Luís Fernando C. Cavalheiro (última atualização em 13/02/2018)
[ Hits: 2.932 ]
Uma alternativa puramente de linha de comando ao gksudo e ao kdesudo, o dinosudo permite que o usuário execute aplicativos gráficos como root enquanto logado como usuário comum.
#!/bin/bash # # dinosudo: allows normal user run graphical applications as root # # Copyright (C) 2018 Luís Fernando Carvalho Cavalheiro (dino at gnulinux dot net dot br) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # Version history # — 0.1 (20180213) # Script started. # # Set needed variables: VERSION='0.1 (20180213)' CURRENTUSER=$(whoami) ROOTDISPLAY=$DISPLAY # # Check if user supplied any argument to script if [ $# -eq 0 ] ; then echo "dinosudo requires an application to run as root!" exit 1 fi # # Check if user supplied more than one argument to script if [ $# -gt 1 ] ; then echo "You cannot run more than one application per dinosudo evocation!" exit 1 fi # # Check if user supplied -h or --help option and if yes print help screen if [ "$1" == "-h" -o "$1" == "--help" ] ; then cat << EOF dinosudo Copyright (C) 2018 Luís Fernando Carvalho Cavalheiro This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free software, and you are welcome to redistribute it under certain conditions; type 'show c' for details. dinosudo: allows normal use run graphical applications as root Version: $VERSION Usage $ dinosudo [ARG | -h | --help] Where: — ARG must be an application that is installed on your computer. You can run one and only one application for dinosudo instance. — -h or --help show this help. EOF exit 0 fi # # Check if command is installed on computer: if ! [ -x "$(command -v $1)" ] ; then echo "You cannot run an application that isn't installed in your computer!" >&2 exit 1 fi # # Running graphical application su --login -c "HOME=/root ; DISPLAY=$ROOTDISPLAY ; cp /home/$CURRENTUSER/.Xauthority /root/ ; $1"