Bagaimana saya bisa meningkatkan hak nautilus untuk memindahkan atau menyalin folder sebagai root?

11

Katakanlah saya memiliki folder terbuka di Nautilus yang ada di /home/user/tempdirektori saya . Saya ingin memindahkan folder dari sana ke /optdirektori saya (ini sebuah program). Apakah ada cara saya dapat meningkatkan perintah salin ke sudosehingga saya dapat menyalin folder tanpa harus memulai contoh baru Nautilus dari baris perintah?

jcollum
sumber

Jawaban:

6

Sejauh yang bisa saya katakan, berdasarkan apa yang saya ketahui dan alami:

sudodigunakan untuk aplikasi baris perintah / perintah dan gksudoberguna ketika Anda mencoba menjalankan program menggunakan jendela dialog Aplikasi Jalankan dengan menekan Alt + F2.

Saya telah membaca bahwa gksudoitu hanyalah versi grafis dari sudo.

Bagaimanapun, Anda dapat drop sudo nautilusdan / atau gksu nautilus di terminal untuk tujuan melakukan apa yang Anda inginkan, memiliki efek yang sama untuk kedua perintah. Tetapi jika Anda ingin menghilangkan terminal dan Anda ingin menjalankannya langsung dengan jendela dialog " Jalankan Aplikasi ", cukup tekan Alt + F2 dan tulis gksu nautilus, setelah itu Anda akan diminta untuk memasukkan kata sandi Anda, maka browser file nautilus akan terbuka dengan hak akses root.

Selain itu, Anda dapat membuka file / folder sebagai root dengan satu klik dengan menggunakan opsi "Buka sebagai Administrator" melalui klik kanan. Yang mana pun akan membuka instance nautilus baru untuk folder yang diberikan dan akan membuka file sebagai root, ini juga dapat membuka / menjalankan aplikasi sebagai root tetapi saya belum mengujinya.

masukkan deskripsi gambar di sini

Anda bisa mendapatkan opsi "Buka sebagai Administrasi" di menu kontekstual Anda dengan menginstal nautilus-gksu melalui baris perintah: sudo apt-get install nautilus-gksuatau dengan menggunakan sinaptik seperti yang ditunjukkan pada gambar berikutnya:

masukkan deskripsi gambar di sini

Semoga berhasil!

Geppettvs D'Constanzo
sumber
Sepertinya saya harus menambahkan sesuatu untuk mendapatkan perintah "Buka sebagai". Apakah Anda ingat apa itu? Saya di Ub 11.
jcollum
nautilus-gksu, via sinaptik (gambar ditambahkan) atau baris perintah (juga disediakan dalam jawaban)
Geppettvs D'Constanzo
3
Inilah mengapa kita sebaiknya gksu nautilustidak menggunakan sudo: askubuntu.com/q/11760
Takkat
2
Apakah nautilus-gksu bergerak? Menghilang? Saya tidak dapat menemukannya di USC atau apt-get.
jcollum
2
@jcollum nautilus-gksutidak ada lagi di repositori pada Ubuntu 12.04.
IQAndreas
5

Anda perlu menjalankan Nautilus sebagai root

ketik ini di terminal

gksu nautilus

sekarang Anda dapat pindah menggunakan GUI.

atau gunakan perintah ini

sudo mv -r /home/user/temp/<foldername>/ /opt/
sarveshlad
sumber
1
Jadi jawabannya adalah "Anda tidak bisa tanpa memulai ulang Nautilus"?
jcollum
Anda tidak perlu me-restart nautilus, cukup buka instance lain dengan perintah gksu. Tetapi jika yang Anda maksudkan "buka nautilus dengan pengguna saya dan kemudian dapatkan hak akses root dalam hal itu untuk memindahkan file" mungkin itulah yang Anda butuhkan upubuntu.com/2011/12/...
zurdo
Anda perlu membuka jendela nautilus baru, tetapi untuk mempermudah Anda menyalin lokasi dari bilah, dan menjalankan perintah: gksu nautilus "/path/to/dir/pasted/here"(tanda kutip di sekitar jalur itu penting)
IQAndreas
1

Inilah skrip nautilus yang saya gunakan untuk membuka jendela admin (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
sumber
0

Solusi keren lainnya adalah meluncurkan salinan Nautilus lainnya dengan hak akses root (sudo) dari baris perintah:

gksudo xdg-open <path> &

Penutupan &berarti perintah dijalankan sebagai pekerjaan latar belakang; karenanya penggunaan gksudo(menggunakan sudoberarti prompt yang tidak terlihat yang tidak dapat Anda tanggapi). xdg-openmengurus peluncuran jendela explorer ( nautilusatau lainnya).

Anda mungkin perlu menginstal xdg-utilsdan gksupaket sebelumnya.

Anda mungkin mendapatkan banyak peringatan dan Gtk-CRITICALdan Glib-GObject-CRITICALpesan setelah menutup jendela Nautilus ditinggikan, tetapi ini tidak berbahaya sejauh yang saya tahu. Saya ingin menyingkirkan mereka, jika ada yang tahu caranya.

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

Alih-alih [Filename], ketikkan nama file Anda tanpa tanda kurung [].

Tyler
sumber
2
-1, tidak menjawab pertanyaan ... Saya tidak bertanya bagaimana menggunakan perintah mv.
jcollum
3
Menggunakan hanya satu perintah sebagai root dikenal sebagai praktik yang lebih baik daripada membuka Nautilus sebagai root.
Agmenor
-2

Cara mudah lainnya adalah

sudo gnome-open foldername

Atau saya akan merekomendasikan menginstal file manager nemo. Memiliki 'open as root' di menu konteks klik kanan

Jayadeep KM
sumber