sudoおよび.desktopファイルからテーマを変更せずにsudo権限でGUIを開く方法

Apr 15 2020

TL、DR:.desktopファイルをダブルクリックし、(sudoウェイと比較して)見栄えの良い非sudoウェイのテーマを保持することで、ルート権限を持つGUIアプリケーションを起動できるようにしたいと考えています。


ここで関連する質問・回答を見てきましたが、状況を理解して解決策を見つけたとは言えません。それらはうまく構造化されておらず、説明的でもなかったか、私はそれらを取得できませんでした。または、それらのほとんどが言及していましたが、gksu私が理解しgksuている限り、リポジトリから削除されました。インストールできません。

スクリーンショットは、質問の最後に添付されているとおりに見つけることができます。

面倒な質問になることは承知しておりますので、ご容赦ください。


これで、Quartusプログラムがコンピューターにインストールされ、(スクリーンショットの左側)から実行できます。

/home/muyustan/altera/13.1/quartus/bin/quartus --64bit

また.desktop、次のようにファイルを作成しました。

[Desktop Entry]
Type=Application
Version=0.9.4
Name=Quartus II 13.1 (64-bit) Web Edition
Comment=Quartus II 13.1 (64-bit)
Icon=/home/muyustan/altera/13.1/quartus/adm/quartusii.png
Exec=/home/muyustan/altera/13.1/quartus/bin/quartus --64bit
Terminal=false
Path=/home/muyustan/altera/13.1

これまでのところ、デスクトップエントリを介して実行できます。ターミナルウィンドウがポップアップして停止することはありません(十分に迷惑です)。すべて順調。

しかし、私は私がアプリを起動していない場合、問題は、あるのQuartusアプリの一部で、それはなど(コール)別のプログラム(ModelSimの)を開いて、いくつかの場所にいくつかのファイルを保存しなければならないことを考え出しsudoでその前(スクリーンショットの右側)に、いくつかのエラーが表示されpermission denied、問題が発生します。

だから、私は私の発射の習慣を変えることによってこれを解決することができます、

from -- double click on the desktop entry

to -- Ctrl+Alt+T -> sudo [executablePath] -> enter password

さて、明らかに私は2つの主な理由のためにこれを望まないでしょう。

  1. 時間がかかります。
  2. その端末は、アプリケーションが開いている限りそこにとどまります。

そしてこの時点で、スクリーンショットから気づいたかもしれないし、気づかなかったかもしれないので、3番目の(ボーナス)理由がポップアップします。で起動するsudoと、GUIテーマがWindowsXPスタイルのように見えます...私は選択/変更していませんちなみに、Quartusを最初にインストールしたときのテーマ。

ですから、私の主張を明確にしたいと思います。

前もって感謝します。


質問の更新

コメントで誰かがリクエストした後、呼び出された(Quartusの内部から起動された)アプリケーションModelsimで発生するエラーを確認してください。

do temp1_run_msim_rtl_verilog.do 
# if {[file exists rtl_work]} {
#   vdel -lib rtl_work -all
# }
# ** Error: (vdel-19) Failed to access library 'rtl_work' at "/home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work".
# Permission denied. (errno = EACCES)
# ** Error: /home/muyustan/altera/13.1/modelsim_ase/linux/vdel failed.
# Error in macro ./temp1_run_msim_rtl_verilog.do line 4
# /home/muyustan/altera/13.1/modelsim_ase/linux/vdel failed.
#     while executing
# "vdel -lib rtl_work -all"
#     invoked from within
# "if {[file exists rtl_work]} {
#   vdel -lib rtl_work -all
# }"

回答

1 user.dz Apr 15 2020 at 17:55

ユーザーはこのエラーメッセージを受け取りました:

# ** Error: (vdel-19) Failed to access library 'rtl_work' at "/home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work".
# Permission denied. (errno = EACCES)

の使用から、sudoいくつかのフォルダ/ファイルがroot権限レベルで作成されることを期待していました。

  1. 所有権と権限を確認するために、「altera」フォルダーにツリー全体のリストを生成しました。使用:

    find /home/muyustan/altera -type d -exec stat -c '%A %G %U %n' {} \; > log.txt
    
  2. rootが所有するフォルダがあることがわかるので、そのフォルダtemp1またはユーザー/グループを探しますroot

    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/simulation/qsim/work/up_counter
    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/simulation/qsim/work/prime_detector_4bits_vlg_check_tst
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work/_temp
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work/up_counter_tb
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work/up_counter
    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/simulation/modelsim
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/gate_work
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/gate_work/prime_detector_4bits
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/gate_work/_temp
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/rtl_work
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/rtl_work/_temp
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/rtl_work/up_counter
    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/db
    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/incremental_db
    
  3. そのアルテラフォルダーとその中のすべての子フォルダーおよびファイルの所有権をユーザーとグループに変更します。

    sudo chown -R muyustan:muyustan /home/muyustan/altera
    

せずにQuartusを実行してみてください sudo