Re: [問題] 圖形介面如何暫時取得最高權限(sudo)

看板Linux作者 ( )時間6年前 (2019/04/12 20:46), 6年前編輯推噓2(2013)
留言15則, 6人參與, 6年前最新討論串2/2 (看更多)
※ 引述《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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.112.110 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1555073214.A.629.html ※ 編輯: holishing (140.116.112.110), 04/12/2019 20:51:24

04/14 21:50, 6年前 , 1F
在Windows做完後用SSH丟去Linux覆蓋
04/14 21:50, 1F
也是可以啊,也可以在 Linux 做完後拿 ssh 丟去沒裝桌面的 Linux 覆蓋

04/14 22:39, 6年前 , 2F
env 可以一次加多個環境變數 env a=b c=d ls
04/14 22:39, 2F

04/14 22:40, 6年前 , 3F
另外換使用者不是 sudo -u username 就可以了嗎?
04/14 22:40, 3F
CLI 的話我當然直接 sudo -u <username> 不囉唆, 只是剛好想到要跑 GUI 但不知如何下手所以才翻到原來可以用 polkit 看起來有差,技術細節差在哪裡不太確定,會想用 polkit 只是因為 前面推文有提到 gksu ,但比較之後的版本這東西已經被 pkexec 取代的 而且感覺這東西拿來整合其他圖形界面(例如將相關指令當 *.desktop 執行的指令) 也比 sudo 適合 所以還是就這樣記錄一下整理自己使用類似方法的過程 ※ 編輯: holishing (140.116.112.110), 04/15/2019 18:33:44

04/17 09:47, 6年前 , 4F
我都用 sudo gedit /path/to/file (無誤
04/17 09:47, 4F

04/17 14:32, 6年前 , 5F
剛剛測試的確 pkexec 指令的確可以拿來當桌面啟動圖示
04/17 14:32, 5F

04/17 14:33, 6年前 , 6F
沒錯,如果啟動圖示裡指令換成 sudo 可能不太行
04/17 14:33, 6F

04/17 14:40, 6年前 , 7F
其他就是有在 Hacker News 討論區看到有人討論在跑
04/17 14:40, 7F

04/17 14:40, 6年前 , 8F
systemctl 相關指令時前面就不用再加 sudo 了,因為
04/17 14:40, 8F

04/17 14:41, 6年前 , 9F
polkit 會幫你要權限這樣的說法
04/17 14:41, 9F

04/17 19:43, 6年前 , 10F
polkit幫你要的話會跳出視窗 sudo還是比較方便
04/17 19:43, 10F

04/18 00:50, 6年前 , 11F
如果是沒有GUI可以用的話(例:ssh連過去)也有CLI可以用
04/18 00:50, 11F

04/29 22:52, 6年前 , 12F
xhost + 我記得等於叫 Xorg 完全不控管連線的權限吧?
04/29 22:52, 12F

04/29 22:53, 6年前 , 13F
如果只是要允許單一使用者可用 xhost +SI:localuser:root
04/29 22:53, 13F

04/29 22:53, 6年前 , 14F
這類的,只允許指定的使用者可連線
04/29 22:53, 14F

05/09 22:06, 6年前 , 15F
感謝補充orz
05/09 22:06, 15F
文章代碼(AID): #1Si8Y-Of (Linux)
文章代碼(AID): #1Si8Y-Of (Linux)