Quando usare pkexec contro gksu / gksudo?

73

Esistono due modi generali per eseguire graficamente le applicazioni come root (o, più in generale, come un altro utente). Programmi come gksu , gksudo e kdesudo sono frontend grafici per sudo . Al contrario, pkexec è un frontend grafico per PolicyKit .

Quando manualmente esegue i programmi come root (o come un altro utente non root), quali sono i vantaggi / svantaggi (se ce ne sono) di usare pkexec , rispetto al metodo più tradizionale di utilizzando un frontend sudo ?

    
posta Eliah Kagan 11.11.2011 - 21:44

3 risposte

25

PolicyKit è più configurabile, sebbene pkexec non faccia uso di questa configurabilità. Inoltre, pkexec mostra all'utente il percorso completo del programma che verrà avviato, in modo che l'utente sia un po 'più sicuro di ciò che accadrà. Le cosiddette "policy" di PolicyKit possono essere utilizzate per impostare più impostazioni di avanzamento. Ad esempio, se la password deve essere ricordata.

Qualcosa che ho ricevuto dal pkexec manual:

% Bl0ck_qu0te%

Ulteriori informazioni su norme o definizioni di azioni dal manuale pkexec :

% Bl0ck_qu0te%     
risposta data RobinJ 12.11.2011 - 16:35
14

Con sudo è possibile impostare le politiche per utente e per programma riguardo al mantenimento o al ripristino dell'ambiente dei chiamanti nel contesto di sudo. Il criterio env_reset è impostato per impostazione predefinita.

Non è possibile eseguire applicazioni grafiche tramite pkexec senza configurarlo esplicitamente per farlo. Poiché questo è semplicemente il risultato del reset dell'ambiente, ciò è ovviamente vero anche per sudo. Nota tuttavia che né pkexec né sudo possono impedire a un'applicazione malevola in esecuzione come root di recuperare tutte le informazioni necessarie dai display manager o dal file cookie X11 degli utenti. Questi ultimi, entrambi o simili, possono anche essere fatti da applicazioni non di radice a seconda delle circostanze.

Sudo non richiede elenchi espliciti di utenti. Puoi elencare qualsiasi gruppo di utenti o persino impostare un'autorizzazione per tutti gli utenti in generale. La direttiva target_pw consente a quegli utenti di autenticarsi con le credenziali dell'utente nel contesto whoose che vogliono eseguire un'applicazione, cioè root. A parte questo, lo stesso programma su (gtksu / kdesu) può essere usato allo stesso modo senza una configurazione speciale.

anche sudo consente all'utente di rimanere autenticato per un tempo specificato. L'opzione è denominata timeout, configurabile a livello globale, per utente o per applicazione. L'autenticazione può essere mantenuta per tty o globalmente per utente.

Mentre pkexec non può fare alcuna validazione degli ARGUMENTS passati a PROGRAM, sudo ha davvero questa caratteristica. Ammesso però, puoi facilmente rovinare tutto, e normalmente non è fatto.

Puoi modificare un po 'il modo in cui vuoi che i programmi vengano eseguiti tramite pkexec: icona, testo da visualizzare, puoi anche avere roba di localizzazione e tutto il resto. A seconda delle circostanze, può essere davvero piacevole. Triste però, che qualcuno sentisse il bisogno di reinventare la ruota per questa caratteristica. Questo probabilmente sarebbe qualcosa da inserire nei wrapper grafici gtksudo / kdesu.

Il policykit è quindi solo un framework di configurazione centralizzato. Sfortunatamente non è carina. File XML PKs sono molto più complicati di qualsiasi cosa un'app possa fornire nativamente a corto di file binari. E nessuno sarebbe così pazzo da usare il binario ... oh gconf ... non importa.

    
risposta data Paul Hänsch 26.10.2012 - 14:47
8

Alcune cose su come pkexec è diverso da sudo e i suoi front-end:

  1. Non puoi eseguire applicazioni grafiche tramite pkexec senza configurarlo esplicitamente per farlo.
  2. Puoi modificare leggermente il modo in cui desideri che i programmi vengano eseguiti tramite pkexec : icona, testo da visualizzare, se ricordare o meno la password, se consentire che venga eseguita graficamente e altro ancora.
  3. Chiunque può eseguire "Esegui come" un superutente (a condizione che possano autenticarsi in quanto tale), con sudo devi essere elencato nel file sudoers come admin .
  4. gksudo blocca tastiera, mouse e focus quando si richiede una password, pkexec no. In entrambi i casi le combinazioni di tasti sono sniffable sebbene .
  5. Con pkexec lavori in un ambiente leggermente più igienizzato.

Prova ad esempio:

cd /etc/init.d
sudo cat README
# and now the same with pkexec
pkexec cat README
# nice, huh?
    
risposta data arrange 15.11.2011 - 23:59

Leggi altre domande sui tag