Как я могу повысить привилегии nautilus для перемещения или копирования папки с правами root?

Скажем, у меня есть папка, открытая в Nautilus, которая находится в моем каталоге /home/user/temp. Я хотел бы переместить папку оттуда в мой каталог /opt (это программа). Есть ли способ поднять команду копирования до sudo, чтобы я мог скопировать папку без необходимости запуска нового экземпляра Nautilus из командной строки?

11
задан 25 January 2012 в 23:42

8 ответов

Насколько я могу судить, основываясь на том, что я знаю и испытал:

sudo используется для приложений / команд командной строки, а gksudo полезно при попытке запустить программу используя диалоговое окно «Запустить приложение», нажав Alt + F2.

Я прочитал, что gksudo является только графической версией sudo.

В любом случае вы можете как отбросить sudo nautilus, так и / или gksu nautilus Run Приложение для того, чтобы делать то, что вы хотите, имея тот же эффект, что и обе команды. Но если вы хотите опустить терминал и хотите запустить его непосредственно с диалоговым окном «Запустить приложение», просто нажмите Alt + F2 и напишите gksu nautilus, после чего вам будет предложено ввести пароль, затем файл nautilus браузер будет открыт с привилегиями root.

Кроме того, вы можете открывать файлы / папки как root одним щелчком мыши, используя опцию «Открыть как администратор», щелкнув правой кнопкой мыши. Который в любом случае откроет новый экземпляр nautilus для данной папки и откроет файлы как root, это также может открывать / запускать приложения с правами root, но я еще не тестировал их.

Вы можете получить опцию «Открыть как администрирование» в своем контекстном меню, установив nautilus-gksu через командную строку: sudo apt-get install nautilus-gksu или с помощью синаптики, как показано на следующем рисунке:

enter image description here

Удачи!

6
ответ дан 25 May 2018 в 14:52
  • 1
    Похоже, я должен добавить что-то, чтобы получить «Открыть как». команда. Вы помните, что это было? Я в Ub 11. – jcollum 26 January 2012 в 00:53
  • 2
    nautilus-gksu, через синаптический (добавленный образ) или командную строку (также предоставленную в ответе) – Geppettvs D'Constanzo 26 January 2012 в 01:13
  • 3
    Вот почему мы должны использовать gksu nautilus not sudo: askubuntu.com/q/11760 – Takkat 26 January 2012 в 02:03
  • 4
    Двинулся ли наутилус-гексу? Исчезают? Я не могу найти его в USC или apt-get. – jcollum 26 April 2013 в 01:40
  • 5
    @jcollum nautilus-gksu больше не существует в репозитории с Ubuntu 12.04. – IQAndreas 15 July 2013 в 07:08

Насколько я могу судить, основываясь на том, что я знаю и испытал:

sudo используется для приложений / команд для командной строки, а gksudo полезна при попытке запустить программу используя диалоговое окно «Запустить приложение», нажав Alt + F2.

Я прочитал, что gksudo является только графической версией sudo.

В любом случае вы можете как sudo nautilus, так и / или f6] терминал для того, чтобы делать то, что вы хотите, имея тот же эффект, что и обе команды. Но если вы хотите опустить терминал и хотите запустить его непосредственно с диалоговым окном «Запустить приложение», просто нажмите Alt + F2 и напишите gksu nautilus, после чего вам будет предложено ввести пароль, затем файл nautilus браузер будет открыт с привилегиями root.

Кроме того, вы можете открывать файлы / папки как root одним щелчком мыши, используя параметр «Открыть как администратор», щелкнув правой кнопкой мыши. Что в любом случае откроет новый экземпляр nautilus для данной папки и откроет файлы с правами root, это также может открывать / запускать приложения с правами root, но я еще не тестировал его.

enter image description here [/g1]

Вы можете получить опцию «Открыть как администрирование» в своем контекстном меню, установив nautilus-gksu через командную строку: sudo apt-get install nautilus-gksu или используя синаптический режим, как показано на следующем изображении:

enter image description here [/g2]

Удачи!

6
ответ дан 31 July 2018 в 10:48

вам нужно запустить Nautilus как root

, введите это в терминале

gksu nautilus

, теперь вы можете перемещаться с помощью GUI.

или использовать это команда

sudo mv -r /home/user/temp/<foldername>/ /opt/
5
ответ дан 25 May 2018 в 14:52
  • 1
    Таким образом, ответ «Вы не можете без перезапуска Nautilus»? – jcollum 26 January 2012 в 00:30
  • 2
    вам не нужно перезапускать nautilus, просто откройте другой экземпляр командой gksu. Но если вы имеете в виду «открыть наутилус с моим пользователем, а затем получили привилегии root в этом экземпляре для перемещения файлов», возможно, это то, что вам нужно upubuntu.com/2011/12/… – zurdo 26 January 2012 в 00:46
  • 3
    Вам нужно будет открыть новое окно nautilus, но чтобы облегчить вам копирование местоположения из панели и выполните команду: gksu nautilus "/path/to/dir/pasted/here" (важны кавычки вокруг пути) – IQAndreas 15 July 2013 в 07:07

Вот сценарий 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 $?
1
ответ дан 25 May 2018 в 14:52

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

gksudo xdg-open <path> &

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

Возможно, вам потребуется установить пакеты xdg-utils и gksu заранее.

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

0
ответ дан 25 May 2018 в 14:52
sudo mv /home/user/temp/[Filename] /opt

Вместо [Filename] введите имя файла без скобок [].

-1
ответ дан 25 May 2018 в 14:52
  • 1
    -1, не решает вопроса ... Я не спрашивал, как использовать команду mv. – jcollum 26 January 2012 в 00:31
  • 2
    Использование только одной команды в качестве корня называется лучшей практикой, чем открытие графического Nautilus в качестве пользователя root. – Agmenor 26 January 2012 в 00:50

Еще один простой способ -

sudo gnome-open foldername

Или я бы рекомендовал установить nemo file manager. Он имеет «открытый как корень» в контекстном меню контекстного меню

-2
ответ дан 25 May 2018 в 14:52

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

gksudo xdg-open <path> &

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

Возможно, вам потребуется установить пакеты xdg-utils и gksu заранее.

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

1
ответ дан 15 August 2018 в 20:20

Другие вопросы по тегам:

Похожие вопросы: