GNU/Linux >> Belajar Linux >  >> Linux

Linux:Bagaimana cara mengirim pesan ke pengguna lokal yang masuk ke X11?

xmessage alat memungkinkan Anda melakukan hal itu; menyajikan jendela munculan kepada pengguna dengan pesan teks di dalamnya.

Contoh:pengguna2 masuk ke sesi BASH di kotak dan mengeluarkan:

export DISPLAY=':0.0'
xmessage "some message here"

jika Anda masuk ke sesi TSCH, hasilnya akan seperti ini:

setenv DISPLAY ':0.0'
xmessage "some message here'

Alternatifnya, Anda dapat mengirim pesan ke sesi terminal dengan salah satu dari dua cara berikut:

Menggunakan wall (=peringatkan semua [pengguna])

Dari halaman manual:
Wall menampilkan konten file atau, secara default, input standarnya, di terminal semua pengguna yang saat ini masuk.

Jika Anda ingin menargetkan pengguna tertentu, gunakan write . Sekali lagi, pria memberi tahu kita:

Utilitas tulis memungkinkan Anda berkomunikasi dengan pengguna lain, dengan menyalin baris dari terminal Anda ke terminal mereka.


Sebagai aturan, sesi X11 biasanya dimulai dalam mode "pribadi", jadi Anda memerlukan salah satu dari dua hal ini:kerja sama dari user2 untuk memungkinkan Anda mengakses layar mereka, atau hak istimewa pengguna super untuk “membobol” layar mereka.

BAHAYA: Perlu diingat, setelah Anda memiliki akses ke layarnya, Anda juga dapat melakukan hal-hal seperti menangkap penekanan tombol (kemungkinan termasuk sandi) dan mengambil tangkapan layar, jadi ini merupakan risiko keamanan yang besar.

Di sebagian besar kasus, lebih baik menggunakan alat perpesanan atau program obrolan untuk hal-hal ini.

Selain peringatan:

Bekerjasama

Jika user2 ingin mengizinkan user1 untuk mengakses layar mereka, lalu user2 terlebih dahulu harus mengeluarkan perintah seperti:

 xhost +si:localuser:user1

Ini berpotensi ditambahkan ke semacam skrip start-up; Saya tidak tahu Fluxbox, tapi saya berasumsi ada rc atau hook memulai sesi.

Setelah ini diterbitkan, user1 kemudian dapat menulis ke user2 tampilan, jika mereka dapat menemukannya.

Jika user2 mengetahui hal ini, mereka selalu dapat mengirimkannya ke user1 dengan cara lain.

Menemukan Tampilan pengguna lain

Pada workstation biasa, tidak biasa memiliki lebih dari satu atau dua pengguna yang masuk; dalam hal ini, "menebak" bahwa tampilan yang Anda inginkan adalah 0, 1, atau mungkin 2 mungkin merupakan solusi yang bisa diterapkan.

Namun, untuk solusi yang lebih lengkap, anggap saja Anda memiliki mesin tempat banyak pengguna dapat masuk, dan coba temukan yang Anda inginkan.

for proc in /proc/[0-9]*/
do
     if [ Xorg = $(< $proc/comm ) ] 2>/dev/null && \
        [ $(id -u user2) -eq $(< $proc/loginuid) ] 2>/dev/null
     then
        for subproc in $(
        do
            echo "user2 display=" $(perl -ne 'if (m,DISPLAY=(.*)\0,) { print $1 }' < $subproc/environ)
        done
     fi
done

lalu, user1 akhirnya bisa (menggunakan nilai DISPLAY yang diperoleh di atas; saya baru saja menulis :14.0 di sini…)

DISPLAY=:14.0 xmessage "Hello, user2"

Mengirim Pemberitahuan saja

Demi kelengkapan, berikut ini berfungsi di desktop Gnome, setidaknya. Saya tidak tahu apakah Fluxbox memiliki widget notifikasi.

 DISPLAY=:14.0 notify-send "Hello, user2"

Ini memiliki lebih banyak opsi tampilan yang ramah pengguna, dan mungkin akan muncul dengan cara yang lebih ramah di layar pengguna.


Linux
  1. Bagaimana cara menambahkan pengguna ke grup di Linux

  2. Cara Mengirim Email ke Pengguna Eksternal Dengan Mailx di Linux

  3. Cara mengirim paket multicast melalui antarmuka khusus di Linux

  1. Cara Mengatur dan Menghapus Variabel Lingkungan Lokal, Pengguna dan Sistem di Linux

  2. Cara mengirim pesan facebook dari konsol linux (baris perintah)

  3. Bagaimana cara mengirim pesan ke soket web socket.io saya dari baris perintah di linux?

  1. Cara Mengubah Nama Pengguna di Linux

  2. Cara mengkonfigurasi banner login di Linux (RedHat, Ubuntu, CentOS, Fedora)

  3. Bagaimana cara mengirim pesan surat mentah di Linux?