Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

rootin viestit kirjautuneille käyttäjille

0 views
Skip to first unread message

Mikko Rapeli

unread,
Oct 21, 2005, 4:01:18 AM10/21/05
to
Mitä keinoja ylläpitäjällä on tiedottaa sisään kirjautuneille
käyttäjille?

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

Mikko Rapeli

unread,
Oct 21, 2005, 4:58:51 AM10/21/05
to
Näemmä Debianin KDE ei ole utmp-tiedostoa pitkiin aikoihin päivitellyt,
joten KDE-käyttäjälle ei wall ja write -viestit näy:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=103864

-Mikko

Henri Vettenranta

unread,
Oct 21, 2005, 6:03:32 AM10/21/05
to
Mikko Rapeli <f...@bar.invalid> näppäili näppäimistönsä näppäimiä tuottaen
seuraavaa:

>
> Jos wall toimii konsolikäyttäjille hyvin, niin onko X-kirjautuneille
> jotain vastaavaa yleistä mokkulaa?

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

Mikko Rapeli

unread,
Oct 21, 2005, 6:53:23 AM10/21/05
to
On 2005-10-21, Henri Vettenranta <henr...@hotmail.com> wrote:
> 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:
<snip>

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

Mikko Tuumanen

unread,
Oct 21, 2005, 7:06:30 AM10/21/05
to
Henri Vettenranta <henr...@hotmail.com> kirjoitti 21.10.2005:
> 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.

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

Mikko Rapeli

unread,
Oct 21, 2005, 10:13:27 AM10/21/05
to
Debianissa Sargen KDE:n utmp-bugin/-ominaisuuden -- eli wall tai write eivät
saavuta KDE-käyttäjää -- saa muuten kierrettyä kirjoittamalla
suoraan kwrited:n pts:ään. Esim:

# 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

Tuomas Järvinen

unread,
Oct 22, 2005, 3:15:14 AM10/22/05
to
Mikko Rapeli wrote:


> 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~

0 new messages