Perinteinen unix-tyyli lienee write ja wall, mutta nämä ei näytä Debian
Sargessa toimivan ainakaan heittämällä. Fedorassa näyttää ainakin
KDE-sessiossa käynnistyvän kwrited, joka näyttää wall-viestit
pop-up:ina.
Jos wall toimii konsolikäyttäjille hyvin, niin onko X-kirjautuneille
jotain vastaavaa yleistä mokkulaa?
Käyttötapauksena on se, että haluan varottaa käyttäjiä päivitysten
asentumisesta, jolloin varsinkin X-ohjelmat saattavat temppuilla.
-Mikko
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=103864
-Mikko
Miten nämä ihmiset ovat kirjautuneet X:ään? Jos kyse on enintään
muutamasta paikallisesta kirjautumisesta ja DISPLAYt tiedetään (tai
voidaan helposti arvata), voi käyttäjille lähettää xmessagella viestin,
vaikkapa seuraavasti:
# ps aux
...
kayttaja xxx 0,0 0,3 1704 996 ?? Is 12:29PM 0:00,09 /bin/sh /usr/lo
...
# xauth merge ~kayttaja/.Xauthority
# DISPLAY=:0 xmessage 'Kone ajetaan alas kernel-päivityksen takia.
> Ole hyvä ja kirjaudu ulos.'
(ps auxin tulosteesta on valittu rivi, jolla on jokin X:ään kirjautuneen
käyttäjän käynnistämä ohjelma, vaikkapa käyttäjän ikkunamanageri tai
työpöydän käynnistysohjelma.)
Jos käyttäjiä on useampia, tuo taitaa olla vähän työläs tapa, tai jos
koneelle kirjaudutaan myös etänä vaikka XDMCP:n avulla, DISPLAYta ei
voine samalla tavalla arvata.
--
"Aparaattia haittaa rapa."
--Alivaltiosihteeri
Mielenkiintoinen kikkailu, mutta ei tuota usealle koneelle jaksaisi
tehdä. Unixien sessio (kirjautumisen ja uloskirjautumisen välinen aika)
on näemmä aika sekava käsite, jonka hanskaus on sekavaa myös Linuxeissa.
Redhatit käyttää /usr/sbin/utempter:iä, mutta debianistit ei siitä
tykkää[1]. Suurin yhteinen nimittäjä X-sessiolle ja eri
työpöytäympäristöille vois kyllä olla tuo xmessage. Itseäni harmitta
myös se, ettei esim. ssh:n sftp-sessioita näy sessioina w:ssä ja pitää
erikseen netstat:illa ja logeja tutkimalla katsoa ketä on sisällä, ja
sama rajatuille ftp- ja http-yhteyksille.
Asiasta varmaan löytyy standardejakin, joita voisi tutkailla jos ehtisi
ja jaksaisi. Vai lisäiskö tieto vain tuskaa...
[1] http://archives.neohapsis.com/archives/linux/lsap/2001-q1/0066.html
-Mikko
Displayt saa selville näin (roottina):
ls /proc|egrep ^[0-9]+$|while read x ; do cat /proc/$x/environ ; done \
2>/dev/null |tr '\000' '\n'| grep DISPLAY|sort -u
Tosin tuota pitää vielä hieman muokata, jotta saataisiin oikea käyttäjä (ja
Xauthority) yhdistettyä oikeaan prosessiin.
--
En lue top-postauksia, enkä pienellä kirjaimella alkavia virkkeitä.
http://users.utu.fi/mijutu/nyyssit.html
# for f in /dev/pts/*; do echo Konetta päivitetään. Varautukaa\
kirjautumaan ja/tai käynnistämään ohjelmat uudelleen. T:root\
> $f ; done
man pts(4) ei kyllä kerro kuinka sallittua tai vaarallista tuo olisi.
Ilmeisesti devpts-tiedostot luodaan tarpeen mukaan, joten kaikki avoimet
virtuaaliterminaalit saavat viestin tuota kautta.
Joko ammuin itseäni jalkaan ja kuinka pahasti?
-Mikko
> myös se, ettei esim. ssh:n sftp-sessioita näy sessioina w:ssä ja pitää
> erikseen netstat:illa ja logeja tutkimalla katsoa ketä on sisällä, ja
> sama rajatuille ftp- ja http-yhteyksille.
Ainakin ftpwho toimii melko usealla ftp-palvelinsoftan kanssa, apachelle
taitaa olla atop, joka on top:a vastaava. http:n tapaussessa homma on
vähän vaikeampi, koska se on tilaton protokolla, kaikki mahdollinen
autentikointi yms. tapahtuu aina, kun clientti pyytää jotain palvelimelta.
~mtjj~