Debuggen

>> CIS Index <<

Oeps. Van foutje naar foute boel

Als gebruiker internetten

Toegangsrechten van kppp

Speciale groepen: dialout

Sudo: gebruikers superuser rechten verlenen

Logbestanden bestuderen

Enige netwerk utilities

File locking problemen

Het kppp handboek



Oeps. Van foutje naar foute boel

Ga, als kppp niet naar behoren werkt, niet meteen van alles in het wilde weg veranderen. De kans dat u hiermee alleen maar nieuwe foutieve instellingen in het systeem introduceert is groot.

Loop - als het inloggen niet lukt - éérst uw CompuServe specifieke instellingen nog eens na. Let vooral op het script. Zit er geen spatie aan het eind van een regel? Heeft ùw Compuserve ID een punt i.p.v. de vereiste komma? Hebt u niet per abuis mijn ID ingevuld? Klopt uw wachtwoord? Houdt rekening met blinde vlekken. Als u nu geen fouten ziet kunt u misschien beter met een schone lei opnieuw beginnen.

Ga vooral niet te snel default instellingen veranderen. Wilt u eens iets uitproberen, dan maakt u het best een kopie aan van een werkend account ( Setup/ Account/ Kopieer). Dan kunt u altijd weer terug.

Let er op dat de modem specifieke informatie voor ieder account gebruikt wordt! Als u hier experimenteert dan kunt u beter eerst de oude waarden opschrijven. Verander ook hier nooit meer dan een instelling tegelijkertijd. Een typische beginnersfout is om niet meer te weten wat er veranderd is..

Als gebruiker internetten

UNIX en Linux stellen PPP en andere systeemprocessen niet zomaar beschikbaar aan gebruikers. Als u wel als root, maar niet als gebruiker kunt internetten, lees dan het volgende hoofdstuk even door.

Toegangsrechten van kppp

Als u als niet root een dialer gebruikt (Zie Nog enige opmerkingen) kunnen toegangsrechten tot de PPP interface tegenzitten. Recente versies van kppp gnome-ppp worden standaard met het SET User ID-bit geinstalleerd.

Hierdoor krijgt de uitvoerder van het programma kppp tijdelijk het gebruikersnummer van de eigenaar van het bestand.

Als de "s" in "-rwsr-xr-x" ontbreekt (zie de tabel hieronder) kunt u het met

chmod a+xs $KDEDIR/bin/kppp

als root het SETUID-bit installeren.

De variable $KDEDIR geeft hierbij de plaats van installatie van de KDE aan.

sjoerd@visser:~ > echo $KDEDIR

/opt/kde

Deze variabele maakt het mogelijk dat KDE RPM pakketen altijd in de goede directory terechtkomen.

Het kan ook met KFMSU: Naar de kde directory gaan /kde/bin/kppp selecteren. Rechtsklikken. Eigenschappen / Special / Set UID aanvinken.

Hieronder is een overzicht van de door kppp gebruikte bestanden

Nodig

Bestand

Toegangsrechten bij mij (als voorbeeld)

xs

$KDEDIR/bin/kppp

sjoerd@visser:~ > ls -l $KDEDIR/bin/kppp

-rwsr-xr-x 1 root root 489704 Apr 16 1999 /opt/kde/bin/kppp

x

/sbin/pppd

sjoerd@visser:~ > ls -l /usr/sbin/pppd

-rwsr-sr-- 1 root dialout 119092 Apr 15 1999 /usr/sbin/pppd

rw

/dev/ttySx

sjoerd@visser:~ > ls -l /dev/ttyS3

crwxrwxrw- 1 root uucp 4, 67 Dec 21 16:58

rw

/etc/resolv.conf

sjoerd@visser:~ > ls -l /etc/resolv.conf

-rw-r--r-- 1 root root 246 Dec 19 11:09 /etc/resolv.conf

rw

/var/lock

sjoerd@visser:~ > ls -l /var/lock

total 1

drwxr-xr-x 3 root root 1024 May 12 1999 subsys

r

/etc/ppp/options

sjoerd@visser:~ > ls -l /etc/ppp/options

-rw-r--r-- 1 root root 5909 Aug 6 17:55 /etc/ppp/options

r

/var/log/messages

sjoerd@visser:~ > ls -l /var/log/messages

-rw-r----- 1 root root 3584269 Dec 21 20:51 /var/log/messages



Speciale groepen: dialout

Een tweede methode is het gebruik van speciale groepen om toegangsrechten te verlenen. Vaak wordt de groep dialout door root gebruikt om de internet toegang te regelen. Hier kan de root individuele gebruikers (hier "sjoerd") aan toevoegen.

groupadd dialout

usermod -G dialout sjoerd

Met:

cd $KDEDIR/bin

chgrp dialout kppp

chmod g+x kppp

verandert u toegang tot kppp. Aangezien u dat ook voor de andere hierboven genoemde bestanden moet doen, is dat een hele klus. En zoals gezegd, is het voor de recentere versies niet nodig.

Sudo: gebruikers superuser rechten verlenen

Een derde methode is het gebruik van sudo. Zie: man sudo. Een dialer als wvdial kunt u eventueel ook met een superuser login (su) of met het utility sudo starten.

In uw ~/.bashrc kunt u bijv. opdrachten plaatsen als:

alias ifup="sudo /sbin/ifdown"

alias ifdown="sudo /sbin/ifdown"

om als gebruiker de genoemde root werktuigen in /sbin te gebruiken (deze waren voor RedHat scripts).

In /etc/sudoers worden door "root" rechten aan individuele gebruikers verleend.

sjoerd localhost=NOPASSWD:/sbin/ifup ppp0

sjoerd localhost=NOPASSWD:/sbin/ifdown ppp0

Hier is "sjoerd" de gebruiker met de specifiek voor de genoemde programma's verleende root toegangsrechten op de machine "localhost". Hiervoor is geen wachtwoord nodig. Omdat het programma onder het root account loopt, kan het andere root (systeem)bestanden vrijelijk benaderen. Gebruik sudo dus alleen als het op een andere manier (zonder root login) niet lukt.

Logbestanden bestuderen

Als het inloggen dan nog niet lukt, kunt u de output van het Log Venster kopiëren naar de Editor (K/ Toepassingen/ Editor), het bestand op een FAT schijf opslaan en in de Internet & Netwerk sectie van het Nllinux Forum te rade gaan.

Een ander plaats die bij het probleem oplossen van nut kan zijn is het bestand file:/var/log/messages. Als gebruiker kunt u het meestal niet lezen. Dit logbestand is onder bovenstaande link goed met kfmsu te bestuderen. Het bestand is erg groot en alleen voor de root benaderbaar. Zoek voor recente resultaten achterin (Ctrl-End) met de viewer less, die u afsluit met q(uit)

sjoerd@sjoerd:~ > su

Password:

root@sjoerd:/home/sjoerd > cat /var/log/messages | less

of met een geschikte editor (meteen een goede test).

Ook handig is het continu monitoren van de staart van het log bestand in een x terminal:

tail -f /var/log/messages

U kunt het bestand razendsnel doorzoeken op strings met:

cat/var/log/messages | grep "zoektekst"

De "zoektekst" hoeft niet tussen aanhalingsteken te staan als het een enkel woord betreft.

Enige netwerk utilities

Ping

Met het utility ping kunt u netwerkconnecties testen. Ping stuurt pakketjes naar een IP adres en luistert of ze beantwoord worden (denk aan een pingpong bal).

ping IP adres test of u een bepaald IP adres kunt bereiken. ping 127.0.0.1 test bijv. of er een TCP/IP loopback verbinding met uw eigen computer is. 127.0.0.1 is het Internet protocol (IP) adres van uw computer.

Ping hostname test tevens de Domain Name Service (DNS). De Domain Name Service vertaalt computernamen in IP adressen (name resolution). Elk TCP/IP netwerk heeft een eigen DNS service nodig. Als u met het internet verbonden wordt maakt u daarnaast gebruik van de DNS diensten van uw internet provider. localhost is de default hostname van uw computer. De eigenlijke naam van mijn computer op het netwerk (sjoerd) ziet u op de bash prompt als u inlogt met bash -login.

bash-2.02#

bash-2.02# bash -login

sjoerd:~ # ping localhost

PING localhost (127.0.0.1): 56 data bytes

64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.709 ms

64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.478 ms

64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.458 ms

64 bytes from 127.0.0.1: icmp_seq=3 ttl=255 time=0.457 ms

64 bytes from 127.0.0.1: icmp_seq=4 ttl=255 time=0.434 ms

64 bytes from 127.0.0.1: icmp_seq=5 ttl=255 time=0.465 ms

--- localhost ping statistics ---

6 packets transmitted, 6 packets received, 0% packet loss

round-trip min/avg/max = 0.434/0.500/0.709 ms

Na ontvangst van het zesde pakketje sloot ik ping af met Crtl-C.

sjoerd:~ # ping sjoed

ping: unknown host: sjoed

Een typo resulteert in de foutmelding : unknown.host. Als de DNS service niet zou werken kreeg u dezelfde foutmelding. Dit omdat de domeinnaam compuserve.com eerst in een IP adres vertaald moet worden, voordat de pakketjes verzonden kunnen worden.

sjoerd:~ # ping sjoerd

PING sjoerd.here (127.0.0.2): 56 data bytes

64 bytes from 127.0.0.2: icmp_seq=0 ttl=255 time=0.836 ms

64 bytes from 127.0.0.2: icmp_seq=1 ttl=255 time=0.473 ms

64 bytes from 127.0.0.2: icmp_seq=2 ttl=255 time=0.466 ms

64 bytes from 127.0.0.2: icmp_seq=3 ttl=255 time=0.462 ms

64 bytes from 127.0.0.2: icmp_seq=4 ttl=255 time=0.468 ms

--- sjoerd.here ping statistics ---

5 packets transmitted, 5 packets received, 0% packet loss

round-trip min/avg/max = 0.462/0.541/0.836 ms

Ping maakt na beeindiging met Ctrl-c altijd een rapportje aan.

sjoerd:~ # logout

bash-2.02#

bash-2.02# ping compuserve.com

ping: unknown host: compuserve.com

Werkt ping compuserve.com niet, maar ping IP adres wel, dan hebt u een probleem met de "name resolution" van de DNS. In het bovenstaande geval had ik gewoon geen internet verbinding. In het onderstaande geval wordt compuserve.com wel gevonden, maar beantwoort de pakketjes niet.

bash-2.02# ping compuserve.com

PING compuserve.com (149.174.183.136): 56 data bytes

--- compuserve.com ping statistics ---

82 packets transmitted, 0 packets received, 100% packet loss

trace

Pings meetwaarden zeggen niet zoveel over de snelheid van de verbinding. Een ip adres kan traag op ping reageren, hoewel de verbindingssnelheid goed is. Ping's packet loss statistieken zegt wel wat over de kwaliteit van de verbinding.

ifconfig

Ifconfig is het utility om de netwerkverbindingen te laten zien.

Log in als root (met su):

Password:

sjoerd:~ # ifconfig

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:3924 Metric:1

RX packets:1135 errors:0 dropped:0 overruns:0 frame:0

TX packets:1135 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

ppp0 Link encap:Point-to-Point Protocol

inet addr:195.232.12.50 P-t-P:195.232.126.31 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

RX packets:857 errors:48 dropped:0 overruns:0 frame:48

TX packets:783 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:10

lo is de local loopback interface waar o.a. de X server, print utilities en de Apache webserver gebruik van maken. Die moet er dus altijd zijn (onderdeel van de kernel). Het IP nummer is die van de localhost: 127.0.0.1 (d.w.z. uw eigen computer).

Ppp0 is de eerste ppp interface. Deze werd door kppp geactiveerd. Op dat moment was er een PPP verbinding tussen mijn computer en www.matrox.com.

File locking problemen

Mocht kppp klagen over een pid file dan zou het volgende commando moeten voldoen.

rm ~/.kde/share/apps/kppp/kppp.pid

De extensie pid staat voor proces ID. Tijdens het killen van kppp (bijv. als u het systeem onverhoopt moet afsluiten met Ctr-Alt-Del1), wordt het door kppp aangemaakte lock bestand (met het pid nummer) niet gewist. Als u Kppp daarna opstart weigert kppp verder te gaan.

Netscape heeft een soortgelijk bestand ~/.netscape/lock. Ook deze wordt niet gewist als u netscape killt (bijv met het doodskopje van KFM's Ctr-Alt-Esc).

Deze wist u met:

rm ~/.netscape/lock

Lock bestanden dienen problemen te voorkomen die ontstaan als gebruikers hetzelfde bestand twee keer gelijktijdig bewerken. Zo voorkomt het kppp lock file dat u een een door een ander gebruikt modem reset en zo diens verbinding voortijdig afsluit.

Het kppp handboek

Last but not least! Het kppp Handboek biedt veel nuttige informatie.

Veel vragen worden beantwoord in hoofdstuk 7.1 Frequently Asked Questions.



>> CIS Index <<

Deze tekst mag niet worden gewijzigd, vermenigvuldigd of voor commerciële doeleinden gebruikt worden zonder toestemming van de auteur. Deze tekst is afkomstig van een individueel CompuServe lid, niet van de organisatie CompuServe .

1Een CAD was bij mij nodig toen ik knetmon(intor) opstartte. Knetload deed het beter. Deze drijft ook over de andere applicaties heen.

Deze tekst mag niet worden gewijzigd, vermenigvuldigd of voor commerciële doeleinden gebruikt worden zonder toestemming van de auteur. © Sjoerd Visser (2000).