是否可以使用提升的權限啟動 nautilus 或 gedit?

是否可以使用提升的權限啟動 nautilus 或 gedit?

有時我需要編輯/etc.我知道我可以使用控制台(sudo mv some/file /etc/some/filesudo nano /etc/some/file)等來做到這一點,但我發現這種方式有點笨拙。你可以說我被寵壞了,但我確實習慣了 Nautilus 和 Gedit 等 GUI 工具。

Ubuntu Mate 或 Mint 等發行版使這一切變得簡單:我可以右鍵單擊一個資料夾,然後會出現一個上下文選單,其中包含諸如“以管理員身份開啟」。從那時起,雙擊文字檔案即可在 gedit 中以提升的權限開啟它。

但是,我在 Ubuntu 預設的 Unity 版本中找不到這樣的選項:

在此輸入影像描述

筆記:

  • 我知道這個問題以提升的權限運行 Nautilus 的方法,但這裡推薦的解決方案是使用gksudo,它不再起作用
  • 我想我總是可以這樣做sudo gedit /etc/whatever,但是 - AFAIK - 使用sudoGUI 工具是非常不明智的
  • 我記得有人說以提升的權限來運行 GUI 工具是不明智的根本不。然而,情況似乎並非如此,因為一些預設的 GUI 工具本身要求提升,Ubuntu Software 可能是最突出的例子之一:

在此輸入影像描述

有沒有辦法以提升的權限來運行 Nautilus 或 Gedit?

答案1

您可以輕鬆地擁有一個右鍵選單,允許透過安裝軟體包以 root 權限開啟檔案nautilus-admin。此 nautilus 擴充功能新增了兩個右鍵選單選項。其中一個允許您以 root 身分開啟文件,以便在 gedit 中進行編輯。另一個條目允許您使用 root 權限開啟 nautilus 視窗。

該軟體包包含在標準 Ubuntu 儲存庫中,可以使用以下命令安裝

sudo apt install nautilus-admin

它依賴 GNOME 的管理後端,即效果與您使用 URI 從命令列開啟檔案相同admin://,例如

gedit admin:///etc/fstab

答案2

您可以使用pkexec代替gksudo.我的跑步方式例如。gedit使用提升的權限是建立腳本,例如/usr/local/bin/su_gedit,包含以下內容:

#!/bin/bash
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit $*

然後,您可以.desktop為此腳本創建一個文件,例如/usr/share/applications/su_gedit.desktop(我沒有測試其他位置是否/usr/share/applications可以工作),複製其內容org.gnome.gedit.desktop並進行適當修改,即。將Name=和行更改Comment=為您想要的任何內容(例如Name=Root Text EditorComment=Edit text files with root privileges)並在所有行中替換gedit為。/usr/local/bin/su_geditExec=

執行此操作後,當在 Nautilus 中右鍵單擊通常在 gedit 中開啟的檔案並選擇「使用其他程式開啟」時,您應該在清單中看到「根文字編輯器」條目。即使它不存在,如果您單擊“顯示所有程式”按鈕,您應該能夠選擇它。

另一種方法是建立一個運行提升的類似腳本gnome-terminal,並為該腳本建立一個啟動器,例如。在 GNOME 面板或桌面上。從該終端,您可以簡單地gedit以 root 身份運行。我通常就是這樣做的。

答案3

尼莫- 是 Cinnamon Desktop 隨附的預設檔案管理器。尼莫可以讓你右鍵點擊給定目錄中的任何位置和“以根用戶身份打開」。

然後打開第二個窗口,並顯示藍色的「提升權限」橫幅。

希望這可以幫助!

筆記 - (聽起來您想繼續使用 Nautilus - 因此,如果您不願意切換到其他檔案管理器,請忽略此建議。

答案4

從評論...

恰當的從 CLI 中透過 privs 啟動 GUI 應用程式的最簡單方法是使用sudo -H.

例子:sudo -H gedit /etc/filename

sudo手冊頁...

 -H, --set-home
             Request that the security policy set the HOME environment
             variable to the home directory specified by the target
             user's password database entry.  Depending on the policy,
             this may be the default behavior.

因此該-H標誌使sudo假設root的主目錄HOME取代目前使用者的主目錄。否則,主目錄中的某些檔案user將歸根使用者所有,這可能會導致各種問題。

筆記: 摘自「sudo -H」中的「-H」標誌是什麼意思?

sudo不使用該選項的最常見問題-H是建立登入循環。

發生這種情況的原因是以下檔案從 your_username:your_username 變更為 root:root...

-rw------- 1 your_username your_username 407910 Nov  2 08:56 .ICEauthority
-rw------- 1 your_username your_username     58 Jun 23  2017 .Xauthority

相關內容