Làm cách nào tôi có thể nâng cao đặc quyền nautilus để di chuyển hoặc sao chép thư mục dưới quyền root?


11

Nói rằng tôi có một thư mục mở trong Nautilus trong thư mục của tôi /home/user/temp. Tôi muốn chuyển một thư mục từ đó sang thư mục của tôi /opt(đó là một chương trình). Có cách nào để tôi có thể nâng lệnh sao chép lên đến mức sudođể tôi có thể sao chép thư mục mà không phải bắt đầu một phiên bản mới của Nautilus từ dòng lệnh không?

Câu trả lời:


6

Theo như tôi có thể nói, dựa trên những gì tôi biết và đã trải nghiệm:

sudođược sử dụng cho các ứng dụng / lệnh dòng lệnh và gksudorất hữu ích khi bạn cố chạy chương trình bằng cửa sổ hộp thoại Run Application bằng cách nhấn Alt + F2.

Tôi đã đọc rằng đó gksudochỉ là phiên bản đồ họa của sudo.

Dù sao, bạn có thể thả sudo nautilusvà / hoặc gksu nautilus trong một thiết bị đầu cuối với mục đích để làm những gì bạn muốn, có cùng tác dụng cả hai lệnh. Nhưng nếu bạn muốn bỏ qua thiết bị đầu cuối và bạn muốn chạy trực tiếp với cửa sổ hộp thoại " Chạy ứng dụng ", chỉ cần nhấn Alt + F2 và viết gksu nautilus, sau đó bạn sẽ được nhắc nhập mật khẩu của mình, sau đó trình duyệt tệp nautilus sẽ mở với quyền root.

Ngoài ra, bạn có thể đạt được để mở tệp / thư mục gốc bằng một cú nhấp chuột bằng cách sử dụng tùy chọn "Mở với tư cách quản trị viên" thông qua nhấp chuột phải. Trong mọi trường hợp sẽ mở một phiên bản nautilus mới cho thư mục đã cho và sẽ mở các tệp dưới dạng root, điều này cũng có thể mở / chạy các ứng dụng với quyền root nhưng tôi chưa kiểm tra nó.

nhập mô tả hình ảnh ở đây

Bạn có thể nhận tùy chọn "Mở dưới dạng Quản trị" trong menu ngữ cảnh của mình bằng cách cài đặt nautilus-gksu qua dòng lệnh: sudo apt-get install nautilus-gksuhoặc bằng cách sử dụng synaptic như trong hình ảnh tiếp theo:

nhập mô tả hình ảnh ở đây

Chúc may mắn!


Có vẻ như tôi phải thêm một cái gì đó để có được lệnh "Mở dưới dạng". Bạn có nhớ nó là gì không? Tôi đang ở Ub 11.
jcollum

nautilus-gksu, thông qua synaptic (thêm hình ảnh) hoặc dòng lệnh (cũng được cung cấp trong câu trả lời)
Geppettvs D'Constanzo

3
Đây là lý do tại sao chúng ta nên sử dụng gksu nautiluskhông sudo: askubuntu.com/q/11760
Takkat

2
Nautilus-gksu đã di chuyển? Biến mất? Tôi không thể tìm thấy nó trong USC hoặc apt-get.
jcollum

2
@jcollum nautilus-gksukhông còn tồn tại trong kho lưu trữ kể từ Ubuntu 12.04.
IQAndreas

5

bạn cần chạy Nautilus với quyền root

gõ cái này vào terminal

gksu nautilus

bây giờ bạn có thể di chuyển bằng GUI.

hoặc sử dụng lệnh này

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

1
Vậy câu trả lời là "Bạn không thể khởi động lại Nautilus"?
jcollum

bạn không cần phải khởi động lại nautilus, chỉ cần mở một phiên bản khác bằng lệnh gksu. Nhưng nếu bạn có nghĩa là "mở nautilus với người dùng của tôi và sau đó có quyền root trong trường hợp đó để di chuyển tệp" thì có thể đó là những gì bạn cần upubfox.com / 2011/12 / Lỗi
zurdo

Bạn sẽ cần mở một cửa sổ nautilus mới, nhưng để giúp mọi thứ dễ dàng hơn, bạn sao chép vị trí từ thanh và chạy lệnh: gksu nautilus "/path/to/dir/pasted/here"(các trích dẫn xung quanh đường dẫn rất quan trọng)
IQAndreas

1

Đây là tập lệnh nautilus mà tôi sử dụng để mở cửa sổ Nautilus của quản trị viên (root):

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

Một giải pháp tuyệt vời khác là khởi chạy một bản sao khác của Nautilus với quyền root (sudo) từ một dòng lệnh:

gksudo xdg-open <path> &

Việc đóng &có nghĩa là lệnh chạy như một công việc nền; do đó việc sử dụng gksudo(sử dụng sudocó nghĩa là một dấu nhắc vô hình mà bạn không thể phản hồi). xdg-openchăm sóc khởi động một cửa sổ thám hiểm ( nautilushoặc khác).

Bạn có thể cần phải cài đặt xdg-utilsgksucác gói trước.

Bạn có thể nhận được một loạt các cảnh báo và Gtk-CRITICALGlib-GObject-CRITICALthông điệp khi đóng cửa sổ Nautilus nâng lên, nhưng đây là những vô hại như xa như tôi có thể nói. Tôi muốn thoát khỏi chúng, nếu có ai biết làm thế nào.


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

Thay vì [Filename], hãy nhập tên tệp của bạn mà không có dấu ngoặc [].


2
-1, không giải quyết câu hỏi ... Tôi không hỏi cách sử dụng lệnh mv.
jcollum

3
Chỉ sử dụng một lệnh làm root được biết đến như một cách thực hành tốt hơn so với mở Nautilus đồ họa làm root.
Agmenor

-2

Một cách dễ dàng khác là

sudo gnome-open foldername

Hoặc tôi sẽ khuyên bạn nên cài đặt trình quản lý tập tin nemo. Nó có 'open as root' trong menu ngữ cảnh nhấp chuột phải

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.