Как я могу создать новую команду "gksu" на основе pkexec?

Когда я гуглю "gksu gedit", одна из лучших записей ( Как запустить gedit и nautilus от имени root) сообщает, что gksu использование осуждается:

gksu не обновлялся с 2009 года и больше не рекомендуется. Фактически, Ubuntu больше не поставляется с gksu по умолчанию (хотя он может быть установлен для многих из вас, потому что некоторые приложения все еще зависят от него), и в какой-то момент он может быть даже полностью удален.

Ссылка на AskUbuntu ( почему gksu больше не устанавливается по умолчанию?) Предлагает pkexec следует использовать вместо этого, но не предоставляет четких и кратких шагов для этого.

Как я могу использовать pkexec в новом скрипте оболочки оболочки под названием gsu который поддерживает оба gedit а также nautilus ?

Я чувствую сценарий обертки под названием gsu является наиболее подходящим, потому что моя "мышечная память" должна набирать gksu все время, и я не хочу набирать pkexec вместо.

Дополнительно хотелось бы этих надоедливых gtk предупреждающие сообщения исчезнуть. Также я хотел бы, чтобы терминал сразу же возвращал запрос вместо ожидания завершения работы редактора или файлового менеджера.

AU Duplicates: я искал много вопросов и ответов, но никто не спрашивает (или не предлагает, как) дать полное решение для gsu скрипт-обёртка для вызова pkexec И установить все необходимые наборы политик И избавиться от надоедливых предупреждений gtk И сразу же получить подсказку терминала... Все в одном ответе.

1 ответ

Решение

Прежде чем вы сможете использовать pkexec с gedit а также nautilus вам нужно скопировать правила polkit для их поддержки. Это будет автоматически сделано в Ubuntu 17.04, но в то же время вам нужно wget их.

Комплект Наутилуса

wget https://raw.githubusercontent.com/hotice/webupd8/master/org.gnome.nautilus.policy -O /tmp/org.gnome.nautilus.policy
sudo cp /tmp/org.gnome.nautilus.policy /usr/share/polkit-1/actions/

Gedit Policy Kit

wget https://raw.githubusercontent.com/hotice/webupd8/master/org.gnome.gedit.policy -O /tmp/org.gnome.gedit.policy
sudo cp /tmp/org.gnome.gedit.policy /usr/share/polkit-1/actions/

"gsu" bash скрипт для замены "gksu"

Создание сценария bash - это один из двух способов вызова pxexec используя несколько знакомый термин gsu, Создайте этот файл по одному из ваших путей:

#!/bin/bash

# Usage: gsu gedit file1 file2...
#  -OR-  gsu natuilus /dirname

# & is used to spawn process and get prompt back ASAP
# > /dev/null is used to send gtk warnings into dumpster

COMMAND=$1 # extract gedit or nautilus

pkexec "$COMMAND" "${@:2}" &> /dev/null&

Сохраните файл и пометьте его как исполняемый chmod +x gsu

Теперь вместо того, чтобы печатать gksu Для редактирования конфигурации Grub вы можете использовать:

gsu gedit /etc/default/grub

"gsu" как псевдоним "pkexec", чтобы заменить "gksu"

Создание псевдонима - второй вариант вызова pxexec используя несколько знакомый термин gsu, Открыть файл ~/.bashrc и искать alias, Вы увидите это:

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

После последней строки добавьте это:

alias gsu='pkexec'

Сохраните файл и выйдите.

Другие вопросы по тегам