GNU/Linux >> Linux Esercitazione >  >> Linux

come usare xauth per eseguire un'applicazione grafica tramite un altro utente su Linux

Soluzione 1:

Per utilizzare xauth in modo selettivo, as user1 eseguire:

xauth list|grep `uname -n`

Questo stampa le voci di autorizzazione hexkey per te. Potresti avere display diversi associati anche a quegli host.

Come user2 imposta il display (assumendo il caso predefinito):

DISPLAY=:0; export DISPLAY

Quindi esegui:

xauth add $DISPLAY . hexkey

Nota il punto dopo $DISPLAY e prima della chiave esadecimale.

Quando l'accesso non è più necessario, come utente2 puoi eseguire:

xauth remove $DISPLAY

Soluzione 2:

Ho inserito il mio .zshrc una riga con export XAUTHORITY=~/.Xauthority e ora sono in grado di eseguire sudo -E xcommand . Dopo molte ricerche su Google, per me questo è stato il modo più semplice.

Soluzione 3:

Primo:non usare xhost + , è piuttosto insicuro (blanket allow/deny).

Usa piuttosto il meccanismo X-Cookie:

su user2
cp /home/user1/.Xauthority /home/user2/.Xauthority 
export DISPLAY=:0

In alternativa, se hai sux installato, usa quello (vedi la risposta di ehempel).

In entrambi i casi l'utente2 utilizzerà il cookie segreto in .Xauthority per autorizzare il server X e nessun altro avrà accesso ad esso.

Note:

  • A seconda delle autorizzazioni del tuo file, potresti dover copiare .Xauthority in qualche altro modo.
  • Invece di copiare .Xauthority , puoi anche utilizzare xauth per estrarre e copiare la chiave di autorizzazione (vedi la risposta di Randall). Se hai più chiavi nel .Xauthority file questo è più selettivo; altrimenti è una questione di gusti.

Soluzione 4:

Assumendo debian o ubuntu (dovrebbe essere simile su Red Hat / SUSE).

sudo apt-get install sux
sux user -c 'command'

Soluzione 5:

Questo risolverà il problema per tutti gli utenti:

cat <<EOF > /etc/profile.d/xauth.sh
#!/sbin/bash
export XAUTHORITY=~/.Xauthority
EOF

Linux
  1. Come utilizzare sudo per consentire a un utente non root di eseguire un comando particolare

  2. Come eliminare un utilizzo non root con UID 0 in Linux

  3. Come eseguire Elasticsearch 2.1.1 come utente root nella macchina Linux

  4. Come impedire a un utente di accedere, ma consentire a su - user in Linux?

  5. Come utilizzare nohup per continuare a eseguire un comando dopo il logout dell'utente?

Come usare pkgsrc su Linux

Come utilizzare il comando usermod in Linux

Come eseguire Windows 95 su Linux

Come eseguire Docker come utente non root in Linux

Come cambiare utente su Linux

Come utilizzare il comando ulimit in Linux