Cách chạy biểu tượng .desktop từ sudo


11

Tôi đã tạo một biểu tượng máy tính để bàn cho gddccontrol, nhưng để chạy nó, tôi cần phải thực thi nó từ sudo. Có cách nào để chạy một lệnh từ biểu tượng máy tính để bàn như,

sudo -pPASSWORD gddccontrol

Vì vậy, nó sẽ không hỏi tôi mật khẩu trong thiết bị đầu cuối?

Tôi chỉ muốn nhấp và chạy nó với quyền sudo.

[Desktop Entry]
Type=Application
Name=GDDCControl
Terminal=false
Comment=gddccontrol ddccontrol
Exec=sudo -pPASSWORD gddccontrol
Icon=~/Pictures/10429.png

Khi tôi chạy biểu tượng từ thiết bị đầu cuối bằng lệnh Exec sau, nó hoạt động tốt, nhưng nó không hoạt động trong Trình khởi chạy :(

Exec=echo mypasswd | sudo -S gddccontrol

Câu trả lời:


17

KHÔNG BAO GIỜ sử dụng mật khẩu của bạn, được lưu trữ trong một .desktoptập tin. Nó là không an toàn khủng khiếp.

Hơn nữa, bạn không thể chạy các lệnh phức tạp trong một .desktoptệp giống như vậy, nhưng đó là một chủ đề khác.

Phải làm gì

Bạn có một vài lựa chọn:

  1. Thêm gddccontrolvào sudoerstập tin, như được giải thích ví dụ ở đây . Điều này có thể được thực hiện nếu bạn chắc chắn rằng ứng dụng không thể được sử dụng để làm những việc ác ý.

    Sau đó sử dụng

    Exec=sudo gddccontrol
    

    trong Exec=dòng

  2. Một lựa chọn khác là thay thế Exec=dòng bằng:

    Exec=gksu gddccontrol
    

    Trong trường hợp này, khi bạn nhấp vào biểu tượng, bạn sẽ được nhắc nhập mật khẩu của mình qua gui.
    Bạn có thể cần phải cài đặt gksu:

    sudo apt-get install gksu
    

không có cách nào khác mà không chỉnh sửa sudoers và gksu? bởi vì gksu có cách nào để hỏi mật khẩu nhưng khi tôi nằm trên ghế sofa vào buổi tối, tôi chỉ muốn chạy gddccontrol với chuột giảm độ sáng / độ tương phản và tiếp tục xem phim mà không cần đến bàn phím. Tôi sẽ cung cấp cho người dùng của mình quyền truy cập vào $ gddccontrol dev: / dev / i2c-4: Quyền bị từ chối Tôi chỉ muốn một cách dễ dàng mà không phải đau đầu để thay đổi độ sáng và độ tương phản trong thời gian buổi tối :(
Eugene

1
@Eugene Tôi có thể tưởng tượng. Tôi sẽ đi cho tập tin sudoers trong trường hợp đó.
Jacob Vlijm

1
Thích pkexechơn gksu; Tôi tin rằng đã có một bài viết meta về điều này.
mèo

@cat pkexeckhông chạy trên các ứng dụng gui như thế. Nó phức tạp hơn để thiết lập, trong khi gksuhoạt động hoàn hảo.
Jacob Vlijm

Nhưng tôi không cần phải cài đặt pkexecvào ngày 16.04.
Valentas

4

Sử dụng sudosẽ theo định nghĩa nhắc một yêu cầu mật khẩu. Những gì bạn cần làm là cấp quyền thực thi cho người dùng của bạn. Tôi không chắc chương trình đó nằm ở đâu, nhưng vì câu trả lời này, hãy giả sử nó là /usr/bin/.

Trong một thiết bị đầu cuối chạy này:

sudo chmod o+x /usr/bin/gddccontrol

Lệnh đó được cấp o ther người sử dụng (như bạn) bên phải để e x ecute chương trình mà không cần xin phép.

Sau đó, trong tệp .desktop, chỉ cần sử dụng:

Exec=gddccontrol

0

Tôi chống lại mật khẩu mã hóa cứng trong một tệp văn bản đơn giản để tôi có thể nghĩ ra hai giải pháp khả thi:

  1. thực hiện chỉnh sửa trên toàn hệ thống mà mọi lệnh do người dùng của bạn cung cấp với sudo được chạy dưới dạng siêu người dùng mà không cần nhắc mật khẩu. Bạn có thể tìm hiểu làm thế nào trong câu trả lời này

  2. Nếu bạn không muốn sudocác lệnh luôn được thực thi bằng dấu nhắc mật khẩu, tốt nhất hãy sử dụng gksutrước lệnh của bạn để nhắc mật khẩu trong cửa sổ đồ họa thay vì ghi mật khẩu thô của bạn vào một tệp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.