¿Cómo puedo elevar los privilegios de nautilus para mover o copiar una carpeta como root?


11

Digamos que tengo una carpeta abierta en Nautilus que está en mi /home/user/tempdirectorio. Me gustaría mover una carpeta desde allí a mi /optdirectorio (es un programa). ¿Hay alguna manera de elevar el comando de copia a una sudopara poder copiar la carpeta sin tener que iniciar una nueva instancia de Nautilus desde la línea de comandos?

Respuestas:


6

Hasta donde puedo decir, basado en lo que sé y he experimentado:

sudose usa para aplicaciones / comandos de línea de comandos y gksudoes útil cuando intenta ejecutar un programa utilizando la ventana de diálogo Ejecutar aplicación presionando Alt + F2.

He leído que gksudoes solo la versión gráfica de sudo.

De todos modos, puede soltar sudo nautilusy / o gksu nautilus en un terminal con el fin de hacer lo que desee, teniendo el mismo efecto en ambos comandos. Pero si desea omitir el terminal y desea ejecutarlo directamente con la ventana de diálogo " Ejecutar aplicación ", simplemente presione Alt + F2 y escriba gksu nautilus, después de lo cual se le pedirá que ingrese su contraseña, luego se abrirá el navegador de archivos nautilus con privilegios de root.

Además, puede lograr abrir archivos / carpetas como root con un solo clic utilizando la opción "Abrir como administrador" haciendo clic derecho. Lo que en cualquier caso abrirá una nueva instancia de nautilus para la carpeta dada y abrirá archivos como root, esto también puede abrir / ejecutar aplicaciones como root pero aún no lo he probado.

ingrese la descripción de la imagen aquí

Puede obtener la opción "Abrir como administración" en su menú contextual instalando nautilus-gksu a través de la línea de comandos: sudo apt-get install nautilus-gksuo usando synaptic como se muestra en la siguiente imagen:

ingrese la descripción de la imagen aquí

¡Buena suerte!


Parece que tengo que agregar algo para obtener el comando "Abrir como". ¿Recuerdas lo que era? Estoy en Ub 11.
jcollum

nautilus-gksu, a través de sináptica (imagen agregada) o línea de comando (también proporcionada en la respuesta)
Geppettvs D'Constanzo

3
Aquí es por eso que debemos usar gksu nautilusno sudo: askubuntu.com/q/11760
Takkat

2
¿Se movió nautilus-gksu? ¿Desaparecer? No puedo encontrarlo en USC o apt-get.
jcollum

2
@jcollum nautilus-gksuya no existe en el repositorio a partir de Ubuntu 12.04.
IQAndreas

5

necesitas ejecutar Nautilus como root

escribe esto en la terminal

gksu nautilus

ahora puedes moverte usando la GUI.

o usa este comando

sudo mv -r /home/user/temp/<foldername>/ /opt/

1
¿Entonces la respuesta es "No puedes sin reiniciar Nautilus"?
jcollum

no necesita reiniciar nautilus, solo abra otra instancia con el comando gksu. Pero si quiere decir "abrir nautilus con mi usuario y luego obtener privilegios de root en esa instancia para mover archivos", tal vez eso es lo que necesita upubuntu.com/2011/12/…
zurdo

Deberá abrir una nueva ventana de nautilus, pero para facilitar las cosas copie la ubicación desde la barra y ejecute el comando: gksu nautilus "/path/to/dir/pasted/here"(las comillas alrededor de la ruta son importantes)
IQAndreas

1

Aquí está el script nautilus que uso para abrir una ventana de administrador (raíz) Nautilus:

#!/bin/bash
# This Nautilus script opens the current nautilus window in admin mode.
# Requires: perl, liburi-perl

ERROR_NEED_PERL="This script requires the liburi-perl package. Install it and try again."
GKSUDO_MESSAGE="Enter your password to open an admin window on: "
ERROR_BROKEN_LINK="Broken link."

## Check for liburi-perl (and hence perl)
let PERLOK=$(dpkg-query -W --showformat='${Status}\n' liburi-perl|grep "install ok installed")
if [ "" == "$PERLOK" ]; then
   zenity --error --text "$ERROR_NEED_PERL"
   exit 1
fi

let LEN_NSSFP=${#NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}-1
[ $LEN_NSSFP -lt 0 ] && let LEN_NSSFP=0
let LEN_NSSU=${#NAUTILUS_SCRIPT_SELECTED_URIS}-1
[ $LEN_NSSU -lt 0 ] && let LEN_NSSU=0

## if clicking happens on the Desktop (or a file or folder on it),
## $1 will be a path (i.e. with "/" in it); otherwise (in a folder
## window) $1 will be just a file or folder name (without path).
## Note that selecting the home desktop namespace extension yields
## a $# of zero but NAUTILUS_SCRIPT_SELECTED_FILE_PATHS pointing to the
## target (in the computer (computer:///) and trash (trash:///) desktop
## namespace extension cases, ...PATHS is empty).

## Initially, we stripped the file:// prefix from NAUTILUS...CURRENT_URI,
## yielding the full path, and then retrofit spaces, like this:
#OBJECT="`echo -n $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"
## However, this fails if any special characters other than spaces are in the path,
## such as accented letters, etc. We need to convert not just spaces, but any
## UTF-8 embedded in there...The URI<->path conversion requires perl (and liburi-perl):
OBJECT=$( echo "$NAUTILUS_SCRIPT_CURRENT_URI" | perl -MURI -le 'print URI->new(<>)->dir' )
## ->file is to be used for file URIs instead of ->dir, which is for directory URIs

CONTEXT="$OBJECT"
## Add the selection to the path, if defined and unique
if [ $# -eq 1 ] ; then
   ## If a single Desktop object, override
   if echo $1 | grep -q "/" ; then ## Desktop (or object on desktop)
      OBJECT="$1"
      CONTEXT=""
   else ## $1 is a simple file or folder name, without a path
      ## The container could be root (/)
      OBJECT="${OBJECT%/}/$1"
   fi
# elif [ $# -eq 0 -a -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ] ; then
elif [ $# -eq 0 ] ; then
   ## desktop name space extension selected?
   if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ] ; then ## Home
      OBJECT="${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS:0:LEN_NSSFP}"
   elif [ -n "$NAUTILUS_SCRIPT_SELECTED_URIS" ] ; then ## Computer, Trash
      ## These typically map to root (/)
#     OBJECT="`echo ${NAUTILUS_SCRIPT_SELECTED_URIS:0:LEN_NSSU} | cut -d'/' -f3- | sed 's/%20/ /g'`"
      OBJECT="${NAUTILUS_SCRIPT_SELECTED_URIS:0:LEN_NSSU}"
      OBJECT=$( echo "$OBJECT" | perl -MURI -le 'print URI->new(<>)->dir' )
   fi
   CONTEXT=""
fi
## Note that a desktop shortcut (.desktop file) does not trip -h
if [ -h "$OBJECT" ] ; then ## symbolic link
   ## readlink has no "follow symlinks as far as they exist" option
   OBJECT=`readlink -e "$OBJECT"`
   if [ -z "$OBJECT" ] ; then
      zenity --error --text "$ERROR_BROKEN_LINK"
      exit 1
   fi
fi

# zenity --info --text "\$OBJECT is « $OBJECT »"
if [ -f "$OBJECT" ] ; then
   ## Regular file
   DIR=`dirname "$OBJECT"`
else
   ## Directory (or no object)
   DIR="$OBJECT"
fi

## If DIR is empty, gnome-open opens in the default (home) directory (i.e. "~") anyway
#if [ -z "$DIR" ] ; then
#   DIR=~
#fi

## At this point, the test [ ! "$CONTEXT" = "$DIR" ] serves to indicate
## that the target directory is not matched to the one the script was
## invoked from (if any).

gksudo --message "$GKSUDO_MESSAGE$DIR" gnome-open "$DIR"

exit $?

0

Otra solución excelente es lanzar otra copia de Nautilus con privilegios de root (sudo) desde una línea de comandos:

gksudo xdg-open <path> &

El cierre &significa que el comando se ejecuta como un trabajo en segundo plano; de ahí el uso de gksudo(usar sudosignificaría un aviso invisible al que no puede responder). xdg-opense encarga de iniciar una ventana del explorador ( nautilusu otra).

Es posible que deba instalar los paquetes xdg-utilsy de gksuantemano.

Usted puede obtener un montón de advertencias e Gtk-CRITICALy Glib-GObject-CRITICALmensajes al cerrar la ventana de Nautilus elevado, pero estos son inofensivos por lo que yo puedo decir. Me encantaría deshacerme de ellos, si alguien sabe cómo.


-1
sudo mv /home/user/temp/[Filename] /opt

En lugar de [Filename], escriba el nombre de su archivo sin corchetes [].


2
-1, no aborda la pregunta ... No pregunté cómo usar el comando mv.
jcollum

3
Usar solo un comando como root se conoce como una mejor práctica que abrir Nautilus gráfico como root.
Agmenor

-2

Otra forma fácil es

sudo gnome-open foldername

O recomendaría instalar nemo file manager. Tiene 'abrir como root' en su menú contextual de clic derecho

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.