web-dev-qa-db-fra.com

Comment puis-je créer une nouvelle commande "gksu" basée sur pkexec?

Lorsque je google "gksu gedit", l'une des principales entrées ( Comment exécuter gedit et nautilus en tant que root ) indique que l'utilisation de gksu est mal vue:

gksu n'a pas été mis à jour depuis 2009 et n'est plus recommandé. En fait, Ubuntu n'est plus livré avec gksu par défaut (bien qu'il puisse être installé pour beaucoup d'entre vous, car certaines applications en dépendent encore) et il peut même être complètement supprimé à un moment donné.

Un lien vers AskUbuntu ( Pourquoi gksu n'est plus installé par défaut? ) suggère que pkexec devrait être utilisé à la place mais ne fournit pas d'étapes claires et concises pour ce faire.

Comment puis-je utiliser pkexec dans un nouveau script shell wrapper appelé gsu qui prend en charge à la fois gedit et nautilus?

Je pense qu'un script wrapper appelé gsu est le plus approprié car ma "mémoire musculaire" consiste à taper gksu tout le temps et je ne veux pas avoir à taper pkexec à la place .

De plus, je voudrais que ces messages d'avertissement embêtants gtk disparaissent. Je voudrais également que l'invite du terminal revienne immédiatement au lieu d'attendre la fin de l'éditeur ou du gestionnaire de fichiers.

AU Duplicates: J'ai recherché de nombreuses questions et réponses mais aucune ne demande (ou n'offre comment) donner une solution complète pour le script de wrapper gsu pour appeler pkexec ET installer tous les kits de politique nécessaires ET se débarrasser des avertissements embêtants de gtk ET récupérer immédiatement l'invite du terminal ... Tout en une réponse.

1
WinEunuuchs2Unix

Avant de pouvoir utiliser pkexec avec gedit et nautilus, vous devez copier les règles polkit pour les prendre en charge. Cela se fera automatiquement dans Ubuntu 17.04 mais en attendant, vous devez wget les.

Kit de politique Nautilus

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/

Kit de politique Gedit

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" script bash pour remplacer "gksu"

La création d'un script bash est l'une des deux façons d'appeler pxexec en utilisant le terme quelque peu familier de gsu. Créez ce fichier dans l'un de vos chemins:

#!/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&

Enregistrez le fichier et marquez-le comme exécutable avec chmod +x gsu

Maintenant, au lieu de taper gksu pour modifier la configuration de grub, vous pouvez utiliser:

gsu gedit /etc/default/grub

"gsu" comme alias de "pkexec" pour remplacer "gksu"

La création d'un alias est la deuxième option pour appeler pxexec en utilisant le terme quelque peu familier de gsu. Ouvrez le fichier ~/.bashrc et recherchez alias. Vous verrez ceci:

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

Après la dernière ligne, ajoutez ceci:

alias gsu='pkexec'

Enregistrez le fichier et quittez.

2
WinEunuuchs2Unix