GNU/Linux >> Belajar Linux >  >> Linux

Luncurkan Program Grafis Di Desktop Pengguna Lain Sebagai Root?

Berikut ini adalah pertanyaan lain yang menurut saya perlu saya ketahui:

  • Dari Sesi non X? (artinya root tidak login ke X)

  • Jika beberapa orang masuk di X, dapatkah saya mendeteksi secara otomatis siapa yang ada di layar mana, dan dengan demikian secara terprogram mendeteksi layar mana yang saya perlukan untuk meluncurkan aplikasi?

  • Bisakah saya meluncurkan aplikasi sebagai pengguna? ( ok saya 99,999% yakin ini adalah ya )

  • Bisakah saya mendeteksi jika pengguna grup X masuk ke X?

Jawaban yang Diterima:

Untuk meluncurkan program grafis di desktop pengguna, Anda perlu menemukan dua hal:tampilan desktop pengguna (alamat) dan cookie otorisasi apa yang digunakan (kata sandi).

Perintah berikut harus mencantumkan tampilan lokal tempat pengguna masuk (satu per baris) di sebagian besar uni:

who | awk -v user="$target_user" '$1 == user && $2 ~ "^:" {print $2}'

Menemukan cookie otorisasi sedikit lebih sulit. Anda harus mencari file cookie pengguna, yaitu ~/.Xauthority secara default (yang Anda butuhkan hanyalah lokasi file cookie, Anda tidak perlu mengekstrak cookie darinya). Itu bekerja pada banyak sistem, tetapi tidak semua; itu tergantung pada manajer tampilan dan bagaimana pengaturannya, dan khususnya Gdm (default pada Ubuntu) tidak menggunakan lokasi default terakhir saya melihat. Saya tidak dapat memikirkan cara portabel untuk mengetahui file cookie X yang sebenarnya. Cara paling akurat untuk mengetahuinya adalah dengan mengetahui pid dari proses X dan mencari argumen ke -auth pilihan. Cara lain adalah menemukan proses yang berjalan di server X itu dan mengambil XAUTHORITY variabel lingkungan. Jika Anda kesulitan menemukan file cookie, lihat Membuka jendela pada layar X jarak jauh (mengapa “Tidak dapat membuka tampilan”)?

Setelah Anda memiliki kedua informasi, letakkan tampilan yang dipilih di DISPLAY variabel lingkungan, file cookie otoritas X yang dipilih di XAUTHORITY variabel lingkungan, dan Anda sudah siap. Tidak masalah pengguna apa yang menjalankan program; gabungkan dengan su jika Anda suka.


Linux
  1. “error Membangun Proksi …” Saat Mencoba Meluncurkan Gnome-terminal Sebagai Root?

  2. Bagaimana Cara Beralih Dari Pengguna Root Ke Pengguna Lain Yang Memiliki Shell Nologin?

  3. Ulasan XeroLinux:Satu Lagi Distro Berbasis Arch untuk Pemula

  1. Apakah mungkin membuat skrip bash shell berinteraksi dengan program baris perintah lain?

  2. Bagaimana cara menjalankan program C++ di dalam program C++ lain?

  3. Apakah mungkin menjalankan aplikasi grafis seperti Firefox tanpa menginstal lingkungan desktop?

  1. Bagaimana Cara Menjalankan Program Tertentu Sebagai Root Tanpa Prompt Kata Sandi?

  2. Bagaimana Meluncurkan Serangkaian Program Di Dalam Tmux Atau Gnome-terminal Dalam Skrip?

  3. Bagaimana saya bisa mengizinkan satu pengguna untuk su ke yang lain tanpa mengizinkan akses root?