tft每日頭條

 > 生活

 > sudo 沒有權限

sudo 沒有權限

生活 更新时间:2024-07-08 16:04:10

去年,因為工作的原因,需要編寫一個在統信UOS下使用的工具,買了本QT的書,現學現寫~

尴尬的是,QT需要使用root權限運行(sudo qtcreator),才能輸出調試信息(qDebug),而在sudo調用之後,卻無法呼出中文輸入法。。

想要輸入中文,要麼在其它程序中打好字複制過來,要麼切換到普通權限,普通權限下又看不了調試信息。。

被折磨了幾天後,受不了了,我決定把它解決!

百度一番後,并沒有找到解決方法,但也得到了一些啟示,最終搞定。。

本文所使用的操作系統:統信UOS專業版1050

操作之前,需要先打開開發者模式,本文略過

另外,建議删除UOS自帶的“中文輸入法”,安裝第三方輸入法!


添加輸入法的環境變量

按下Ctrl Alt T打開終端,輸入命令:

sudo deepin-editor /etc/profile

輸入正确的話,文本編輯器會打開profile文件,如圖:

sudo 沒有權限(使用sudo運行的程序)1

鼠标滾動到文件末尾,添加如下代碼:

export GTK_IM_MODULE=fcitx export QT4_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export CLUTTER_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export QT5_IM_MODULE=fcitx

添加之後如圖:

sudo 沒有權限(使用sudo運行的程序)2

按下ctrl s保存後,關閉文本編輯器


保持sudo運行時的輸入法變量

在終端中,輸入命令:

sudo deepin-editor /etc/sudoers

輸入正确的話,如圖:

sudo 沒有權限(使用sudo運行的程序)3

在上圖中可以看到三條Defaults開頭的語句,在其下方加入兩句代碼:

Defaults env_keep = "COLORTERM LANGUAGE XAUTHORITY LANG LS_COLORS TERM DISPLAY" Defaults env_keep = "GTK_IM_MODULE QT4_IM_MODULE XMODIFIERS CLUTTER_IM_MODULE QT_IM_MODULE QT5_IM_MODULE"

第一句代碼是添加sudo的默認環境變量,第二句是輸入法變量。

當然,你也可以把這兩句的變量内容合并寫成一句。

這兩句代碼的作用,是在使用sudo命令時,保留這些變量!

修改完成後,如圖:

sudo 沒有權限(使用sudo運行的程序)4

按下ctrl s保存,關閉文本編輯器,然後重啟一下電腦。


使用sudo運行輸入法管理器

打開終端,輸入命令:

sudo fcitx

此時,會在右下角出現兩個外形不一樣的輸入法圖标,如圖:

sudo 沒有權限(使用sudo運行的程序)5

左邊那個大一些的,就是使用 sudo 命令運行的輸入法管理器。

此時,再使用 sudo 命令去調用其它程序以後,那個程序就可以輸入中文了!

可以打開文本編輯器測試一下:

sudo deepin-editor


總結

sudo 調用的程序不能使用中文輸入法,原因并不複雜,就兩點:

1、缺少相關的環境變量

2、沒有sudo環境下的輸入法管理器(fcitx)

這個方法,并不局限于統信UOS,大多數的Linux應該都大同小異。

需要注意的是:其它Linux中,并沒有 deepin-editor 這個文本編輯器!它們的文本編輯器,可能是gedit、pluma等等。。

一些Linux的輸入法管理器,也不是fcitx,可能是ibus或者其它。。


原創文章,轉載請注明出處!

skyyx2002 2022.06.07

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved