Як я можу підвищити привілеї nautilus для переміщення чи копіювання папки як root?


11

Скажіть, у мене в "Наутілусі" відкрита папка, що в моєму /home/user/tempкаталозі. Я хотів би перемістити папку звідти до свого /optкаталогу (це програма). Чи є спосіб я збільшити команду копіювання до sudoтакої, щоб я міг скопіювати папку, не запускаючи новий екземпляр Nautilus з командного рядка?

Відповіді:


6

Наскільки я можу сказати, виходячи з того, що я знаю і пережив:

sudoвикористовується для програм / команд командного рядка і gksudoє корисним при спробі запуску програми за допомогою діалогового вікна Запустити додаток , натиснувши Alt + F2.

Я читав, що gksudoце лише графічна версія sudo.

У будь-якому випадку, ви можете як впустити, так sudo nautilusі / або gksu nautilus в термінал, щоб зробити те, що вам завгодно, маючи однаковий ефект на обидва команди. Але якщо ви хочете опустити термінал і хочете запустити його безпосередньо у діалоговому вікні " Запустити додаток ", просто натисніть Alt + F2 і напишіть gksu nautilus, після чого вам буде запропоновано ввести свій пароль, тоді відкриється браузер файлу nautilus. з кореневими привілеями.

Крім того, ви можете домогтися відкриття файлів / папок як корінь одним клацанням миші, скориставшись опцією "Відкрити як адміністратор" правою кнопкою миші. Який у будь-якому випадку відкриє новий екземпляр nautilus для даної папки і відкриє файли як root, це також може відкривати / запускати програми як root, але я ще не перевіряв його.

введіть тут опис зображення

Ви можете отримати опцію "Відкрити як адміністрування" у контекстному меню, встановивши nautilus-gksu за допомогою командного рядка: sudo apt-get install nautilus-gksuабо за допомогою синаптики, як показано на наступному зображенні:

введіть тут опис зображення

Удачі!


Схоже, мені потрібно щось додати, щоб отримати команду "Відкрити як". Пригадуєте, що це було? Я в Ub 11.
jcollum

nautilus-gksu, через синаптичний (додано зображення) або командний рядок (також надається у відповіді)
Geppettvs D'Constanzo

3
Ось чому ми повинні використовувати gksu nautilusНЕ sudo: askubuntu.com/q/11760
Takkat

2
Чи рухався nautilus-gksu? Зникнути? Я не можу його знайти в USC або apt-get.
jcollum

2
@jcollum nautilus-gksuбільше не існує у сховищі з Ubuntu 12.04.
IQAndreas

5

вам потрібно запустити Nautilus як root

наберіть це в терміналі

gksu nautilus

тепер ви можете рухатися за допомогою GUI.

або використовувати цю команду

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

1
Отже, відповідь "Ви не можете без перезавантаження Nautilus"?
jcollum

вам не потрібно перезавантажувати nautilus, просто відкрийте інший екземпляр за допомогою команди gksu. Але якщо ви маєте на увазі "відкрити nautilus з моїм користувачем, а потім отримати кореневі привілеї в цьому випадку для переміщення файлів", можливо, це вам потрібно upubuntu.com/2011/12/…
zurdo

Вам потрібно буде відкрити нове вікно nautilus, але щоб полегшити процес, скопіюйте розташування з панелі та запустіть команду: gksu nautilus "/path/to/dir/pasted/here"(цитати навколо шляху важливі)
IQAndreas

1

Ось nautilus-скрипт, який я використовую для відкриття адміністратора (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 $?

0

Ще одне рішення денді - запустити ще одну копію Nautilus з привілеями root (sudo) з командного рядка:

gksudo xdg-open <path> &

Закриття &означає, що команда працює як фонове завдання; отже, використання gksudo(використання sudoозначатиме невидимий запит, на який ви не можете відповісти). xdg-openпіклується про запуск вікна провідника ( nautilusчи іншого).

Можливо, вам потрібно буде заздалегідь встановити пакети xdg-utilsта gksuпакети.

Ви можете отримати купу попереджень та Gtk-CRITICALй Glib-GObject-CRITICALповідомлень при закритті підвищеної Nautilus вікна, але вони нешкідливі, наскільки я можу судити. Я хотів би позбутися їх, якщо хтось знає як.


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

Замість цього [Filename]введіть ім’я файлу без дужок [].


2
-1, не стосується питання ... Я не запитував, як використовувати команду mv.
jcollum

3
Використання лише однієї команди як root відома як краща практика, ніж відкриття графічного Nautilus як root.
Агменор

-2

Ще один простий спосіб

sudo gnome-open foldername

Або я б рекомендував встановити файловий менеджер Nemo. У контекстному меню правого клацання він відкривається як корінь

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.