圖形介面如何暫時取得最高權限(sudo) - Linux

Barb Cronin avatar
By Barb Cronin
at 2019-04-12T20:46

Table of Contents

※ 引述《stonys (蝶戀影)》之銘言:
: 大家好
: 小弟雖然會sudo指令操作
: 也會一點VI編輯器操作
: 不過有時候想寫一些程式(php之類)的話,還是覺得用GUI的編輯器比較方便
: 可是常常要存檔時會遇到權限問題(登入帳號已經是管理員了)
: 此時只好先存在一般路徑,再用終端機下sudo cp的指令複製過去
: 想請問一下如果在圖形介面裡,如何取得sudo操作權限呢?
: 目前常用的的redhat Enterprise 7 & Ubuntu 18.04
: 謝謝!

因為之前查 wine 相關的 FAQ 瞄到:
https://wiki.winehq.org/FAQ#Is_Wine_malware-compatible.3F

所以就剛好有了
用其他使用者權限(非 root)跑跑看 wine
的想法,雖然不知道效果如何

於是參考原文底下推文的討論,搭配 arch wiki 參考整理一些使用上的心得

首先剛開始在查時常看到:
: → : 在你的指令前加上gksu
類似的方法,但後來發現一些比較新的發行版似乎已經不用這個指令了

所以就使用了需要安裝 polkit 套件(有些發行版已經裝好了)的 pkexec 指令

大概步驟如下:


1. 在自己帳號的桌面開終端機輸入:

~$ xhost +

應該會出現: access control disabled, clients can connect from any host 的訊息


2. 確認要用的程式被 polkit 允許

參考: https://wiki.archlinux.org/index.php/Polkit#Actions

到 /usr/share/polkit-1/ 底下的 actions 或 rules.d 確認
自己要用的指令有沒有被 polkit 允許

沒有的話可以參考 wiki 裡面給的格式修改增加你要的指令


3. 確認自己的 $DISPLAY 變數

~$ echo $DISPLAY

應該會顯示等資訊
> ---
:0
> ---


4. pkexec 執行程式


pkexec --user <切過去的帳號> env DISPLAY=:0 <你要執行的指令>

例如想要用 gedit 編輯由 www-data 持有的 /var/www/html/index.html

就可以:

~$ pkexec --user www-data env DISPLAY=:0 gedit /var/www/html/index.html

或是我想要用 winewine 這個使用者來跑 wine 裡面的 IE

~$ pkexec --user winewine env DISPLAY=:0 wine iexplore

即可

==

至於相關環境變數要怎麼設定

目前想法是就一直加 env 變數=變數內容 像是:
~$ pkexec --user winewine env DISPLAY=:0 env WINEARCH=win32 wine winecfg

則是還不太確定,之後有需要再測試看看或看有沒有相關資料討論

也或許有其他比較easy的方法

但總之在這邊分享自己經驗以供參考

--
Paramore - Franklin

And when we get home, I know we won't be home at all
This place we live, it is not where we belong
And I miss who we were in the town that we could call our own
Going back to get away after everything has changed

--
Tags: Linux

All Comments

Bennie avatar
By Bennie
at 2019-04-15T11:07
在Windows做完後用SSH丟去Linux覆蓋
Lauren avatar
By Lauren
at 2019-04-20T06:14
env 可以一次加多個環境變數 env a=b c=d ls
Isla avatar
By Isla
at 2019-04-24T13:30
另外換使用者不是 sudo -u username 就可以了嗎?
Kristin avatar
By Kristin
at 2019-04-27T20:27
我都用 sudo gedit /path/to/file (無誤
Heather avatar
By Heather
at 2019-04-30T03:06
剛剛測試的確 pkexec 指令的確可以拿來當桌面啟動圖示
Caitlin avatar
By Caitlin
at 2019-05-02T21:13
沒錯,如果啟動圖示裡指令換成 sudo 可能不太行
Carolina Franco avatar
By Carolina Franco
at 2019-05-05T17:44
其他就是有在 Hacker News 討論區看到有人討論在跑
systemctl 相關指令時前面就不用再加 sudo 了,因為
Hedwig avatar
By Hedwig
at 2019-05-08T09:04
polkit 會幫你要權限這樣的說法
Suhail Hany avatar
By Suhail Hany
at 2019-05-09T07:08
polkit幫你要的話會跳出視窗 sudo還是比較方便
Todd Johnson avatar
By Todd Johnson
at 2019-05-11T20:03
如果是沒有GUI可以用的話(例:ssh連過去)也有CLI可以用
Isabella avatar
By Isabella
at 2019-05-15T21:12
xhost + 我記得等於叫 Xorg 完全不控管連線的權限吧?
Kristin avatar
By Kristin
at 2019-05-17T07:04
如果只是要允許單一使用者可用 xhost +SI:localuser:root
這類的,只允許指定的使用者可連線
Ophelia avatar
By Ophelia
at 2019-05-22T05:48
感謝補充orz

如何redirect一個已經執行的prcoess輸出

Oscar avatar
By Oscar
at 2019-04-10T22:22
用途: 會透過telnet去背景執行某個app(不會結束) 但如果telnet連線中斷後app的輸出就再也看不到 除非在新的telnet連線重新kill再執行 之前有google過資料 好像要利用gdb才能做到不kill redirect output 有除了gdb以外的方式嗎? - ...

類似卡鍵的問題

Michael avatar
By Michael
at 2019-04-09T16:19
CentOS 6.10 使用XRDP的圖形介面一段時間後 會發生類似卡鍵的狀況 ex: terminal輸入指令會重複 $ dddddddddddddddd..... 重新整理F5 整個畫面開始閃爍 雖然按ESC可以中斷卡鍵的問題 但是操作起來還是會有很多誤動作 想請問這種情形該如何根 ...

hime 輸入法在manjaro出不來

Linda avatar
By Linda
at 2019-04-08T13:08
想把ibus換成hime,在mx liniux 裡面很簡單,在軟體中心找到以後安裝,到語言 那邊去加入hime就可以了。 但是在manjaro裡面我用了AUR的版本安裝了hime,在語言那邊卻都找不到hime,請問 有哪些多的步驟需要做呢?謝謝! - ...

SMB這樣「轉接」會不會不妥

Tracy avatar
By Tracy
at 2019-04-06T17:56
事情是這樣的,我們實驗室的儀器數據一直是透過跟學校資訊中心買的NAS在存放/ 傳輸/備份。這陣子資訊中心硬體升級了,我們也跟著轉移到新的架構上,結果所 有還在跑WinXP(恥)的儀器都連不上了。稍微看一下才發現是計中終於不支援SMB v1了,而且也不打算為我們向下支援,完全可以理解。 在還在等解決方法的時候 ...

乙太網路

Daph Bay avatar
By Daph Bay
at 2019-04-06T00:38
更新 已解決 interfaces內改成enp8s0後ifup就可以了 小魯ubuntu新手上路 第一次來這個版發問請各位多指教QQ 目前使用的是Ubuntu 18.04.2 LTS 電腦型號是Acer Aspire-V5 前陣子灌好ubuntu 雖然問題不少 但網路倒是都沒什麼問題 但這幾天 連家裡的 ...