Cách mở GUI với quyền sudo mà không cần thay đổi chủ đề trong sudo và từ tệp .desktop
TL, DR: Tôi muốn có thể khởi chạy một ứng dụng GUI với root priviliges bằng cách nhấp đúp vào tệp .desktop và bằng cách duy trì giao diện tốt (liên quan đến cách sudo).
Tôi đã xem các câu hỏi / câu trả lời liên quan ở đây, tuy nhiên, tôi không thể nói rằng tôi hiểu tình huống và tìm ra giải pháp. Hoặc chúng không được cấu trúc và giải thích tốt, hoặc tôi không hiểu chúng. HOẶC hầu hết trong số họ đã được đề cập gksu, tuy nhiên, theo như tôi hiểu, gksuđã bị xóa khỏi kho. Tôi không thể cài đặt nó.
Ảnh chụp màn hình có thể được đính kèm ở cuối câu hỏi.
Tôi biết nó sẽ là một câu hỏi lộn xộn, xin vui lòng thứ lỗi cho tôi.
Bây giờ, tôi đã cài đặt chương trình Quartus trên máy tính của mình và tôi có thể chạy nó qua (BÊN TRÁI CỦA MÀN HÌNH):
/home/muyustan/altera/13.1/quartus/bin/quartus --64bit
Tôi cũng đã tạo một .desktoptệp như sau:
[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
Cho đến nay rất tốt, tôi có thể chạy nó thông qua mục nhập trên máy tính để bàn, không có cửa sổ đầu cuối nào bật lên và tạm dừng ở đó (đủ khó chịu). Mọi thứ đều ổn.
Tuy nhiên, tôi đã tìm ra rằng trong một phần của ứng dụng Quartus, nó phải mở (cuộc gọi) một chương trình khác (Modelsim) và tiết kiệm một số tập tin vào một số nơi vv Vấn đề đặt ra là, nếu tôi không khởi động ứng dụng với một sudotrong phía trước nó (BÊN PHẢI CỦA SCREENSHOT), tôi gặp một số lỗi nêu rõ permission deniedvà mọi thứ không hoạt động.
Vì vậy, tôi có thể giải quyết vấn đề này bằng cách thay đổi habbit khởi chạy của mình,
from -- double click on the desktop entry
to -- Ctrl+Alt+T -> sudo [executablePath] -> enter password
Bây giờ, rõ ràng tôi sẽ không muốn điều này vì hai lý do chính.
- Cần thời gian lâu hơn.
- Thiết bị đầu cuối đó vẫn ở đó miễn là ứng dụng còn mở.
Và ngay tại thời điểm này, một lý do thứ 3 (phần thưởng) xuất hiện, có thể bạn đã nhận thấy hoặc có thể không nhận thấy từ ảnh chụp màn hình, việc khởi chạy với sudolàm cho chủ đề GUI trông giống như phong cách Windows XP ... Tôi chưa chọn / thay đổi nhân tiện, bất kỳ chủ đề nào khi tôi cài đặt Quartus lần đầu tiên.
Vì vậy, tôi hy vọng tôi đã nói rõ quan điểm của mình.
Cảm ơn trước.
Cập nhật cho câu hỏi
Sau yêu cầu của ai đó trong nhận xét, hãy xem lỗi tôi đang gặp phải trong ứng dụng được gọi (khởi chạy từ bên trong 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
# }"
Trả lời
Người dùng nhận được thông báo lỗi này:
# ** Error: (vdel-19) Failed to access library 'rtl_work' at "/home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work". # Permission denied. (errno = EACCES)
Từ việc sử dụng sudo, tôi mong đợi một số thư mục / tệp đã được tạo với cấp đặc quyền root.
Chúng tôi đã tạo danh sách cho toàn bộ cây trong thư mục "altera" để xác minh quyền sở hữu và quyền. Sử dụng:
find /home/muyustan/altera -type d -exec stat -c '%A %G %U %n' {} \; > log.txtTìm thư mục đó
temp1hoặc người dùng / nhómroot, vì bạn có thể thấy có các thư mục thuộc sở hữu của rootdrwxrwxr-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_dbThay đổi quyền sở hữu của thư mục altera đó và tất cả các thư mục con và tệp trong đó thành người dùng và nhóm của bạn.
sudo chown -R muyustan:muyustan /home/muyustan/altera
Thử chạy lại Quartus mà không có sudo