Anda tidak dapat membuat cookie baru: cookie adalah "kata sandi rahasia" yang diberi tahu oleh server saat itu dimulai dan yang perlu diketahui semua klien untuk dapat terhubung.
Saya pikir Anda bisa mendapatkan apa yang Anda inginkan dengan sesuatu seperti
DISPLAY=:0
XAUTHORITY=$(ps auxw | sed -ne "s|.*/[X].* $DISPLAY.*-auth \\([^ ]*\\).*|\\1|p")
export DISPLAY XAUTHORITY
...
Ini bekerja dengan mencari proses X server yang mencoba menemukan -auth
argumen yang diteruskan ke sana, karena itu harus berupa file yang berisi pengaturan XAUTH. Perhatikan bahwa file ini biasanya (menurut pengalaman saya) dimiliki oleh root dan pengguna lain tidak dapat membacanya, jadi jika Anda ingin menjalankan aplikasi X yang tidak dijalankan sebagai root, Anda harus menyalin ini terlebih dahulu. file (sebagai root) di tempat lain dan ubah pemilik salinan itu (atau lebih mungkin, Anda ingin mentransfer konten file ini ke file pengguna ~/.Xauthority
, menggunakan xauth add
atau xauth merge
).
Cara lain untuk menemukan file tempat cookie ajaib disimpan adalah dengan melihat lingkungan beberapa proses pengguna yang masuk (misalnya gnome-shell
proses). Misalnya dengan ps
Anda harus dapat menemukan id gnome-shell
proses dari proses (atau beberapa proses pengguna lain yang kami harapkan berjalan sebagai klien X), dan kemudian melihat /proc/<process-id>/environment
ke dalam untuk menemukan nilai envvar XAUTHORITY-nya.
xauth add