GNU/Linux >> Belajar Linux >  >> Linux

cara menggunakan xauth untuk menjalankan aplikasi grafis melalui pengguna lain di linux

Solusi 1:

Untuk menggunakan xauth secara selektif, saat pengguna1 menjalankan:

xauth list|grep `uname -n`

Ini mencetak entri otorisasi hexkey untuk Anda. Anda bisa memiliki tampilan berbeda yang terkait dengan host tersebut juga.

Saat pengguna2 menyetel tampilan Anda (dengan asumsi huruf besar-kecil):

DISPLAY=:0; export DISPLAY

Kemudian jalankan:

xauth add $DISPLAY . hexkey

Perhatikan titik setelah $DISPLAY dan sebelum hexkey.

Saat akses tidak lagi diperlukan, sebagai pengguna2 Anda dapat menjalankan:

xauth remove $DISPLAY

Solusi 2:

Saya memasukkan .zshrc saya baris dengan export XAUTHORITY=~/.Xauthority dan sekarang saya bisa mengeksekusi sudo -E xcommand . Setelah banyak googling, bagi saya ini adalah cara termudah.

Solusi 3:

Pertama:Jangan gunakan xhost + , agak tidak aman (blanket allow/deny).

Lebih baik gunakan mekanisme X-Cookie:

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

Atau, jika Anda memiliki sux diinstal, gunakan itu (lihat jawaban ehempel).

Dalam kedua kasus, pengguna2 akan menggunakan cookie rahasia di .Xauthority untuk mengotorisasi ke server X, dan tidak ada orang lain yang memiliki akses ke sana.

Catatan:

  • Bergantung pada izin file Anda, Anda mungkin harus menyalin .Xauthority dengan cara lain.
  • Daripada menyalin .Xauthority , Anda juga dapat menggunakan xauth untuk mengekstrak dan menyalin kunci otorisasi (lihat jawaban Randall). Jika Anda memiliki beberapa kunci di .Xauthority file ini lebih selektif; kalau tidak, itu masalah selera.

Solusi 4:

Dengan asumsi debian atau ubuntu (harus serupa di Red Hat / SUSE).

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

Solusi 5:

Ini akan memperbaiki masalah untuk semua pengguna:

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

Linux
  1. Bagaimana saya menggunakan cron di Linux

  2. Cara menggunakan Sudo untuk mengizinkan pengguna non-root menjalankan perintah tertentu

  3. Bagaimana cara mencegah pengguna masuk, tetapi izinkan su - pengguna di Linux?

  1. Cara menggunakan BusyBox di Linux

  2. Cara Menggunakan Perintah chown untuk Mengubah Kepemilikan di Linux

  3. Bagaimana cara menggunakan nohup untuk terus menjalankan perintah setelah pengguna logout?

  1. Cara menghapus penggunaan non-root dengan UID 0 di Linux

  2. Cara menjalankan Elasticsearch 2.1.1 sebagai pengguna root di mesin Linux

  3. Jalankan perintah sebagai pengguna sistem Linux (shell =/bin/false)