]> Manuale di &ktalkd; David Faure
faure@kde.org
Luciano Montanaro
mikelima@cirulla.net
Traduzione del documento
&FDLNotice; 2001 David Faure 2001-05-02 1.05.02 &ktalkd; è un demone talk evoluto - un programma che processa le richieste in arrivo dal comando talk, le annuncia all'utente e permette di rispondere usando un client talk. KTALKD talk talkd otalk ntalk ktalkdlg kcmktalkd
Introduzione &ktalkd; è un demone talk evoluto - un programma che processa le richieste in arrivo dal comando talk, le annuncia all'utente e permette di rispondere usando un client talk. Nota che &ktalkd; è progettato per funzionare su macchine usate da un singolo utente, e non dovrebbe essere usato su macchine multiutente: poiché legge i file di configurazione dell'utente, gli utenti possono costringere il demone talk ad eseguire qualsiasi comando, e questo è particolarmente pericoloso. Non usare &ktalkd; se crei account per persone di cui non ti fidi completamente sulla tua macchina. In questo documento, se qualcuno vuole parlare con te, sarai identificato come il chiamato. &ktalkd; offre le seguenti funzionalità: Risponditore automatico Se il chiamato non è connesso al computer, o se non risponde dopo il secondo annuncio, viene avviato un risponditore automatico, che prende il messaggio e lo invia per posta elettronica al chiamato. Suono È possibile riprodurre un suono durante l'annuncio, se lo desideri. X Announce Se viene compilato con &kde; installato, &ktalkd; userà ktalkdlg, una finestra di dialogo di &kde;, per gli annunci. Se &ktalk; è già in esecuzione, verrà usato questo per dare l'annuncio (Nuova funzione a partire dalla versione 0.8.8). Annunci su più display Se sei connesso da remoto (⪚ con il comando export DISPLAY=...), l'annuncio di X sarà fatto anche sul display remoto. Rispondi all'annuncio dalla sessione che preferisci! Se sei connesso anche attraverso ad un terminale testuale, e se non stai usando xterm (è una limitazione interna), vedrai l'annuncio anche nel terminale, per il caso in cui tu usi il terminale al momento dell'annuncio. Inoltro (Nuova funzione, dalla versione 0.8.0) Puoi impostare l'inoltro ad un altro utente anche su un host differente se sei via. Ci sono tre diversi metodi di inoltro. Vedi la sezione Uso. Configurazione Se &ktalkd; è compilato per &kde;, legge la configurazione dai file delle impostazioni di &kde;, quelli globali ($KDEDIR/share/config/ktalkdrc) e quelli dell'utente, residenti nella cartella personale. Quello globale deve essere modificato a mano dall'amministratore, ma ora è disponibile una finestra di configurazione per quello personale. Si chiama kcmtalkd e si trova in &kcontrol; dopo l'installazione di &ktalkd;. Per i sistemi dove &kde; non è installato, &ktalkd; leggerà il file /etc/talkd.conf. Internazionalizzazione Sotto &kde; l'annuncio sarà fatto nella tua lingua a patto che tu l'abbia impostata dai menu di &kde; e che qualcuno abbia tradotto ktalkdlg nella tua lingua. Lo stesso è vero per la finestra di configurazione, kcmktalkd. Gestione di otalk e ntalk (Nuova funzione, dalla versione 0.8.1) &ktalkd; ora gestisce entrambi i protocolli, anche per l'inoltro. Ovviamente, anche &ktalk; gestisce entrambi i protocolli. Spero che questo demone per talk ti possa essere utile, David Faure faure@kde.org Uso Per usare &ktalkd; devi usare un client talk. Il programma da riga di comando talk è presente in quasi tutte le distribuzioni di sistemi &UNIX;. Prova ad usare talk tuo_nomeutente per vedere che cosa succede quando ricevi richieste talk. Puoi anche provare il risponditore automatico allo stesso modo: avvia un comando talk diretto a te stesso, ignora l'annuncio per due volte, e vedrai il risponditore automatico. C'è un client talk con interfaccia grafica per &kde;, &ktalk;. Non è ancora parte dei pacchetti di &kde; ma lo puoi trovare suftp://ftp.kde.org. Dovrebbe essere in ftp://ftp.kde.org/pub/kde/stable/latest/apps/network La finestra di dialogo dell'annucio è banale: Rispondi o Ignora. La finestra di configurazione dovrebbe essere abbastanza semplice da usare, tranne che per l'impostazione dell'inoltro ad un altro utente (o anche ad un altro host). Scelta del metodo di inoltro Nessuno è perfetto, ciascuno ha i suoi vantaggi (+) e svantaggi (-). FWA - (ForWard Announcement) solo inoltro dell'annuncio. Connessione diretta. Non è raccomandato. (+) Saprai chi è il chiamante, ma (-) il chiamante dovrà rispondere ad un annuncio da parte tua. Fastidioso. (-) Non usare questo metodo se hai un risponditore automatico all'indirizzo andato via. (Il risponditore automatico non può mostrare gli annunci, farebbe confusione!) FRW - (ForWard Requests) inoltra tutte le richieste, cambiando le informazioni se necessario Connessione diretta. (+) Il chiamante non saprà che sei assente, ma (-) non potrai sapere davvero chi è che ti chiama - solo il suo nome utente, (potresti vedere, ad esempio talk da Wintalk@mio_host) FWT - (ForWard and Talk) Inoltra tutte le richieste e accetta la chiamata. Nessuna connessione diretta. (+) Come sopra, ma funziona anche se tu ed il chiamante non potete essere in contatto diretto fra di voi (⪚ firewall). (+) ti verrà detto chi ti sta chiamando quando accetterai la chiamata (-) ma come nel caso FRW, non vedrai il nome della macchina nell'annuncio In breve, usa FWT se vuoi usarlo dietro ad un firewall (e se &ktalkd; può accedere ad entrambe le reti), e FWR altrimenti. Domande e risposte Come mai l'utente root non riceve gli annunci di &kde;? Perché questo sarebbe un problema di sicurezza, con il metodo attuale di identificazione dell'utente. Puoi aggirare questa limitazione aggiungendo due righe al file di configurazione di xdm (che sono gli stessi di &kdm;). La distribuzione S.u.S.E &Linux; normalmente è già predisposta con queste righe. Questi file di configurazione sono normalmente conservati in una cartella come /etc/X11/xdm, o /usr/X11R6/lib/X11/xdm su altri sistemi. Il resto della procedura presuppone che si trovino in /etc/X11/xdm, quindi preparati a correggere il percorso, se necessario. Ecco che cosa devi fare: Modifica il file Xstartup, o crealo, (nella cartella di configurazione di xdm) in modo che contenga: #!/bin/sh /etc/X11/xdm/GiveConsole sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER ed il file Xreset in modo che contenga: #!/bin/sh /etc/X11/xdm/TakeConsole sessreg -d -l $DISPLAY $USER Assicurati che xdm-config faccia riferimento ai suddetti file: DisplayManager._0.startup: /etc/X11/xdm/Xstartup DisplayManager._0.reset: /etc/X11/xdm/Xreset Questo farà in modo che &kdm; (o xdm) facciano accedere l'utente ad utmp, che è la procedura corretta. A mio parere, la procedura di login non è compito di &konsole; o di xterm. Questo, però, non farà connettere l'utente come utente di X se si usa startx... Qualcuno ha dei suggerimenti a proposito? Come mai io, come normale utente, non ricevo gli annunci di &kde;? Se usi un sistema &Linux; (con /proc abilitato) questo comportamento è un bug. Per piacere, mandami una descrizione del bug in modo che possa correggerlo. Se stai usando la versione 2.0.35 di &Linux;, questo è un bug noto del kernel, che non permette a root di leggere /proc. La soluzione è la stessa della domanda precedente, a patto che tu usi &kdm; o xdm per accedere ad X. In ogni caso, faresti bene ad aggiornare il sistema! Altrimenti, è tutto normale. &ktalkd; non riesce a trovare l'utente perché &kde; non lo registra in utmp ed il riconoscimento basato su &Linux; (/proc) è disabilitato. La soluzione è la stessa che nella domanda precedente, a patto che utilizzi kdm o xdm per accedere ad X. Un'altra soluzione è di assicurarti che una copia dell'applicazione xterm sia sempre in esecuzione. Come faccio ad ottenere un output di debug da &ktalkd;? Poiché è un demone, non ci sarà output di debug sull'output standard. Per ottenere l'output di debug (ad esempio prima di inoltrare la segnalazione di un bug!), aggiorna le righe di inetd.conf che avviano &ktalkd; e &kotalkd; in modo che si legga: talk dgram udp wait root /usr/sbin/tcpd /opt/kde/bin/ktalkd -d ntalk dgram udp wait root /usr/sbin/tcpd /opt/kde/bin/ktalkd -d Nota bene l'opzione . Quindi modifica /etc/syslog.conf per aggiungere la seguente riga: *.* /var/log/all_messages Perché funzioni, devi far ripartire inetd e syslogd: % killall % killall Infine, avvia una sessione di talk e leggi il risultato nel file /var/log/all_messages Quando inoltri la segnalazione di un bug, non dimenticare mai di includere l'output di debug, e riporta anche il numero di versione di &ktalkd; e l'output di ./configure. Copyright e licenze La manutenzione di &ktalkd; ed i suoi miglioramenti sono fatti da David Faure, faure@kde.org Il programma originale è stato scritto da Robert Cimrman, cimrman3@students.zcu.cz Luciano Montanaro mikelima@cirulla.net &underFDL; &underGPL; Installazione Dove trovare &ktalkd; &ktalkd; è ora un'applicazione del nucleo di &kde; http://www.kde.org, e fa parte del pacchetto kdenetwork. È sempre possibile scaricare l'ultima versione di &ktalkd; dal sito &FTP; principale del progetto &kde;, ftp://ftp.kde.org/pub/kde e dai suoi mirror. Normalmente la troverai in ftp://ftp.kde.org/pub/kde/stable/latest/apps/network Requisiti Per compilare con successo &ktalkd; ti servirà l'ultima versione delle librerie di &kde;, oltre alla libreria C++ &Qt;. Tutte le librerie richieste oltre a ktalkd stesso sono reperibili presso ftp://ftp.kde.org/pub/kde/ Compilazione e installazione Per compilare ed installare &ktalkd; sul tuo sistema, digita i seguenti comandi nella cartella base della distribuzione di &ktalkd;: % ./configure % make % make Poiché &ktalkd; è un demone, make richiederà i privilegi di root. Non dimenticare di aggiornare /etc/inetd.conf. Ad esempio, su un sistema &Linux;, se &kde; risiede in /opt/kde cambia le righe riguardanti talk e ntalk con: talk dgram udp wait root /usr/sbin/tcpd /opt/kde/bin/ktalkd ntalk dgram udp wait root /usr/sbin/tcpd /opt/kde/bin/ktalkd Viene fornito uno script che applica le modifiche necessarie automaticamente. Aggiorna il file inetd.cong semplicemente eseguendo % ./post-install.sh Comunque, dovrai riavviare inetd dopo aver fatto questo. Sulla maggior parte dei sistemi &Linux; invoca il seguente comando: % killall Sui sistemi più recenti che usano xinetd, non c'è più /etc/inetd.conf, ed è necessario invece creare un file chiamato /etc/xinetd.d/talk/, contenente le seguenti righe: service talk { socket_type = dgram wait = yes user = root server = /usr/bin/ktalkd } service ntalk { socket_type = dgram wait = yes user = root server = /usr/bin/ktalkd } quindi riavvia xinetd. Per piacere, fammi sapere se hai dovuto fare delle modifiche per compilare e far funzionare &ktalkd; sulla tua piattaforma.