Como posso elevar os privilégios do nautilus para mover ou copiar uma pasta como raiz?

11

Digamos que eu tenha uma pasta aberta no Nautilus que esteja no meu /home/user/tempdiretório. Gostaria de mover uma pasta de lá para o meu /optdiretório (é um programa). Existe uma maneira de elevar o comando copy até um sudopara poder copiar a pasta sem precisar iniciar uma nova instância do Nautilus a partir da linha de comando?

jcollum
fonte

Respostas:

6

Tanto quanto posso dizer, com base no que sei e experimentei:

sudoé usado para aplicativos / comandos de linha de comando e gksudoé útil quando você tenta executar um programa usando a janela de diálogo Executar Aplicativo , pressionando Alt + F2.

Eu li que gksudoé apenas a versão gráfica do sudo.

De qualquer forma, você pode soltar sudo nautiluse / ou gksu nautilus em um terminal com a finalidade de fazer o que deseja, tendo o mesmo efeito nos dois comandos. Mas se você deseja omitir o terminal e deseja executá-lo diretamente com a janela de diálogo " Executar Aplicativo ", basta pressionar Alt + F2 e escrever gksu nautilus; após o qual você será solicitado a digitar sua senha, o navegador de arquivos nautilus será aberto com privilégios de root.

Além disso, você pode abrir arquivos / pastas como raiz com um único clique, usando a opção "Abrir como administrador" via clique direito. Que, em qualquer caso, abrirá uma nova instância do nautilus para a pasta especificada e abrirá arquivos como raiz. Isso também pode abrir / executar aplicativos como raiz, mas ainda não a testei.

insira a descrição da imagem aqui

Você pode obter a opção "Abrir como administração" no menu contextual instalando o nautilus-gksu via linha de comando: sudo apt-get install nautilus-gksuou usando o synaptic, como mostrado na próxima imagem:

insira a descrição da imagem aqui

Boa sorte!

Geppettvs D'Constanzo
fonte
Parece que tenho que adicionar algo para obter o comando "Abrir como". Você se lembra o que era? Estou em Ub 11.
jcollum
nautilus-gksu, via sináptica (imagem adicionada) ou linha de comando (também fornecida na resposta)
Geppettvs D'Constanzo
3
Aqui está o porquê de gksu nautilusnão usarmossudo : askubuntu.com/q/11760
Takkat
2
O nautilus-gksu mudou? Desaparecer? Não consigo encontrá-lo na USC ou no apt-get.
Jcollum
2
O @jcollum nautilus-gksunão existe mais no repositório a partir do Ubuntu 12.04.
IQAndreas
5

você precisa executar o Nautilus como root

digite isso no terminal

gksu nautilus

agora você pode se mover usando a GUI.

ou use este comando

sudo mv -r /home/user/temp/<foldername>/ /opt/
sarveshlad
fonte
1
Portanto, a resposta é "Você não pode sem reiniciar o Nautilus"?
jcollum
você não precisa reiniciar o nautilus, basta abrir outra instância com o comando gksu. Mas se você quer dizer "Nautilus aberta com meu usuário e privilégios de root, em seguida, tem nessa instância para arquivos de movimento" Talvez seja isso que você precisa upubuntu.com/2011/12/...
Zurdo
Você vai precisar para abrir uma nova janela do Nautilus, mas para tornar as coisas mais fáceis de copiar a localização do bar, e execute o comando: gksu nautilus "/path/to/dir/pasted/here"(as aspas ao redor do caminho são importantes)
IQAndreas
1

Aqui está o script nautilus que eu uso para abrir uma janela do administrador (root) 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 $?
Urhixidur
fonte
0

Outra solução interessante é lançar outra cópia do Nautilus com privilégios de root (sudo) em uma linha de comando:

gksudo xdg-open <path> &

O fechamento &significa que o comando é executado como um trabalho em segundo plano; daí o uso de gksudo(usar sudosignificaria um prompt invisível ao qual você não pode responder). xdg-opencuida de iniciar uma janela do explorer ( nautilusou outra).

Pode ser necessário instalar os pacotes xdg-utilse gksuantecipadamente.

Você pode obter um monte de avisos e Gtk-CRITICALe Glib-GObject-CRITICALmensagens ao fechar a janela Nautilus elevados, mas estes são inofensivos, tanto quanto eu posso dizer. Eu adoraria me livrar deles, se alguém souber como.

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

Em vez de [Filename], digite o nome do seu arquivo sem colchetes [].

Tyler
fonte
2
-1, não aborda a questão ... Não perguntei como usar o comando mv.
jcollum
3
Usar apenas um comando como raiz é conhecido como uma prática melhor do que abrir o Nautilus gráfico como raiz.
Agmenor
-2

Outra maneira fácil é

sudo gnome-open foldername

Ou eu recomendaria instalar o gerenciador de arquivos nemo. Ele tem 'aberto como raiz' no menu de contexto do botão direito

Jayadeep KM
fonte