File: Tips-HOWTO-NL.sgml

package info (click to toggle)
doc-linux-nl 20051127-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 16,408 kB
  • ctags: 94
  • sloc: xml: 47,403; makefile: 312; perl: 193; sh: 116; ansic: 12; csh: 9
file content (1042 lines) | stat: -rw-r--r-- 37,882 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
<!doctype linuxdoc system> 
<linuxdoc>
<article>
<titlepag>
<title>De Linux Tips HOWTO</title>
<author><name>Paul Anderson, <tt/paul@geeky1.ebtech.net/,<newline>
Vertaald door: Ellen Bokhorst, <tt>bokkie@nl.linux.org</tt></name></author>
<date>v3.6, juni 1998</date>

<abstract>
Deze HOWTO bevat die moeilijk te vinden aanwijzingen en fijnafstemmingen
die Linux er wat fraaier op maken.
</abstract>
</titlepag>
<toc>

<sect><heading>Introductie</heading>
<p>
Welkom bij de <bf>Linux Tips HOWTO</bf>, een lijst met handige truuks en
optimalisaties die Linux er leuker op maken. Alles wat hier nu in staat, zijn
tips die ik uit mijn hoofd ken, en tips vanuit mijn oude Tips-HOWTO
(Waarom zou je er fatsoenlijke tips uithalen, nietwaar?). 
Dus stuur al je favoriete tips naar me op, zodat ik ze in de volgende
Tips-HOWTO kan plaatsen.

Paul Anderson <em/Maintainer--Linux TIPS HOWTO/

<tt>panderso@ebtech.net</tt>
</p>
</sect>

<sect><heading>Kleine Tips</heading>

<sect1><heading>Handige Syslog Truuk <it/Paul Anderson, Tips-HOWTO maintainer/
</heading>

<p>
Wijzig je /etc/syslog.conf, en plaats daarin de volgende regel:
<tscreen><verb>
# Dump alles naar tty8
*.*					/dev/tty8
</verb></tscreen>
Een voorbehoud: <it/DENK ERAAN TABS TE GEBRUIKEN!/  syslog houdt niet van spaties...
</p>
</sect1>

<sect1><heading>
Script om die gecomprimeerde HOWTO's te bekijken. 
<it/Didier Juges,/ <tt/dj@destin.nfds.net/</heading>
<p>

Voor de ene aan de andere newbie is hier een klein script die het zoeken naar
en het bekijken van howto documenten vereenvoudigt.
Mijn howto's staan in /usr/doc/faq/howto/ en zijn met gzip gecomprimeerd.
De bestandsnamen zijn XXX-HOWTO.gz, met XXX als het onderwerp.
Ik maakte het volgende script aan met de naam "howto" in de directory
/usr/local/sbin:
<tscreen><code>
#!/bin/sh
if [ "$1" = "" ]; then
    ls /usr/doc/faq/howto | less
else
    gunzip -c /usr/doc/faq/howto/$1-HOWTO.gz | less
fi
</code></tscreen>
Wanneer aangeroepen zonder argument, toont het een directory met de
beschikbare howto's. Wanneer vervolgens ingevoerd met het eerste deel
van de bestandsnaam (voor het koppelteken) als een argument, toont het
dan het gedecomprimeerde bestand (waarbij het origineel intact blijft).

Om bijvoorbeeld de Serial-HOWTO.gz te bekijken, typ je:

$ howto Serial
</p>
</sect1>

<sect1><heading>
Is er voldoende vrije ruimte??? 
<it/Hans Zoebelein,/ <tt/zocki@goldfish.cube.net/</heading>

<p>
Dit is een klein script waarmee van tijd tot tijd wordt gecontroleerd
of er voldoende vrije ruimte beschikbaar is op alles wat mount laat zien
(disks, cdrom, diskette...)

Als de ruimte opraakt, wordt iedere X seconden op het scherm een
melding weergegeven en 1 mailbericht per gevuld device afgevuurd.

<tscreen><code>
#!/bin/sh

#
# $Id: Tips-HOWTO-NL.sgml,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $
#

#
# Sinds ik tijdens het compileren mysterieuze foutmeldingen kreeg toen
# tmp bestanden mijn disks opvulden, schreef ik dit om een waarschuwing te
# krijgen voordat de disks vol zijn.
#
# Als hiermee werd voorkomen dat je servers explodeerde
# stuur dan een lovende email naar zocki@goldfish.cube.net.
# Als je site hierdoor afbrandt, dan sorry, maar ik heb je
# gewaarschuwd: geen klachten.
# Vergeef me alsjeblieft als je echt weet hoe met sed om te gaan :)
#

#
# Alle gekheid op een stokje: Plaats `check_hdspace &' in rc.local.
# Controleer iedere $SLEEPTIME sec. op vrije ruimte op devices.
# Je zou zelfs je diskettes of tape drives erop kunnen controleren. :)
# Als de vrije ruimte onder de $MINFREE (kb) komt, zal er een waarschuwing
# op het scherm weerkaatsen en voor elke device waarop een tekort aan
# ruimte is geconstateerd een mail worden gestuurd aan $MAIL_TO_ME.
# Als er weer meer vrije ruimte is dan de limiet, gaat het ook weer gepaard
# met een mailactie.

# TEDOEN: Verschillende $MINFREE voor elk device.
# Bevrijd /*tmp dirs veilig van oude rommel als er geen vrije ruimte meer is.


DEVICES='/dev/sda2 /dev/sda8 /dev/sda9'         # device; hier plaats je disks
MINFREE=20480                                   # kb; hieronder een waarschuwing
SLEEPTIME=10                                    # sec; pauze tussen controles
MAIL_TO_ME='root@localhost'                     # dwaas; aan wie de waarschuwingsmail


# ------- geen wijzigingen nodig onder deze regel (hopelijk :) -------

MINMB=0
ISFREE=0
MAILED=""
let MINMB=$MINFREE/1024         # ja, we zijn strict :)

while [ 1 ]; do
        DF="`/bin/df`"
	        for DEVICE in $DEVICES ; do
		ISFREE=`echo $DF | sed s#.\*$DEVICE" "\*[0-9]\*""\*[0-9]\*" "\*## | sed s#" ".\*##`
		
		if [ $ISFREE -le $MINFREE ] ; then
			let ISMB=$ISFREE/1024
			echo  "WAARSCHUWING: Slechts $ISMB vrij op $DEVICE." >&2
			#echo "meer code/tekst hier plaatsen" >&2
			echo -e "\a\a\a\a"
			
			if [ -z  "`echo $MAILED | grep -w $DEVICE`" ] ; then
				echo "WAARSCHUWING: Slechts $ISMB vrij op $DEVICE.      (Trigger is ingesteld op $MINMB mb)" \
				| mail -s "WAARSCHUWING: Slechts $ISMB vrij op $DEVICE!" $MAIL_TO_ME
				MAILEDH="$MAILED $DEVICE"
				MAILED=$MAILEDH
				# plaats verdere acties, zoals opschonen van
				# */tmp dirs hier...
			fi
			elif [ -n  "`echo $MAILED | grep -w $DEVICE`" ] ; then
				# Verwijder mailed markering als er weer voldoende
                                # diskruimte is. Zodat we klaar staan voor nieuwe
                                # mailactie.
				MAILEDH="`echo $MAILED  | sed s#$DEVICE##`"
				MAILED=$MAILEDH
			fi
			
		done
		sleep $SLEEPTIME

done
</code></tscreen>
</p>
</sect1>


<sect1><heading>Util om je logbestanden op te schonen. 
<it/Paul Anderson, Tips-HOWTO Maintainer/></heading>
<p>
Ben je net als ik, dan heb je een lijst met 430 subscribers, plus 100+ berichten
per dag die via UUCP binnenkomen. Wat moet een hacker met zulke grote logs?
Installeer chklogs, dat is wat je kunt doen.
Chklogs is geschreven door Emilio Grimaldo, <tt/grimaldo@panama.iaehv.nl/,
en de huidige versie 1.8 is beschikbaar vanaf
ftp.iaehv.nl:/pub/users/grimaldo/chklogs-1.8.tar.gz.
Het is tamelijk eenvoudig te installeren (je zult natuurlijk de info
in de doc subdirectory erop nazien). Zodra je het hebt ge&iuml;nstalleerd,
voeg je als volgt een crontab record in:
<tscreen><verb>
# Voer dagelijks chklogs uit om 9:00PM.
00 21 * * *       /usr/local/sbin/chklogs -m
</verb></tscreen>
<!-- While you're at it, mention to the author how nice a peice of software 
this is:) -->
</p>
</sect1>

<sect1><heading>Handig script om core bestanden op te schonen
<it/Otto Hammersmith,/<tt/ohammers@cu-online.com/</heading>

<p>
Maak een bestand aan met de naam rmcores (de auteur noemt het handle-cores) 
met daarin het volgende:
<tscreen><code>
#!/bin/sh
USAGE="$0 <directory> <message-file>"

if [ $# != 2 ] ; then
        echo $USAGE
        exit
fi

 echo Aan het verwijderen...
find $1 -name core -atime 7 -print -type f -exec rm {} \;

echo e-mailen
for name in `find $1 -name core -exec ls -l {} \; | cut -c16-24`
do
        echo $name
        cat $2 | mail $name
done

</code></tscreen>

En laat het middels een cron job zeer vaak uitvoeren.
</p>
</sect1>

<sect1><heading>Directory's van het ene naar het andere bestandssysteem 
verplaatsen <it/Alan Cox,/<tt/A.Cox@swansea.ac.uk/</heading>

<p>
Snelle manier om een gehele structuur met bestanden van de ene naar de andere
disk te verplaatsen
<tscreen><verb>
(cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -)
</verb></tscreen>
<it>[ Wijziging van cd /source/directory; tar....enz.  
ter voorkoming van een ramp waarmee de directory mogelijk wordt verwijderd.
Met dank aan Jim Dennis, jim@starshine.org, dat hij me dit liet weten.
-Maint. ]</it>
</p>
</sect1>

<sect1><heading>Uitzoeken wat de grootste directory's zijn. <it/Mick Ghazey,/
<tt/mick@lowdown.com/</heading>

<p>
Je ooit afgevraagd welke directory's het grootst zijn op je computer?  
Zo kom je daar achter.
<tscreen><verb>
du -S | sort -n
</verb></tscreen>
</p>
</sect1>

<sect1><heading>De Linux Gazette</heading>

<p>
Eer komt John Fisk toe, oprichter van de Linux Gazette. Dit is een uitstekend
e-zine en het is <bf/GRATIS!!!/  Wat valt er meer te wensen?
Bekijk het op:
<tscreen><verb>
http://www.linuxgazette.com
</verb></tscreen>
BTW, Het schijnt dat (1) LG nu per maand uitkomt, en (2) 
John Fisk het niet langer onderhoudt, de lui bij SSC doen dit.
</p>
</sect1>

<sect1>
<heading>Verwijzer naar patch voor GNU Make 3.70 om het functioneren van
VPATH te wijzigen.
<it/Ted Stern,/ <tt/stern@amath.washington.edu/</heading>

<p>
Ik weet niet of veel mensen dit probleem hebben, maar er is een "faciliteit"
van GNU make versie 3.70 die ik niet prettig vind. Het gaat erom dat VPATH
zich raar gedraagt als je het een absolute padnaam opgeeft. Er is een
uiterst degelijke patch waarmee dit wordt gecorrigeerd, die je kunt krijgen
van Paul D. Smith <tt>&lt;psmith@wellfleet.com></tt>.  Hij post de documentatie
en patch ook na elke revisie van GNU make in de nieuwsgroep
&quot;gnu.utils.bug&quot; Over het algemeen pas ik deze patch toe en 
hercompileer gmake op elk systeem waarop ik toegang heb.
</p>
</sect1>

<sect1><heading>Hoe stop ik mijn systeem dat het fsck uitvoert bij elke reboot? <it/Dale Lutz,/ <tt/dal@wimsey.com/</heading>

<p>
V:  Hoe stop ik e2fsck dat het mijn disk elke keer bij het booten controleert.

A:  Wanneer je de kernel opnieuw bouwt, wordt het bestandssysteem als
    `dirty' gemarkeerd en dus zal je disk bij elke boot worden gecontroleerd.
    Je kunt dit corrigeren door het opstarten van:

        rdev -R /zImage 1

    Dit corrigeert de kernel zodat het er niet langer van overtuigd is dat
    het bestandssysteem `dirty' is.

<em/Noot: Voeg als je lilo gebruikt /<tt/read-only/ toe <em>aan je linux
setup in je lilo config bestand (gewoonlijk /etc/lilo.conf) </em>
</p>
</sect1>

<sect1><heading>Hoe fsck's te voorkomen door een "device busy" tijdens het 
booten. <it/Jon Tombs,/ <tt/jon@gtex02.us.es/</heading>

<p>
Als je vaak device busy fouten krijgt bij een shutdown die veroorzaken
dat op het bestandssysteem bij een reboot een fsck moet worden toegepast,
dan is hier een eenvoudige correctie:

Voeg aan <tt>/etc/rc.d/init.d/halt</tt> of <tt>/etc/rc.d/rc.0</tt>
de regel
<tscreen><verb>
mount -o remount,ro /mount.dir
</verb></tscreen>
toe voor alle gemounte bestandssystemen, behalve voor /, voor de aanroep
naar umount -a. Dit betekent dat als het een shutdown om de een of andere reden 
niet lukt alle processen te killen en de disks te unmounten, ze bij een reboot
toch clean zullen zijn. Het bespaart mij bij een reboot een heleboel tijd.
</p>
</sect1>

<sect1><heading>Hoe de grootste bestanden op je harddisk te vinden.
<it/Simon Amor,/ <tt/simon@foobar.co.uk/</heading>
<p>
<tscreen><verb>
ls -l | sort +4n
</verb></tscreen>
</p>
<p>
Of voor degenen voor wie de ruimte er werkelijk op aankomt duurt dit wel
even, maar het werkt geweldig:
</p>
<p>
<tscreen><verb>
cd /
ls -lR | sort +4n
</verb></tscreen>
</p>
</sect1>

<sect1><heading>Hoe druk ik pagina's af met een marge voor perforatiegaten. <it/Mike Dickey,/ <tt/mdickey@thorplus.lib.purdue.edu/</heading>

<p>
<tscreen><code>
        #!/bin/sh
        # /usr/local/bin/print
        # een eenvoudige opgemaakte afdruk, om het iemand mogelijk te maken
        # 3 gaten in de uitvoer te ponsen en het samen te binden

        cat $1 | pr -t -o 5 -w 85 | lpr
</code></tscreen>
</p>
</sect1>

<sect1><heading>Een manier om bestandsstructuren te doorzoeken op een bepaalde
reguliere expressie.
<it/Raul Deluth Miller,/ <tt/rockwell@nova.umd.edu/</heading>

<p>
Ik noem dit script 'forall'.  Gebruik het als volgt:
<tscreen><verb>
forall /usr/include grep -i ioctl
forall /usr/man grep ioctl
</verb></tscreen>
Hier is forall:
<tscreen><code>
#!/bin/sh
if [ 1 = `expr 2 \> $#` ]
then
        echo Gebruik: $0 dir cmd [optargs]
        exit 1
fi
dir=$1
shift
find $dir -type f -print | xargs "$@"
</code></tscreen>
</p>
</sect1>

<sect1><heading>Een script voor opschonen nadat programma's autosave en 
backup bestanden hebben aangemaakt <it/Barry Tolnas,/ <tt/tolnas@nestor.engr.utk.edu/</heading>
<p>
Hier is een simpel tweeregelig script waarmee directory's worden afgedaald
om emacs auto-save (&num;) en backup (&tilde;) bestanden, .o bestanden en
TeX .log bestanden te verwijderen. Het comprimeert tevens .tex bestanden
en README bestanden. Ik noem het op mijn systeem 'squeeze'.
<tscreen><code>
#!/bin/sh
#SQUEEZE verwijdert onnodige bestanden en comprimeert .tex en README bestanden
#Door Barry tolnas, tolnas@sun1.engr.utk.edu
#
echo squeezing $PWD
find  $PWD \( -name \*~ -or -name \*.o -or -name \*.log -or -name \*\#\) -exec
rm -f {} \;
find $PWD \( -name \*.tex -or -name \*README\* -or -name \*readme\* \) -exec gzip -9 {} \;
</code></tscreen>
</p>
</sect1>

<sect1><heading>Hoe kom ik erachter welke processen het meeste geheugen in beslag nemen. <it/Simon Amor,/ <tt/simon@foobar.co.uk/</heading>
<p>
<tscreen><verb>
ps -aux | sort +4n
</verb></tscreen>
-OF-
<tscreen><verb>
ps -aux | sort +5n
</verb></tscreen>
</p>
</sect1>

<sect1><heading>Vi optuigen voor het programmeren in C, 
<it/Paul Anderson,/<tt/Tips-HOWTO Maintainer/</heading>
<p>
Ik programmeer in mijn vrije tijd nogal wat in C en ik heb er de tijd voor
genomen vi op te tuigen zodanig dat het C vriendelijk is. Hier is mijn .exrc:
<tscreen><code>
set autoindent
set shiftwidth=4
set backspace=2
set ruler
</code></tscreen>
</p>
<p>
Wat doet het?  autoindent zorgt dat vi automatisch elke regel volgend op de
eerste inspringt, shiftwidth stelt de afstand van ^T in op 4 spaties, backspace
stelt de backspace modus in, en ruler zorgt dat het regelnummer wordt
weergegeven. Denk eraan, om naar een specifiek regelnummer te gaan, stel 20, 
gebruik je:

<tscreen><code>
vi +20 myfile.c
</code></tscreen>
</p>
</sect1>

<sect1><heading>Gebruik ctags om het programmeren te vereenvoudigen</heading>
<p>
De meeste hackers hebben ctags reeds op hun computers, maar gebruiken het niet.
Het kan erg handig zijn voor het wijzigen van specifieke functies. Stel dat je
een functie hebt in &eacute;&eacute;n van de vele bronbestanden in een
directory voor een programma dat je aan het schrijven bent, en je wilt deze
functie vanwege updates wijzigen. We zullen deze functie foo() noemen.
Je weet niet waar het zich in het bronbestand bevindt. Hier komt ctags
om de hoek kijken. Wanneer het wordt uitgevoerd, produceert ctags een bestand
met de naam tags in de huidige dir, wat uit een opsomming bestaat met alle
functies, in welke bestanden deze zich bevinden en waar in het bestand.
Het bestand tags ziet er ongeveer zo uit:

<tscreen><code>

ActiveIconManager	iconmgr.c	/^void ActiveIconManager(active)$/
AddDefaultBindings	add_window.c	/^AddDefaultBindings ()$/
AddEndResize	resize.c	/^AddEndResize(tmp_win)$/
AddFuncButton	menus.c	/^Bool AddFuncButton (num, cont, mods, func, menu, item)$/
AddFuncKey	menus.c	/^Bool AddFuncKey (name, cont, mods, func, menu, win_name, action)$/
AddIconManager	iconmgr.c	/^WList *AddIconManager(tmp_win)$/
AddIconRegion	icons.c	/^AddIconRegion(geom, grav1, grav2, stepx, stepy)$/
AddStartResize	resize.c	/^AddStartResize(tmp_win, x, y, w, h)$/
AddToClientsList	workmgr.c	/^void AddToClientsList (workspace, client)$/
AddToList	list.c	/^AddToList(list_head, name, ptr)$/
</code></tscreen>
</p>

<p>
Om bijvoorbeeld AddEndResize() met vim te wijzigen, geef je op:

<tscreen><verb>
vim -t AddEndResize
</verb></tscreen>
Hierdoor verschijnt het van toepassing zijnde bestand in de editor, met de
cursor aan het begin van de functie.
</p>
</sect1>

<sect1><heading>Waarom hangt sendmail 5 minuten bij het opstarten onder RedHat? <it/Paul Anderson,/ <tt/paul@geeky1.ebtech.net/</heading>
<p>
Dit is een tamelijk algemeen probleem. Ik weet niet of RedHat deze bug al
in hun distributie heeft gecorrigeerd, maar je kunt het zelf repareren.
Als je in het bestand /etc/hosts kijkt, zul je zien dat het er ongeveer zo uitziet:
<tscreen><verb>
127.0.0.1		localhost	jebox
</verb></tscreen>
</p>
<p>
Wanneer sendmail start, zoekt het je hostnaam op (in dit voorbeeld, jebox).
Het bemerkt dan dat het IP van jebox 127.0.0.1 is. Sendmail heeft hier
problemen mee, dus voert het de zoekopdracht nogmaals uit. Het gaat hier een
tijdje mee verder totdat het uiteindelijk opgeeft en stopt. Het corrigeren
van het probleem is zeer eenvoudig. Wijzig het bestand /etc/hosts zodat het
er ongeveer zo uit komt te zien:
<tscreen><verb>
127.0.0.1		localhost
10.56.142.1		jebox
</verb></tscreen>
</p>
</sect1>


<sect1><heading>Hoe configureer ik RedHat voor gebruik van color-ls? 
<it/Paul Anderson,/ <tt/paul@geeky1.ebtech.net/</heading>
<p>
De distributie van RedHat wordt geleverd met color-ls.
Waarom ze het echter standaard niet voor kleurengebruik configureren, is
me een raadsel. Zo kun je het corrigeren.</p>
<p>
Typ als eerste: eval `DIRCOLORS`</p>
<p>Vervolgens, alias ls='ls --color=auto'</p>
<p>En plaats de 'alias.....' in /etc/bashrc</p>
</sect1>


<sect1><heading>Hoe kom ik erachter welke library in /usr/lib een bepaalde functie bevat?  <it/Pawel Veselow,/ <tt/vps@unicorn.niimm.spb.su/</heading>
<p>
Wat als je aan het compileren bent en je hebt een library gemist die
moet worden gelinkt? Alle verslagen van gcc bestaan uit functienamen... Hier
is een simpele opdracht dat zal vinden waarnaar je op zoek bent:
<tscreen><verb>
for i in *; do echo $i:;nm $i|grep tgetnum 2>/dev/null;done
</verb></tscreen>
</p>
<p>
tgetnum is hier de naam van de functie waar je naar op zoek bent.
</p>
</sect1>


<sect1><heading>Ik compileerde een klein testprogramma in C, maar toen ik het uit probeerde te voeren, kreeg ik geen uitvoer!</heading>
<p>
Je hebt het programma waarschijnlijk in een binary met de naam test
gecompileerd, nietwaar? Linux heeft een programma met de naam test, 
die test of een bepaalde conditie waar is, het produceert nooit enige
uitvoer op het scherm. Probeer in plaats van gewoon test, het intikken
van: ./test
</p>
</sect1>
</sect>

<sect><heading>Gedetailleerde Tips</heading>

<sect1><heading>Delen van swappartities tussen Linux en Windows. 
<it/Tony Acero,/ <tt/ace3@midway.uchicago.edu/</heading>

<p><enum>
<item> Formatteer de partitie als een dospartitie, en cre&euml;er er het
Windows swapbestand op, maar draai windows nog niet. (Je wilt het swapbestand
op het moment nog leeghouden, zodat het goed comprimeert).
</item>

<item> Boot linux en bewaar de partitie in een bestand.  
Als de partitie bijvoorbeeld /dev/hda8 is:
<tscreen><verb>
dd if=/dev/hda8 of=/etc/dosswap
</verb></tscreen>
</item>

<item> Comprimeer het dosswap bestand; aangezien het praktisch allen
nullen zijn, zal het zeer goed comprimeren
<tscreen><verb>
gzip -9 /etc/dosswap
</verb></tscreen>
</item>

<item> Voeg het volgende toe aan het /etc/rc bestand
om de swapspace onder Linux voor te bereiden en te installeren:

<em/XXXXX is het aantal blokken in de swappartitie/
<tscreen><verb>
mkswap /dev/hda8 XXXXX
swapon -av   
</verb></tscreen>
Zorg dat je een regel toevoegt in het /etc/fstab bestand voor de swappartitie
</item>

<item> Als het package init/reboot /etc/brc of /sbin/brc ondersteunt, voeg
je het volgende toe aan /etc/brc, doe dit anders met de hand, wanneer je
in dos|os/2 boot en je de swappartitie weer wilt omzetten naar de dos/windows
versie:
</item>
</enum>

<tscreen><verb>
swapoff -av
zcat /etc/dosswap.gz | dd of=/dev/hda8 bs=1k count=100
</verb></tscreen>
# Merk op dat hiermee slechts de eerste 100 blokken naar de partitie worden
# teruggeschreven.
# Ik heb door ervaring gemerkt dat dit voldoende is

&gt;  Wat zijn hier de voors en tegens van?

Voors: je bespaart een substanti&euml;le hoeveelheid schijfruimte

Tegens: Als stap 5 niet automatisch gaat, dan moet je eraan denken dit
met de hand te doen, en het vertraagt het rebootproces met een nanoseconde :-)
</p>
</sect1>

<sect1><heading>
Wanhopige Undelete. <it/Michael Hamilton,/ <tt/michael@actrix.gen.nz/
</heading>

<p>
Hier is een truuk die ik al een paar keer heb moeten gebruiken

<!-- Desperate person's text file undelete. -->

Als je per ongeluk een tekstbestand verwijdert, zoals bijvoorbeeld
wat email, of het resultaat van een programmeersessie op de late avond,
hoeft alles niet verloren te zijn. Als het bestand het ooit naar disk
haalde, d.w.z. dat het daar meer dan 30 seconden was, dan kan het zijn dat
de inhoud nog steeds op de diskpartitie voorkomt.

Je kunt de opdracht grep gebruiken om de ruwe diskpartitie te doorzoeken
op de inhoud van het bestand.

Ik verwijderde bijvoorbeeld onlangs per ongeluk een deel van m'n email.
Dus staakte ik onmiddellijk mijn activiteiten die deze partitie konden
wijzigen: in dit geval zag ik gewoon af van het opslaan van mijn
bestanden of het uitvoeren van compilaties, enz. Onder andere omstandigheden
heb ik me de moeilijkheid op de hals gehaald door het systeem in single
user modus te brengen en het bestandssysteem te unmounten.

Ik paste toen de opdracht egrep toe op de diskpartitie:
in mijn geval bevond het emailbericht zich in /usr/local/home/michael/,
dus aan de uitvoer van df, kon ik zien dat dit op /dev/hdb5 was.
<tscreen><verb>
  sputnik3:~ % df
    Filesystem         1024-blocks  Used Available Capacity Mounted on
    /dev/hda3              18621    9759     7901     55%   /
    /dev/hdb3             308852  258443    34458     88%   /usr
    /dev/hdb5             466896  407062    35720     92%   /usr/local

    sputnik3:~ % su
    Password:
    [michael@sputnik3 michael]# egrep -50 'ftp.+COL' /dev/hdb5 > /tmp/x
 </verb></tscreen>
 Nu ben ik extreem voorzichtig wanneer ik met diskpartities aan de gang
 ga, dus ik pauzeerde om er zeker van te zijn dat ik de syntax van de
 opdracht begreep VOORDAT ik de return indrukte. In dit geval bevatte
 de email het woord 'ftp' gevolgd door wat tekst gevolgd door het woord
 `COL'. Het bericht bestond uit ongeveer 20 regels, dus gebruikte ik -50
 om alle regels rondom de woorden te krijgen. Voorheen gebruikte ik altijd
 -3000 om er zeker van te zijn dat ik alle regels kreeg van een of andere
 broncode. Ik stuurde de uitvoer van egrep door naar een andere diskpartitie.
 Hiermee voorkwam ik dat er over het bericht heengeschreven zou worden
 waar ik naar aan het zoeken was.
 
 Vervolgens gebruikte ik strings om me te helpen de uitvoer te inspecteren.
 <tscreen><verb>
   strings /tmp/x | less
 </verb></tscreen>
 Zeker weten dat de email zich daarin bevond.
 
 Deze methode is niet betrouwbaar; alle of een deel van de schijfruimte
 kan reeds zijn hergebruikt.
 
Deze truuk is waarschijnlijk alleen bruikbaar op single user systemen.
Op multi-user systemen met nogal wat diskactiviteit, kan de ruimte die je
hebt vrijgemaakt reeds weer zijn gebruikt. En de meesten van ons kunnen
niet zomaar de box vandaan trekken bij onze gebruikers wanneer we ooit
een bestand moeten herstellen.
 
Op mijn systeem thuis is deze truuk me in de afgelopen paar jaar
bij ongeveer drie gelegenheden van pas gekomen - gewoonlijk wanneer ik
per ongeluk wat van het werk van die dag verwijderde.
Als waar ik aan werk het overleeft tot een punt waarvan ik het gevoel heb
dat ik een belangrijke voortgang hebt geboekt, wordt er op een diskette een backup van
gemaakt, dus ik heb deze truuk nog niet zo vaak nodig gehad.
</p>
</sect1>

<sect1><heading>Hoe gebruik te maken van de immutable vlag.
<it/Jim Dennis,/ <tt/jadestar@rahul.net/</heading>

<p>
                Gebruik de Immutable Flag

        Neem direct na de installatie en configuratie van je systeem
	de /bin, /sbin, /usr/bin, /usr/sbin en /usr/lib door (plus
	nog een paar van de andere gebruikelijke verdachte bestanden
	en maak royaal gebruik van de opdracht 'chattr +i '.  Voeg dat ook
	toe aan de kernelbestanden in root.  Nu 'mkdir /etc/.dist/'
        kopieer alles vanuit /etc/ naar beneden (Ik doe dit in twee stappen
        met /tmp/etcdist.tar ter voorkoming van recursie) in die directory.
        (Optioneel kun je gewoon  /etc/.dist.tar.gz aanmaken) -- en
	dat als immutable markeren.

        De reden voor dit alles is het beperken van de schade die je
	als root kunt aanrichten. Je zal geen bestanden overschrijven
	door een misplaatst omleidingsteken, en je zal het systeem niet
	onbruikbaar achterlaten door een verdwaalde spatie in een
	'rm -fr' opdracht (je kunt nog steeds heel wat schade aan je
	gegevens aanrichten -- maar je libs en bins zullen veiliger zijn.

        Dit maakt ook een diversiteit aan beveiligings- en denial of
	service uitbuitingen &oacute;f onmogelijk &oacute;f moeilijker (aangezien veel
	daarvan erop vertrouwen een bestand te kunnen overschrijven
	via de acties van een of ander SUID programma die *niet voorziet
	in een willekeurige shellopdracht*).

        Het enige ongerief hierbij onstaat bij het bouwen en uitvoeren
	van een 'make install' op diverse soorten systeembinary's.
        Aan de andere kant voorkomt het ook dat een 'make install' 
	de bestanden overschrijft. Wanneer je vergeet de Makefile
	in te lezen en chattr -i toe te passen op de bestanden die
	op het punt staan te worden overschreven (en de directory's
	waaraan je bestanden toe wilt voegen) -- mislukt de make.
        Je past er dan gewoon de chattr opdracht op toe en start
	het opnieuw op. Je kunt die gelegenheid ook gebruiken om
	je oude bin's, libs of wat dan ook naar een .old/ directory
	te verplaatsen of ze hernoemen of er tar op toepassen of 
	wat dan ook.
</p>
</sect1>


<sect1><heading>Een suggestie waar nieuwe software te plaatsen.
<it/Jim Dennis,/ <tt/jadestar@rahul.net/</heading>

<p>
        Alle nieuwe software begint onder /usr/local! of /usr/local/`hostname`

        Als je distributie /usr/local leeg laat, cre&euml;er dan een
	/usr/local/src, /usr/local/bin enz en gebruik dat.
        Plaatst de distributie zaken in de /usr/local structuur dan wil
	je wellicht een 'mkdir /usr/local/`hostname`' uit laten voeren
	en er de groep 'wheel' +w aan toekennen (ik maak het ook SUID en
	SGID om ervan verzekerd te zijn dat elk lid van de wheel groep
        daaronder alleen iets met eigen bestanden kan doen, en dat alle
	aangemaakte bestanden zullen toebehoren aan de 'wheel' groep.

        Disciplineer jezelf nu om *ALTIJD! ALTIJD! ALTIJD!* nieuwe
	packages onder /usr/local/src/.from/&dollar;WAAR_IK_HET_VANDAAN_HAALDE/
	plaatst (voor de .tar of wat voor bestanden dan ook) en bouw ze onder
        /usr/local/src (of .../&dollar;HOSTNAME/src). Zorg dat ze onder de
	lokale hi&euml;rarchie worden ge&iuml;nstalleerd.
        Plaats een symlink vanuit de lokale hi&euml;rarchie naar elk
	element dat ergens anders naartoe gaat als het *beslist moet"
	worden ge&iuml;nstalleerd in /bin, /usr/bin of elders.

        De reden hiervoor -- ook als is het wat meer werk -- is dat
        het helpt isoleren waarvan een backup moeten worden gemaakt
	en wat moet worden terruggezet van een backup of opnieuw
	ge&iuml;nstalleerd in geval van een volledige herinstallatie
	vanaf de distributiemedia (tegenwoordig gewoonlijk van een CD). 
	Door gebruik te maken van een /usr/local/.from directory houd
	je ook een informele log bij van waar je bronnen vandaan komen.
        -- wat helpt wanneer je op zoek bent naar nieuwe updates -- en 
	van groot belang kan zijn bij het monitoren van de 
	security announcement lists.

        Een van mijn systemen thuis werd samengesteld voordat ik deze
	maatregelen zelf toepaste. 
        <!-- I still don't "know" all the ways that it differs from the
        stock "as installed" system.  This is despite the fact that -->
        Ik heb nog maar erg weinig met de configuratie van mijn thuissysteem
	gedaan en ik ben de *enige* persoon die het ooit gebruikt.

        Als contrast zijn de systemen die ik op het werk heb ingesteld
	(toen mij hier de rol van systeembeheerder werd toevertrouwd)
	allen op deze manier ingesteld --- beheerd door veel
	contractanten en andere MIS mensen, zijn er een groot aantal
	upgrades en installatie van packages op ge&iuml;nstalleerd.
        Niettemin heb ik een zeer goede indruk welke elementen precies
	werden geplaatst *na* de initi&euml;le installatie en configuratie.
</p>
</sect1>


<sect1><heading>
Alle bestanden in een directory naar kleine letters omzetten. 
<it/Justin Dossey,/ <tt/dossey@ou.edu/</heading>
<p>

Ik nam notitie van een paar overmatig moeilijke of onnodige procedures
aanbevolen in de 2c tips sectie van Issue 12. Aangezien er meer
van zijn, stuur ik het je op:
<tscreen><code>
#!/bin/sh
         # lowerit
	 # zet alle bestandsnamen in de huidige directory om naar kleine letters
	 # werkt alleen met gewone bestanden--wijzigt geen directorynamen
	 # zal vragen om verificatie voor een bestaand bestand te overschrijven
	 for x in `ls`
	   do
	   if [ ! -f $x ]; then
	     continue
	     fi
	   lc=`echo $x  | tr '[A-Z]' '[a-z]'`
	   if [ $lc != $x ]; then
	     mv -i $x $lc
	   fi
	   done
</code></tscreen>
Wauw. Dat is een lang script. Ik zou daarvoor geen script schrijven, ik
zou in plaats daarvan deze opdracht gebruiken:
<tscreen><verb>
for i in * ; do [ -f $i ] && mv -i $i `echo $i | tr '[A-Z]' '[a-z]'`;
done;
</verb></tscreen>
op de opdrachtregel.

Degene die het aanleverde zei dat de wijze waarop hij het script schreef
hij dit voor de leesbaarheid deed (zie hieronder).

Op naar de volgende tip, deze over het toevoegen en verwijderen van 
gebruikers. Het gaat Geoff goed af tot aan de laatste stap.
Reboot? Tjonge, ik hoop niet dat hij reboot elke keer als hij een gebruiker
verwijdert. Het enige dat je hoeft te doen, is het uitvoeren van de eerste
twee stappen.  Welk type processen zou die gebruiker hebben lopen?
Een irc bot?  Het killen van de processen met een simpel
<tscreen><verb>
kill -9 `ps -aux |grep ^<username> |tr -s " " |cut -d " " -f2`
</verb></tscreen>
Voorbeeld, gebruikersnaam is foo
<tscreen><verb>
kill -9 `ps -aux |grep ^foo |tr -s " " |cut -d " " -f2`
</verb></tscreen>
Laten we daarmee te hebben afgerekend, verdergaan met het vergeten
root-wachtwoord.

De oplossing gegeven in de Gazette is de meest universele, maar niet de
eenvoudigste.  Met zowel LILO als loadlin, kan met het opgeven van de
bootparameter &quot;single&quot; direct in de standaardshell zonder
login of password prompt worden geboot. Vanaf daar, kan met elk wachtwoord
wijzigen of verwijderen voor het typen van
&quot;init 3&quot; om in multiuser modus te starten.
Aantal reboots: 1
De andere manier
Aantal reboots: 2


Justin Dossey
</p>
</sect1>

<sect1><heading>Hoe Sendmail upgraden
<it/Paul Anderson,/ <tt/paul@geeky1.ebtech.net/</heading>

<p>
We beginnen vanuit de ruwe, zuivere broncode. Zorg eerst dat je aan de sendmail
broncode komt.
Ik heb versie 8.9.0, wat zoals je op zal vallen, het nieuwste van het
nieuwste is. Ik haalde het vanaf 
ftp.sendmail.org:/pub/sendmail/sendmail.8.9.0.tar.gz
</p>

<p>
Het is ongeveer 1Meg, en in overweging nemend dat ik 8.7.6 draai, 
denk ik dat het de moeite waard is. Als dit werkt, zul je dit ongetwijfeld te
horen krijgen, anders kan ik de nieuwe HOWTO versies er niet uitkrijgen
zonder e-mail:)
</p>

<p>
Pak het uit, nu je de broncode hebt.  Er zal in de huidige
directory een dir met de naam <tt/sendmail-8.9.0/ worden aangemaakt.  Ga
naar die directory en lees de bestanden README en RELEASE_NOTES 
(en verbaas je over de updates die zijn gedaan).
Ga nu met cd naar src. Hier zal je meeste werk worden uitgevoerd.
</p>

<p>
<em/Een beknopte notitie: Sendmail is een klein, krachtig en goed geschreven
programma. De sendmail binary zelf compileert in minder dan 5 minuten
op mijn 5x86 133 met 32Megs RAM!  De gehele compilatie en
installatie nam (zonder config) minder dan 15 minuten in beslag!/
</p>

<p>
Normaal gesproken gebruik ik BIND niet op mijn systeem, dus ik trof de
regels

<tscreen><code>
# ifndef NAMED_BIND
#  define NAMED_BIND    1       /* gebruik Berkeley Internet Domain Server */
# endif
</code></tscreen>

aan en wijzigde de 1 in een 0, ala:

<tscreen><code>
# ifndef NAMED_BIND
#  define NAMED_BIND    0       /* gebruik Berkeley Internet Domain Server */
# endif
</code></tscreen>
</p>

<p>
Onder Debian 1.3.1, is db.h standaard ge&iuml;nstalleerd in /usr/include/db, 
in plaats van in /usr/include, waar sendmail het hoopt te vinden. 
Ga naar de src, mailstats, makemap, praliases, rmail en smrsh directory's 
en voer de volgende opdracht uit:

<tscreen><verb>
 ./Build -I/usr/include/db
</verb></tscreen>
</p>

<p>
Zodra je dat hebt gedaan, cd .. en typ make install. Dat is het!  Sendmail
versie 8.9.0 zou nu moeten zijn ge&iuml;nstalleerd!  
Dit uiteraard in de veronderstelling dat je reeds een originele configuratie
hebt. Om alles op mijn systeem soepel te laten werken, moest ik het volgende
aan het begin van /etc/sendmail.cf toevoegen, aangezien ik vrije mailinglists
host voor mensen die majordomo gebruiken:
</p>

<p>
<tscreen><code>
O DontBlameSendmail=forwardfileinunsafedirpath, forwardfileinunsafedirpathsafe
</code></tscreen>
</p>

<p>
Sendmail 8.9.0 is tegenwoordig nogal eigenzinnig als het gaat om directory-
en bestandspermissies, en het zal meldingen geven over dirs en bestanden
in aliases of .forward bestanden die voor de groep of wereld schrijfbaar
zijn. Ondanks dat het niet verstandig is deze eigenzinnigheid te deactiveren,
draai ik het als enige persoon op de console en ik vond dat het ok was dit
kleine beveiligingsgat toe te staan.
YMMV.
</p>
</sect1>


<sect1><heading>Een aantal tips voor nieuwe systeembeheerders.
<it/Jim Dennis,/ <tt/jadestar@rahul.net/</heading>

<p>
        Cre&euml;er en onderhoud een /README.`hostname` en/of een
        /etc/README.`hostname`
<em>[Of mogelijk /usr/local/etc/README.`hostname` -Maint. ]</em>

        Maak vanaf *de eerste dag* dat je een systeem beheert,
	notities in een online logbestand. Je zou een 
        &quot;vi /README.&dollar;(hostname)&quot; een regel in root's 
	~/bash_logout aan kunnen maken.
        Een andere manier om dit te doen is het schrijven van een su of
	sudo script die iets dergelijks doet als in:
<tscreen><verb>
                function exit \
                        { unset exit; exit; \
                          cat ~/tmp/session.$(date +%y%m%d) \
                          >> /README.$(hostname) && \
                          vi /README.$(hostname)
                          }
                script -a ~/tmp/session.$(date +%y%m%d)
                /bin/su.org -
</verb></tscreen>

        (gebruik de opdracht typescript om een sessielog
	te cre&euml;ren en maak een functie aan voor het automatisch
	toevoegen en bijwerken van de log).

        Ik geef toe dat ik  het automatiseren van dit beleid niet heb
	ge&iuml;mplementeerd. Ik vertrouwde tot dusverre op 
	zelfdiscipline.
        Ik heb echter met het idee gespeeld (zelfs tot aan het punt
	vooraf intypen van de scripts en shellfuncties zoals je ze
	hier ziet). Een ding dat me weerhoudt is de 'script' opdracht zelf.
        Ik denk dat ik een paar opdrachtregelparameters aan de broncode
	toe moet voegen (voor een pause/stop van het scriptopname vanaf
	de opdrachtregel) voordat ik ze aanlever voor gebruik.

        Mijn laatste suggestie (voor deze ronde):

        Het pad van root zou moeten bestaan uit 'PATH=~/bin'

        Dat is alles. Niets meer in het pad van root. Alles wat root
	doet wordt geleverd door een symlink vanuit ~/bin of door een
	alias of shellfunctie of is een script of binary in ~/bin, of
	wordt uitgetikt met een expliciet pad.

        Dit maakt iedereen draaiend als root zich bewust (soms pijnlijk
	bewust) van hoe hij/zij binaire bestanden vertrouwt. De verstandige
	beheerder van een multi-user host zal periodiek zijn ~/bin en
	~/.*history bestanden doorzoeken op bepaalde patronen en 
	loopholes.

        De echt gemotiveerde beheerder zal reeksen ontdekken die kunnen
        worden geautomatiseerd, plaatsen waar veiligheidscontroles kunnen
        worden ingevoegd, en taken waarvoor &quot;root&quot; privileges
        tijdelijk zouden moeten worden vermeden
        (opstarten van editors, MTA's en andere grote interactieve
        programma's met uitgebreide scriptmogelijkheden die in
transparante of gegevensbestanden, *zouden* kunnen worden ingesloten
        zoals de befaamde vi ./.exrc en emacs ./.emacs en de zelfs
        meer verraderlijke &dollar;EXINIT en ingesloten header/footer
        macro's). Vanzelfspreken kunnen dergelijke opdrachten worden
        uitgevoerd met iets als:
<tscreen><verb>
                cp $data $some_users_home/tmp
                su -c $origcommand $whatever_switches
                cp $some_users_home/tmp $data
</verb></tscreen>
        (...waar de details afhangen van de opdracht).

        De meeste van deze voorzorgsmaatregelen zijn voor de home- of voor een
        &quot;single&quot; user werkstation wat overdreven, maar vormen
        een erg goed beleid voor de beheerder van een multi-user systeem ---
        in het bijzonder wordt een publiek toegankelijk systeem (zoals die
        van netcom).
</p>
</sect1>

<sect1><heading>Hoe xdm's chooser te configureren voor hostselectie
<it/Arrigo Triulzi,/ <tt/a.triulzi@ic.ac.uk/</heading>

<p>
<enum>
<item> Wijzig het bestand waarmee xdm wordt opgestart,
naar alle waarschijnlijkheid is dit /etc/rc/rc.6 of /etc/rc.local),
zodanig dat in de xdm opstartsectie de volgende regels komen
te staan:

<tscreen><verb>        
/usr/bin/X11/xdm
exec /usr/bin/X11/X -indirect hostname
</verb></tscreen></item>

<item> Wijzig /usr/lib/X11/xdm/Xservers en haal het commentaarteken weg
voor de regel die de server start op de lokale machine (d.w.z. de regel
beginnend met 0:)</item>

<item> Reboot de machine
<!-- en you're home and away.-->
</item>
</enum>
</p>
<p>
Ik voeg dit toe omdat het me ongeveer een week kostte om alle problemen
de kop in te drukken toen ik het wanhopig
probeerde in te stellen voor mijn eigen subnet.

Voorbehoud: met oude SLS (1.1.1) kun je om een of andere reden een -nodaemon
weglaten na de xdm regel -- dit werkt <bf>NIET</bf> met latere uitgaven.
</p>
</sect1>
</sect>
</article>
</linuxdoc>