Wie kann ich die Nautilus-Berechtigungen erhöhen, um einen Ordner als Root zu verschieben oder zu kopieren?

11

Angenommen, ich habe einen Ordner in Nautilus geöffnet, der sich in meinem /home/user/tempVerzeichnis befindet. Ich möchte einen Ordner von dort in mein /optVerzeichnis verschieben (es ist ein Programm). Gibt es eine Möglichkeit, den Kopierbefehl auf a zu erhöhen, sudodamit ich den Ordner kopieren kann, ohne eine neue Instanz von Nautilus über die Befehlszeile starten zu müssen?

jcollum
quelle

Antworten:

6

Soweit ich sagen kann, basierend auf dem, was ich weiß und erlebt habe:

sudowird für Kommandozeilen - Applikationen / Befehle verwendet und gksudoist nützlich , wenn Sie versuchen , ein Programm mit dem ausführen Anwendung ausführen Dialogfenster durch Drücken von Alt + F2.

Ich habe gelesen, dass dies gksudonur die grafische Version von ist sudo.

Auf jeden Fall können Sie sowohl ablegen sudo nautilusals auch gksu nautilus in einem Terminal ablegen, um das zu tun, was Sie möchten, und beide Befehle haben den gleichen Effekt. Wenn Sie das Terminal jedoch weglassen und es direkt im Dialogfeld " Anwendung ausführen" ausführen möchten , drücken Sie einfach Alt + F2 und schreiben gksu nautilusSie. Anschließend werden Sie aufgefordert, Ihr Kennwort einzugeben. Anschließend wird der Nautilus-Dateibrowser geöffnet mit Root-Rechten.

Darüber hinaus können Sie Dateien / Ordner mit einem einzigen Klick als Root öffnen, indem Sie die Option "Als Administrator öffnen" per Rechtsklick verwenden. In jedem Fall wird eine neue Nautilus-Instanz für den angegebenen Ordner geöffnet und Dateien als Root geöffnet. Dies kann auch Anwendungen als Root öffnen / ausführen, aber ich habe sie noch nicht getestet.

Geben Sie hier die Bildbeschreibung ein

Sie können die Option "Als Administration öffnen" in Ihrem Kontextmenü erhalten, indem Sie nautilus-gksu über die Befehlszeile installieren: sudo apt-get install nautilus-gksuoder indem Sie synaptic verwenden, wie im nächsten Bild gezeigt:

Geben Sie hier die Bildbeschreibung ein

Viel Glück!

Geppettvs D'Constanzo
quelle
Es sieht so aus, als müsste ich etwas hinzufügen, um den Befehl "Öffnen als" zu erhalten. Erinnerst du dich, was es war? Ich bin in Ub 11.
JCollum
nautilus-gksu, über synaptische (Bild hinzugefügt) oder Befehlszeile (auch in der Antwort angegeben)
Geppettvs D'Constanzo
3
Hier ist der Grund sollten wir verwenden gksu nautilusnicht sudo: askubuntu.com/q/11760
Takkat
2
Hat sich Nautilus-Gksu bewegt? Verschwinden? Ich kann es nicht in USC oder apt-get finden.
JCollum
2
@jcollum ist ab nautilus-gksuUbuntu 12.04 nicht mehr im Repository vorhanden.
IQAndreas
5

Sie müssen Nautilus als root ausführen

Geben Sie dies in das Terminal ein

gksu nautilus

Jetzt können Sie sich über die GUI bewegen.

oder verwenden Sie diesen Befehl

sudo mv -r /home/user/temp/<foldername>/ /opt/
Sarveshlad
quelle
1
Die Antwort lautet also "Sie können nicht, ohne Nautilus neu zu starten"?
JCollum
Sie müssen nautilus nicht neu starten, sondern öffnen einfach eine andere Instanz mit dem Befehl gksu. Aber wenn Sie "Nautilus mit meinem Benutzer öffnen und dann in dieser Instanz Root-Berechtigungen zum Verschieben von Dateien erhalten" meinen,
möglicherweise
Sie müssen ein neues Nautilus-Fenster öffnen, aber gksu nautilus "/path/to/dir/pasted/here"um die
Arbeit zu
1

Hier ist das Nautilus-Skript, mit dem ich ein Admin (Root) Nautilus-Fenster öffne:

#!/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
quelle
0

Eine andere Dandy-Lösung besteht darin, eine weitere Kopie von Nautilus mit Root-Berechtigungen (Sudo) über eine Befehlszeile zu starten:

gksudo xdg-open <path> &

Das Schließen &bedeutet, dass der Befehl als Hintergrundjob ausgeführt wird. Daher würde die Verwendung von gksudo(using sudoeine unsichtbare Eingabeaufforderung bedeuten, auf die Sie nicht antworten können). xdg-openkümmert sich um das Starten eines Explorer-Fensters ( nautilusoder eines anderen).

Möglicherweise müssen Sie die Pakete xdg-utilsund im gksuVoraus installieren .

Sie können eine Reihe von Warnungen erhalten und Gtk-CRITICALund Glib-GObject-CRITICALNachrichten auf die erhöhten Nautilus - Fenster schließen, aber diese sind harmlos, soweit ich das beurteilen kann. Ich würde sie gerne loswerden, wenn jemand weiß wie.

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

Geben Sie stattdessen [Filename]den Namen Ihrer Datei ohne Klammern ein [].

Tyler
quelle
2
-1, geht nicht auf Frage ein ... Ich habe nicht gefragt, wie man den Befehl mv verwendet.
JCollum
3
Die Verwendung nur eines Befehls als root wird als bessere Methode bezeichnet als das Öffnen des grafischen Nautilus als root.
Agmenor
-2

Ein anderer einfacher Weg ist

sudo gnome-open foldername

Oder ich würde empfehlen, den nemo-Dateimanager zu installieren. Das Kontextmenü mit der rechten Maustaste enthält "Als Stamm öffnen"

Jayadeep KM
quelle