Запуск без консоли приложения, требующего повышение привелегии для запуска

Правила форума
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Версия ОС вместе с разрядностью. Пример: LM 18.1 x64, LM Sarah x32 2. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 3. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 4. Суть. Желательно с выводом консоли, логами. 5. Скрин. Просьба указывать 1, 2 и 3 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
Sandralex
Сообщения: 79
Зарегистрирован: 29 янв 2018, 17:41
Откуда: Туркменистан
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Запуск без консоли приложения, требующего повышение привелегии для запуска

Сообщение Sandralex » 10 авг 2018, 16:40

Есть установленная программа LinsSid но её нужно запускать только с помощью терминала и только с sudo. Вопрос: Как сделать так чтобы без помощи терминала по клику на ярлычке в меню запустить данную программу?
Снимок экрана от 2018-08-10 21-16-18.png
alexandr@X550CL:~$ inxi -Fxz
System: Host: X550CL Kernel: 4.15.0-30-generic x86_64 bits: 64 gcc: 7.3.0
Desktop: Cinnamon 3.8.8 (Gtk 3.22.30-1ubuntu1)
Distro: Linux Mint 19 Tara
Machine: Device: laptop System: ASUSTeK product: X550CL v: 1.0 serial: N/A
Mobo: ASUSTeK model: X550CL v: 1.0 serial: N/A
UEFI: American Megatrends v: X550CL.201 date: 08/02/2013
CPU: Dual core Intel Core i3-3217U (-MT-MCP-)
arch: Ivy Bridge rev.9 cache: 3072 KB
flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 7183
clock speeds: max: 1800 MHz 1: 903 MHz 2: 884 MHz 3: 885 MHz
4: 906 MHz
Graphics: Card-1: Intel 3rd Gen Core processor Graphics Controller
bus-ID: 00:02.0
Card-2: NVIDIA GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M]
bus-ID: 01:00.0
Display Server: x11 (X.Org 1.19.6 )
drivers: modesetting,nvidia (unloaded: fbdev,vesa,nouveau)
Resolution: 1366x768@59.99hz
OpenGL: renderer: GeForce GT 710M/PCIe/SSE2
version: 4.6.0 NVIDIA 390.77 Direct Render: Yes
Audio: Card Intel 7 Series/C216 Family High Def. Audio Controller
driver: snd_hda_intel bus-ID: 00:1b.0
Sound: Advanced Linux Sound Architecture v: k4.15.0-30-generic
Network: Card-1: Qualcomm Atheros AR9485 Wireless Network Adapter
driver: ath9k bus-ID: 03:00.0
IF: wlp3s0 state: up mac: <filter>
Card-2: Realtek RTL8111/8168/8411 PCIE Gigabit Ethernet Controller
driver: r8169 v: 2.3LK-NAPI port: d000 bus-ID: 04:00.2
IF: enp4s0f2 state: down mac: <filter>
Drives: HDD Total Size: 500.1GB (32.8% used)
ID-1: /dev/sda model: WDC_WD5000LPVX size: 500.1GB
Partition: ID-1: / size: 57G used: 11G (21%) fs: ext4 dev: /dev/sda3
ID-2: /home size: 398G used: 139G (37%) fs: ext4 dev: /dev/sda4
ID-3: swap-1 size: 4.10GB used: 0.00GB (0%)
fs: swap dev: /dev/sda2
RAID: No RAID devices: /proc/mdstat, md_mod kernel module present
Sensors: System Temperatures: cpu: 55.0C mobo: N/A gpu: 0.0:54C
Fan Speeds (in rpm): cpu: 2800
Info: Processes: 222 Uptime: 3:56 Memory: 2786.7/7863.1MB
Init: systemd runlevel: 5 Gcc sys: 7.3.0
Client: Shell (bash 4.4.191) inxi: 2.3.56
alexandr@X550CL:~$
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось пользователем 1 Dja; всего редактировалось раз: 11
Причина: Подправил название

Аватара пользователя

darkfenix
Сообщения: 5509
Зарегистрирован: 27 июн 2017, 10:36
Решено: 62
Откуда: Нижний Тагил
Благодарил (а): 308 раз
Поблагодарили: 1027 раз

Вы не являетесь владельцем и бла-бла-бла

Сообщение darkfenix » 10 авг 2018, 16:44

Тут посмотри Контекстное меню ФМ nemo (Пост root #57935) там для контекстного меню, но для ярлыка аналогично
Изображение

Аватара пользователя

Автор темы
Sandralex
Сообщения: 79
Зарегистрирован: 29 янв 2018, 17:41
Откуда: Туркменистан
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Вы не являетесь владельцем и бла-бла-бла

Сообщение Sandralex » 10 авг 2018, 16:49

darkfenix писал(а):
10 авг 2018, 16:44
но для ярлыка аналогично
А может вы мне поможете?
[Desktop Entry]
Version=2.9
Name=LinSSID
GenericName=
Comment=Find local wireless attach points
Exec=linssid
Icon=/usr/share/pixmaps/linssid48.png
Terminal=false
Type=Application
Categories=Application;Network;
Name[en]=LinSSID
Name[en_US]=linssid
Keywords=Network;Wireless;WiFi;Monitor;Channel;Power

Аватара пользователя

darkfenix
Сообщения: 5509
Зарегистрирован: 27 июн 2017, 10:36
Решено: 62
Откуда: Нижний Тагил
Благодарил (а): 308 раз
Поблагодарили: 1027 раз

Вы не являетесь владельцем и бла-бла-бла

Сообщение darkfenix » 10 авг 2018, 16:54

Сделай для своей программы как написано тут Запуск привилегированных приложений с pkexec (PolicyKit)
А после исправить эту строчку
Sandralex писал(а):
10 авг 2018, 16:49
Exec=linssid
так

Код: Выделить всё

Exec=pkexec linssid
Изображение

Аватара пользователя

Автор темы
Sandralex
Сообщения: 79
Зарегистрирован: 29 янв 2018, 17:41
Откуда: Туркменистан
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Вы не являетесь владельцем и бла-бла-бла

Сообщение Sandralex » 10 авг 2018, 16:56

darkfenix писал(а):
10 авг 2018, 16:54
Сделай для своей программы как написано тут Запуск привилегированных приложений с pkexec (PolicyKit)
Буду пробовать. Потом отпишусь.

Аватара пользователя

root
Сообщения: 942
Зарегистрирован: 16 фев 2017, 17:03
Решено: 5
Откуда: г. Хабаровск
Благодарил (а): 284 раза
Поблагодарили: 259 раз

Вы не являетесь владельцем и бла-бла-бла

Сообщение root » 10 авг 2018, 17:15

Sandralex, в терминале вводите xed ~/.local/share/applications/linssid.desktop

Вставляете этот код:

Код: Выделить всё

[Desktop Entry]
Name=LinsSid
Comment=Графическая программа для поиска Wi-fi сетей
Keywords=wi-fi; linssid; 
Exec=gnome-terminal --hide-menubar -x sh -c 'pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY linssid'
Type=Application
Icon=gnome-dev-wavelan
Categories=Network;
NoDisplay=false
и сохраняете.
Затем chmod ugo+x ~/.local/share/applications/linssid.desktop
Готово, теперь приложение нах-ся в главном меню в разделе "интернет".

При таком раскладе
darkfenix писал(а):
10 авг 2018, 16:54
Сделай для своей программы как написано тут Запуск привилегированных приложений с pkexec (PolicyKit)
этим сексом заниматься не нужно.

-----------------
P.S.: если вас бесит окно терминала, можно создать отдельно скрипт, например linssid.sh:

Код: Выделить всё

#!/bin/bash
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY linssid
сделать его исполняемым с помощью chmod ugo+x путь_до_скрипта,
а в файле ~/.local/share/applications/linssid.desktop заменить строку Exec=gnome-terminal --hide-menubar -x sh -c 'pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY linssid' на Exec=путь_до_скрипта
Последний раз редактировалось пользователем 1 root; всего редактировалось раз: 10
Вы не готовы! :pc2:
Изображение

Аватара пользователя

Автор темы
Sandralex
Сообщения: 79
Зарегистрирован: 29 янв 2018, 17:41
Откуда: Туркменистан
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Вы не являетесь владельцем и бла-бла-бла

Сообщение Sandralex » 10 авг 2018, 17:28

Sandralex писал(а):
10 авг 2018, 16:56
Буду пробовать. Потом отпишусь.
Заработало. :thumbs:
root писал(а):
10 авг 2018, 17:15
этим сексом заниматься не нужно
Поздно, уже курю... Но всё равно спасибо.

Аватара пользователя

colonel
Сообщения: 1452
Зарегистрирован: 18 дек 2016, 09:08
Решено: 18
Благодарил (а): 37 раз
Поблагодарили: 401 раз

Вы не являетесь владельцем и бла-бла-бла

Сообщение colonel » 10 авг 2018, 18:34

Sandralex писал(а):
10 авг 2018, 16:40
Вы не являетесь владельцем и бла-бла-бла
Есть установленная программа LinsSid но её нужно запускать только с помощью терминала и только с sudo. Вопрос: Как сделать так чтобы без помощи терминала по клику на ярлычке в меню запустить данную программу?
ну вот опять и снова ... бла бла бла и может кому-то описание проблемы кажется более-менее ... ведь вывод inxi -Fxz пришпилен ( с кучей ненужной инфы )
но вот версия LinsSid которая установлена не указана
к вопросу Как сделать так чтобы без помощи терминала по клику на ярлычке в меню запустить данную программу? т в теме уже рассказали и даже ТС отписался что заработало

но вот по картинке из первого поста непонятно что мешало открыть ФМ Немо, зайти в каталог /usr/sbin/ с правами root(админа) и в свойсвах файлика linssid и менять там как нужно?

но собсно .... на РРА http://ppa.launchpad.net/wseverin/ppa/u ... l/linssid/ откуда скорее всего и была установлена програмка есть несколько версий
так таки в крайней версии linssid_3.6-1 если заглянуть в потроха дебки видно что, после установки программы

- в каталоге /usr/sbin/ - файлик собсно программы linssid

- в каталоге /usr/bin/ имеется файлик linssid-pkexec - для запуска с правами админа
вот с таким содержанием

Код: Выделить всё

 #!/bin/sh
pkexec "/usr/sbin/linssid" "$@"   
- в каталоге /usr/share/applications/ - файлик пункта меню(ярлыка) linssid.desktop для запуска программы вот с таким содержанием
во с таким содержанием

Код: Выделить всё

 #!/usr/bin/env xdg-open

[Desktop Entry]
Encoding=UTF-8
Name=LinSSID
GenericName=
Comment=Find local wireless attach points
Exec=linssid-pkexec
Icon=/usr/share/pixmaps/linssid48.png
Terminal=false
Type=Application
Categories=Network
Name[en]=LinSSID
Name[en_US]=LinSSID   


- и ещё есть файлик /usr/share/polkit-1/actions/com.warsev.pkexec.linssid.policy
с содержанием

Код: Выделить всё

  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
  <action id="com.warsev.pkexec.linssid">
    <message>Authentication is required to run LinSSID</message>
    <icon_name>linssid</icon_name>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/linssid</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
  </action>

</policyconfig>            
- ну и ещё всяко разное типа картинок и тд и тп.

в более ранних версиях немного не так но ярлык для меню имеется и программа из меню запускается
"Не ты выбираешь Linux, а Linux выбирает тебя"
(с)Себастьян Перейра, торговец чёрным деревом

Вернуться в «Иное программное обеспечение»