Gnome 3 - пользовательское сочетание клавиш к команде выполнения как корень?

Альтернативный подход к деталям вашего вопроса о том, чего вы действительно пытаетесь достичь: меньше печатать.

Вы также можете обнаружить, что хорошие псевдонимы позволяют использовать лучшее из обоих миров, то есть длинные имена папок. Мне нравятся длинные имена папок, и мне также нравятся короткие имена для набора текста, и я добиваюсь этого с помощью таких псевдонимов, как:

alias zab='cd ~/mycar/activerecord-boolean-converter'
alias q='cd ~/Dropbox/95_2014/work/code/ruby__rails/ruby/ruby_quiz'
alias dummy='cd ~/zipcar/zipcar-rails-core/spec/dummy'

Затем я просто набираю, например, q , затем нажимаю return

1
26.12.2015, 20:57
2 ответа

Думаю, в этом случае вам нужно использовать gksudo. Я цитирую из gksudo(1) man page:

gksu - фронтенд to su и gksudo - фронтенд to sudo. Их при- mary предназначена для выполнения графических команд, которым нужен корень без необходимо запустить эмулятор терминала X и использовать su напрямую

Так что, похоже, проблема здесь в том, что команды, запускаемые комбинацией клавиш, не имеют (псевдо) терминального устройства, что приводит к сбою sudo и вместо них следует использовать gksudo.

0
27.01.2020, 23:52

Gnome 3 использует механизм авторизации, называемый polkit, поэтому правильный способ запуска этого исполняемого файла от имени root - через pkexec:

pkexec позволяет авторизованному пользователю выполнять ПРОГРАММУ от имени другого пользователя. Если имя пользователя не указано, то программа будет выполняться как административный суперпользователь, root.

Для того, чтобы авторизовать пользователя в активном сеансе на выполнение этой команды от имени root, вы должны определить новое действие (согласно приведенной выше спецификации) через XML файл под /usr/share/polkit-1/action , назовем его org.fedora.pkexec.kbback.policy.

Содержание /usr/share/polkit-1/actions/org.fedora.pkexec.kbback.kbback. 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>

  <icon_name>input-keyboard</icon_name>
  <action id="org.fedora.pkexec.kbback">
    <message>Authentication is required to Change Keyboard Backlight</message>
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/backlight</annotate>
  </action>

</policyconfig>

Следующим шагом является назначение команд клавиатурным сокращениям через настройки клавиатуры GNOME:

pkexec /usr/local/bin/backlight inc
pkexec /usr/local/bin/backlight dec 

(примечание: я использовал /usr/local/bin/backlight в качестве пути к моему исполняемому файлу, вам нужно будет изменить файл действия и две команды, если путь к исполняемому файлу отличается)

.
1
27.01.2020, 23:52

Теги

Похожие вопросы