The Linux Tips HOWTO
 Paul Anderson, [email protected]. Svensk �vers�ttning:
 Linus �kerlund, [email protected].
 v3.1, 26 December 1997. Svensk �vers�ttning: 24 juni 1998.

 Denna HOWTO inneh�ller s�dana d�r tips och trick som �r sv�ra att
 hitta och som g�r Linux en aning trevligare.
 ______________________________________________________________________

 Inneh�llsf�rteckning


 1. Inledning

    1.1 �vers�ttarens anm�rkningar

 2. Korta tips

    2.1 Praktiskt syslog-trick
    2.2 Skalprogram f�r att l�sa de d�r komprimerade HOWTOna
    2.3 Finns det tillr�ckligt med ledigt minne?
    2.4 Verktyg f�r att rensa upp i dina loggfiler
    2.5 Praktiskt skalprogram f�r att st�da upp core-filer
    2.6 Flytta kataloger mellan filsystem.
    2.7 Ta reda p� vilka kataloger som �r st�rst.
    2.8 Linux Gazette
    2.9 H�nvisning till en patch till GNU Make 3.70 f�r att �ndra VPATH-beteendet.
    2.10 Hur f�r jag mitt system att inte k�ra fsck efter varje bootning?
    2.11 Hur man undviker fsck orsakade av "device busy" d� man bootar om.
    2.12 Hur du hittar de st�rsta filerna p� din h�rddisk.
    2.13 Hur du skriver ut sidor med marginal f�r h�lslag.
    2.14 Ett s�tt att s�ka igenom filtr�d efter ett visst regulj�rt m�nster.
    2.15 Ett skalprogram f�r att st�da upp efter program som skapar autosave- och backup-filer.
    2.16 Hur du tar reda p� vilken process som �ter mest minne.
    2.17 St�lla in vi f�r C-programmering
    2.18 Varf�r h�nger sig sendmail i fem minuter d� man startar RedHat?
    2.19 Hur st�ller jag in RedHat s� att det anv�nder f�rg-ls?
    2.20 Hur tar jag reda p� vilket bibliotek i /usr/lib som inneh�ller en viss funktion?

 3. Detaljerade tips

    3.1 Dela swap-partition mellan Linux och Windows.
    3.2 Desperat undelete.
    3.3 Hur du anv�nder immutable-flaggan.
    3.4 Ett f�rslag om vad du ska stoppa in nya grejer.
    3.5 Konvertera alla filer i en katalog till sm� bokst�ver.
    3.6 N�gra tips f�r nya systemadministrat�rer
    3.7 Hur du st�ller in in xdms v�ljare f�r host-val.


 ______________________________________________________________________

 1.  Inledning

 V�llkommen till Linux Tips HOWTO, en lista av trevliga sm� trick och
 optimeringar som g�r Linux roligare. Allt jag har h�r just nu �r tips
 som jag tagit direkt ur eget huvud och tips fr�n den gamla Tips-HOWTOn
 (varf�r ta bort ett bra tips?). S� skicka alla dina favorit-trick och
 -tips till mig s� att jag kan ta med dem i n�sta Tips-HOWTO.

 Paul Anderson Ansvarig f�r Linux TIPS HOWTO

 [email protected]



 1.1.  �vers�ttarens anm�rkningar

 Precis som vanligt s� kan det finnas tveksamma �vers�ttningar och
 s�dant i det h�r dokumentet. N�gra kanske vill att jag ska �vers�tta
 t.ex. variabler i skalprogram till svenska, vilket jag inte gjort.
 Alla som har synpunkter �r v�lkomna att h�ra av sig till mig p�
 [email protected].



 2.  Korta tips

 2.1.  Praktiskt syslog-trick Paul Anderson, ansvarig f�r Tips-HOWTOn

 �ndra i din /etc/syslog.conf och l�gg in f�ljande rad:


      # Skicka allt till tty8
      *.*                                     /dev/tty8




 En sak att t�nka p�: KOM IH�G ATT ANV�NDA TABBAR! syslog gillar inte
 mellanslag...


 2.2.  Skalprogram f�r att l�sa de d�r komprimerade HOWTOna Didier
 Juges,  [email protected]


 Fr�n en nyb�rjare till en annan kommer h�r ett kort skalprogram som
 g�r det enklare att l�sa HOWTO-dokument. Mina HOWTOn finns i
 /usr/doc/faq/howto/ och �r gzippade. Filnamnen �r XXX-HOWTO.gz, d�r
 XXX �r �mnet. Jag skapade f�ljande skalprogram, vilket heter "howto",
 i katalogen /usr/local/sbin:


      ______________________________________________________________________
      #!/bin/sh
      if [ "$1" = "" ]; then
          ls /usr/doc/faq/howto | less
      else
          gunzip -c /usr/doc/faq/howto/$1-HOWTO.gz | less
      fi
      ______________________________________________________________________




 N�r det anropas utan argument s� visar det en lista �ver de
 tillg�ngliga HOWTOna. N�r det sedan anropas med f�rsta delen av ett
 filnamn (innan bindestrecket) som argument s� zippar det upp (och
 beh�ller originalet intakt) och visar dokumentet.

 F�r att t.ex. l�sa Serial-HOWTO.gz, skriv:

 $ howto Serial



 2.3.  Finns det tillr�ckligt med ledigt minne? Hans Zoebelein,
 [email protected]

 H�r kommer ett kort skalprogram, vilket d� och d� kollar om det finns
 tillr�ckligt med ledigt utrymme tillg�ngligt p� vad som helst som
 dyker upp i mount (h�rddiskar, cdrom, disketter osv.).

 Om utrymmet tar slut s� visas ett meddelande var Xte sekunde p�
 sk�rmen och ett e-brev skickas f�r varje full enhet.






























































 ______________________________________________________________________
 #!/bin/sh

 #
 # $Id: check_hdspace,v 1.18 1996/12/11 22:33:29 root Exp root $
 #

 #
 # N�r jag gick mystiska felmeddelanden under en kompilering och
 # tmp-filer fyllde upp mina diskar, skrev jag detta f�r att f� en
 # varning innan diskarna blir fulla.
 #
 # Om det h�r r�ddar dina servrar fr�n att explodera, skicka ett
 # e-brev till [email protected] och prisa mig.
 # Om din brinner upp p� grund av det s� �r jag ledsen, men jag
 # har varnat dig: inga kompensationer.
 # Om du vet hur man hanterar sed s� kan du f�rl�ta mig :)

 #
 # Stoppa in det och gl�m det: Stoppa 'check_hdspace &' i rc.local.
 # Kollar efter ledigt utrymme p� enheter varje $SLEEPTIME sekunder.
 # Du kan till och med kolla disketter och bandenheter. :)
 # Om det finns mindre �n $MINFREE (kb) utrymme, s� echo-as en varning
 # och ett e-brev skickas f�r varje aktuell enhet till $MAIL_TO_ME.
 # Om det �terigen finns mer fritt utrymme �n vad som �r satt som gr�ns
 # s� skickas ett nytt e-brev.
 #

 # ATT G�RA: Olika $MINFREE f�r olika enheter.
 # Rensa ut gammalt skr�p ur /*tmp-kataloger om utrymmet tar slut.

 DEVICES='/dev/sda2 /dev/sda8 /dev/sda9'         # enhet; l�gg in diskar h�r
 MINFREE=20480                                   # kb; varning under detta
 SLEEPTIME=10                                    # sek; sov mellan kollarna
 MAIL_TO_ME='root@localhost'                     # d�re; vem som f�r mail


 # ------- inga �ndringar beh�vs under denna rad (f�rhoppningsvis :) -------

 MINMB=0
 ISFREE=0
 MAILED=""
 let MINMB=$MINFREE/1024         # jepp, vi �r strikta :)

 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  "VARNING: $DEVICE endast $ISMB mb ledigt." >&2
                         #echo "mera prylar h�r" >&2
                         echo -e "\a\a\a\a"

                         if [ -z  "`echo $MAILED | grep -w $DEVICE`" ] ; then
                                 echo "VARNING: $DEVICE endast $ISMB mb ledigt.      (Gr�nsen satt till $MINMB mb)" \
                                 | mail -s "VARNING: $DEVICE endast $ISMB mb ledigt!" $MAIL_TO_ME
                                 MAILEDH="$MAILED $DEVICE"
                                 MAILED=$MAILEDH
                                 # l�gg in annat, som st�dning av */tmp-
                                 # kataloger, h�r
                         fi
                         elif [ -n  "`echo $MAILED | grep -w $DEVICE`" ] ; then
                                 # Bort med mailed-markeraren om det finns
                                 # tillr�ckligt med utrymme igen, s� att vi
                                 # kan skicka nya e-brev.
                                 MAILEDH="`echo $MAILED  | sed s#$DEVICE##`"
                                 MAILED=$MAILEDH
                         fi

                 done
                 sleep $SLEEPTIME

 done
 ______________________________________________________________________






 2.4.  Verktyg f�r att rensa upp i dina loggfiler Paul Anderson,
 ansvarig f�r Tips-HOWTOn

 Om du �r so mjag s� har du en lista med 250 prenumeranter, plus mer �n
 100 meddelanden per dag som kommer med UUCP. Tja, vad ska en hacker
 g�ra med sina enorma loggfiler? Installera chklogs.  Chklogs �r
 skrivet av Emilio Grimaldo, [email protected], och den senaste
 versionen (1.8) �r tillg�nglig via ftp fr�n
 frp.iaehv.ln:/pub/users/grimaldo/chklogs-1.8.tar.gz.  Det f�rklarar
 ganska bra sj�lvt hur du ska installera det (du ska naturligtvis �ven
 ta en titt p� informationen i doc-katalogen). N�r du har isntallerat
 det ska du l�gga till f�ljande i crontab:


      # K�r chklogs klockan 9 varje dag.
      00 21 * * *       /usr/local/sbin/chklogs -m




 N�r du �nd� h�ller p�, gl�m inte att tala om f�r programmeraren vilket
 trevligt program det �r :).



 2.5.  Praktiskt skalprogram f�r att st�da upp core-filer Otto Hammer�
 smith,  [email protected]

 Skapa en fil som heter rmcores (f�rfattaren kallar det handle-cores)
 med f�ljande inneh�ll:




















 ______________________________________________________________________
 #!/bin/sh
 USAGE="$0 <directory> <message-file>"

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

  echo Tar bort...
 find $1 -name core -atime 7 -print -exec rm {} \;

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




 Sedan g�r du s� att ett cron-jobb k�r det d� och d�.



 2.6.  Flytta kataloger mellan filsystem. Alan Cox,
 [email protected]

 Ett snabbt s�tt att flytta ett helt filtr�d fr�n en disk till en annan
 �r


      (cd /k�ll/katalog && tar cf - . ) | (cd /dest/katalog && tar xvfp -)




 [ Byt fr�n cd /k�ll/katalog; tar...osv. f�r att f�rhindra m�jligheten
 att katalogen f�rst�rs om en olycka intr�ffar. Tack till Jim Dennis,
 [email protected], f�r att han gjorde mig uppm�rksam p� detta.
 -Ansvarige. ]


 2.7.  Ta reda p� vilka kataloger som �r st�rst. Mick Ghazey,
 [email protected]

 Har du n�gonsin funderat p� vilka kataloger som �r de st�rsta p� din
 dator? S� h�r tar du reda p� det:


      du -S | sort -n





 2.8.  Linux Gazette

 Kudos till John Fisk som grundade Linux Gazette. Det �r en suver�n e-
 tidning och den �r GRATIS!!! Vad mer kan du �nska dig? Ta en titt p�:


      http://www.ssc.com/lg

 F�rresten s� visar det sig att (1) LG utges nu varje m�nad och (2)
 John Fisk har inte l�ngre hand om det, utan m�nniskorna p� SSC.



 2.9.  H�nvisning till en patch till GNU Make 3.70 f�r att �ndra VPATH-
 beteendet. Ted Stern,  [email protected]

 Jag vet inte om m�nga har detta problem, men det finns en egenskap hos
 GNU Make version 3.70 som jag inte tycker om. Det �r att VPATH beter
 sig udnerligt om du anger en absolut s�kv�g. Det finns en extremt
 stabil patch f�r att fixa detta, vilken du kan f� fr�n Paul D. Smith
 <[email protected]>. Han publicerar dokumentationen och patchen i
 nyhetsgruppen gnu.utils.bug efter varje uppdatering av GNU Make. Sj�lv
 l�gger jag till den h�r patchen och kompilerar om gmake p� varje
 system jag har tillg�ng.


 2.10.  Hur f�r jag mitt system att inte k�ra fsck efter varje boot�
 ning? Dale Lutz,  [email protected]

 F: Hur f�r jag e2fsck att inte kolla min h�rddisk varenda g�ng jag
 bootar om?

 S: N�r du kompilerar om k�rnan s� markeras filsystemet som "smutsigt"
 (dirty) och din h�rddisk kommer d� kollas efter varje ombootning. F�r
 att fixa detta k�r du:

 rdev -R /zImage 1

 Detta fixar k�rnan, s� att den inte l�ngre �r �vertygad om att
 filsystemet �r smutsigt.

 Obs: Om du anv�nder lilo, l�gg till read-only till Linux-avdelningen i
 din konfigureringsfil f�r lilo (vanligtvis /etc/lilo.conf).


 2.11.  Hur man undviker fsck orsakade av "device busy" d� man bootar
 om. Jon Tombs,  [email protected]

 Om du ofta f�r "device busy"-fel som g�r att filsystemet m�ste g�
 igenom en fsck, d� du k�r shutdown, s� kommer h�r en enkel l�sning:

 L�gg till raden


      mount -o remount,ro /mount.dir




 till /etc/rc.d/init.d/halt eller /etc/rc.d/rc.0.

 G�r detta f�r varje monterat filsystem utom /, innan anropet till
 umount -a. Detta betyder att om shutdown av n�gon anledning misslyckas
 med att d�da alla processer och avmontera alla diskar s� kommer de
 fortfarande att vara rena d� du bootar om. Detta spar en massa tid f�r
 mig d� jag bootar om.


 2.12.  Hur du hittar de st�rsta filerna p� din h�rddisk. Simon Amor,
 [email protected]




 ls -l | sort +4n




 Om du har v�ldigt d�ligt med utrymme s� funkar �ven det f�ljande, men
 kan ta en hel del tid:



      cd /
      ls -lR | sort +4n





 2.13.  Hur du skriver ut sidor med marginal f�r h�lslag. Mike Dickey,
 [email protected]



      ______________________________________________________________________
              #!/bin/sh
              # /usr/local/bin/print
              # en enkel formatterad utskrift, f�r att att l�ta n�gon
              # ta h�l p� utskriften och s�tta den i en p�rm

              cat $1 | pr -t -o 5 -w 85 | lpr
      ______________________________________________________________________





 2.14.  Raul Deluth Miller,  [email protected] Ett s�tt att s�ka
 igenom filtr�d efter ett visst regulj�rt m�nster.

 Jag kallar detta skalprogram "forall". Anv�nd det s� h�r:


      forall /usr/include grep -i ioctl
      forall /usr/man grep ioctl




 H�r kommer forall:


      ______________________________________________________________________
      #!/bin/sh
      if [ 1 = `expr 2 \> $#` ]
      then
              echo Usage: $0 dir cmd [optargs]
              exit 1
      fi
      dir=$1
      shift
      find $dir -type f -print | xargs "$@"
      ______________________________________________________________________





 2.15.  Ett skalprogram f�r att st�da upp efter program som skapar
 autosave- och backup-filer. Barry Tolnas,  [email protected]

 H�r kommer ett enkelt skalprogram p� tv� rader som rekursivt g�r ned
 genom kataloghierarkin och tar bort emacs autosave-filer (#) och
 backup-filer ( ), .o-filer och .log-filer som TeX skapar. Det
 komprimerar �ven .tex- och README-filer. Jag kallar det att "pressa
 ihop" mitt system.


      ______________________________________________________________________
      #!/bin/sh
      #SQUEEZE tar bort on�digt filer och komprimerar .tex- och README-filer
      #Av Barry tolnas, [email protected]
      #
      echo pressar ihop $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 {} \;
      ______________________________________________________________________





 2.16.  [email protected] Hur du tar reda p� vilken process som �ter
 mest minne. Simon Amor,



      ps -aux | sort +4n




 -ELLER-


      ps -aux | sort +5n





 2.17.  St�lla in vi f�r C-programmering Paul Anderson,  Ansvarig f�r
 Tips-HOWTOn

 Jag programmerar en massa C p� min fritid och har tagit mig tid att
 st�lla in vi s� att det passar bra f�r C. H�r �r min .exrc:


      ______________________________________________________________________
      set autoindent
      set shiftwidth=4
      set backspace=2
      set ruler
      ______________________________________________________________________





 Hur fungerar det? autoindent g�r att vi automatiskt indenterar varje
 rad som f�ljer en indenterad rad, shiftwidth st�ller in tabbl�ngden
 till 4 mellanslag, backspace sl�r p� backspacel�get och ruler g�r att
 det visar radnummer. Kom ih�g att du kan g� till en specifik rad, s�g
 20, genom att skriva:



      ______________________________________________________________________
      vi +20 myfile.c
      ______________________________________________________________________





 2.18.  Varf�r h�nger sig sendmail i fem minuter d� man startar RedHat?
 Paul Anderson,  [email protected]

 Det h�r �r ett ganska vanligt problem, n�stan s� att det �r en FAQ
 (ofta st�lld fr�ga. �vers.anm.). Jag vet inte om RedHat har fixat det
 h�r problemet i sin distribution, men annars kan du sj�lv reparera
 det. Om du kollar i din /etc/hosts-fil s� kommer du hitta n�got i stil
 med:


      127.0.0.1               localhost       yourbox




 N�r sendmail startas s� kollar det din maskins namn (hostname) (i
 detta exempel �r det yourbox). Det ser d� att IP-numret f�r din
 yourbox �r 127.0.0.1, vilket sendmail inte tycker om och g�r kollen
 igen. Det forts�tter s� med detta ett tag, tills det ger upp och
 avslutas. Att l�sa detta �r extremt enkelt, l�gg bara in n�got i stil
 med


      127.0.0.1               localhost
      10.56.142.1             yourbox




 i din /etc/hosts-fil.



 2.19.  Hur st�ller jag in RedHat s� att det anv�nder f�rg-ls? Paul
 Anderson,  [email protected]

 RedHats distribution kommer med f�rg-ls och varf�r de inte st�ller in
 det f�r att anv�nda det som standard �r bortom min fattningsf�rm�ga.
 H�r kommer en l�sning.

 Skriv f�rst eval `DIRCOLORS`

 Skriv sedan alias ls='ls --color=yes'

 L�gg in 'alias....' i din /etc/bashrc




 2.20.  Hur tar jag reda p� vilket bibliotek i /usr/lib som inneh�ller
 en viss funktion? Pawel Veselow,  [email protected]

 Vad h�nder om du kompilerar och du har missat n�got bibliotek som
 m�ste l�nkas in? Allt gcc rapporterar �r funktionsnamn... H�r kommer
 ett enkelt kommando som g�r att du kan hitta det du letar efter:


      for i in *; do echo $i:;nm $i|grep tgetnum 2>/dev/null;done




 tgetnum �r namnet p� den funktion du letar efter.




 3.  Detaljerade tips

 3.1.  Dela swap-partition mellan Linux och Windows. Tony Acero,
 [email protected]


 1. Formattera partitionen som en dos-partition och skapa swapfilen f�r
    Windows p� den, men k�r inte Windows �n. (Du ska h�lla swapfilen
    helt tom f�r tillf�llet s� att den komprimeras bra.)

 2. Boota Linux och sparar partitionen till en fil. Om partitionen var
    t.ex. /dev/hda8:


      dd if=/dev/hda8 of=/etc/dosswap




 3. Komprimera filen dosswap; eftersom den i stort sett bara inneh�ller
    nollor s� kommer den andra komprimeras bra.


      gzip -9 /etc/dosswap




 4. L�gg till det f�ljande till /etc/rc-filen f�r att f�rbereda och
    installera swaputrymmet under Linux: XXXXX �r antalet block i
    swappartitionen


      mkswap /dev/hda8 XXXXX
      swapon -av




 Se till s� att du l�gger till en rad f�r swappartitionen i /etc/fstab.

 5. Om ditt init/reboot-paket st�djer /etc/brc eller /sbin/brc, s� l�gg
    till det f�ljande i /etc/brc. Annars kan du l�gga till det f�r hand
    n�r du vill boota dos|os/2 och vill konvertera tillbaks
    swappartitionen till dos/windows-versionen:



      swapoff -av
      zcat /etc/dosswap.gz | dd of=/dev/hda8 bs=1k count=100



 # Observera att detta bara skriver tillbaks de f�rsta 100 blocke till
 # partitionen. Enligt min erfarenhet r�cker det.

 > > Vilka �r f�r- och nackdelarna med att g�ra detta?

 F�rdelar: du spar en hel del h�rddiskutrymme.

 Nackdelar: om steg 5 inte sker automatiskt s� m�ste du komma ih�g att
 g�ra det f�r hand och dessutom g�r det ombootningsprocessen en
 nanosekunde l�ngsammare. :-)


 3.2.  Desperat undelete. Michael Hamilton,  [email protected]

 H�r kommer ett trick som jag varit tvungen att anv�nda ett par g�nger.

 Desperata m�nniskors textfils-undelete.

 Om du av misstag raderar en textfil, t.ex. e-post eller resultatet av
 en sen natts programmeringssession, s� beh�ver inte allt vara
 f�rlorat. Om filen n�gonsin sparades p� disk, allts� om den existerade
 i �tminstone 30 skunder, s� kan dess inneh�ll fortfarande finnas kvar
 p� partitionen.

 Du kan anv�nda kommandot grep f�r att leta igenom den r�a partitionen
 efter inneh�llet i filen.

 Nyligen tog jag t.ex. bort ett e-brev. Jag avslutade omedelbart all
 aktivitet som kunde modifiera den partitionen: i detta fall l�t jag
 bara bli att spara filer och kompilera osv. I andra fall har jag
 faktiskt g�tt igenom de besv�r det inneb�r att ta ner systemet till
 enanv�ndarl�ge (single user mode) och avmonterat filsystemet.

 Sen anv�nde jag kommandot egrep p� partitionen: i mitt fall fanns e-
 brevet i /usr/local/home/michael/, s� fr�n utdatan fr�n df kunde jag
 sluta mig till att det fanns p� /dev/hdb5.


        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




 Jag �r extremt f�rsiktig n�r det g�ller att fipplat med partitioner,
 s� jag tog en paus f�r att se till att jag f�rstod kommandots syntax
 INNAN jag tryckte return. I det h�r fallet inneh�ll e-brevet ordet
 `ftp', f�ljt av en del text som f�ljdes av ordet `COL'. Meddelandet
 var runt 20 rader l�ngt, s� jag anv�nde -50 f�r att f� med alla rader
 runt den frasen. F�rut har jag anv�nt -3000 f�r att se till att alla
 rader i n�gon k�llkodsfil kom med. Jag omdirigerade utdatan fr�n egrep
 till en annan partition - detta f�rhindrade att jag skrev �ver medde�
 landet jag letade efter.

 Sedan anv�nde jag strings f�r att hj�lpa mig med att inspektera
 utdatan:



    strings /tmp/x | less





 D�r fanns e-brevet!

 Den h�r metoden �r inte att lita p�, allt eller en del av diskutrymmet
 kan redan ha blivit �teranv�nt.

 Detta trick �r antagligen bara anv�ndbart p� ett enanv�ndarsystem. P�
 system med flera anv�ndare och med mycket diskaktivitet s� kan
 utrymmet du har frigjort mycket v�l redan ha �teranv�nts. Och de
 flesta av oss kan inte bara ta ned maskinen f�r v�ra anv�ndare n�r vi
 m�ste hitta en fil vi tagit bort.

 P� det system jag k�r hemma har detta trick varit anv�ndbart vid
 ungef�r tre g�nger under de senaste �ren - vanligtvis n�r jag f�rst�r
 en del av dagens arbetsresultat. Om det jag gjort klarar sig s� l�ngt
 att jag tycker att jag gjort anm�rkningsv�rda framsteg s� brukar jag
 s�kerhetskopiera det p� disketter, s� jag beh�ver inte anv�nda detta
 trick s� ofta.


 3.3.  Hur du anv�nder immutable-flaggan. Jim Dennis,
 [email protected]

 Anv�nda immutable-flaggan

 S� fort du har installerat och konfigurerat ditt system s� b�r du g�
 igenom /bin, /sbin, /usr/bin, /usr/sbin och /usr/lib (och n�gra av de
 andra katalogerna) och p� ett sparsamt s�tt anv�nda 'chattr +i
 kommando'. L�gg ocks� till det till k�rnfilerna i rotkatalogen. K�r nu
 `mkdir /etc/.dist' och kopiera allt fr�n /etc/ dit (sj�lv g�r jag
 detta i tv� steg, med /tmp/etcdist.tar f�r att undvika rekursion). (Du
 kan �ven bara skapa /etc/.dist.tar.gz - och g�ra den immutable.)

 Anledningen till allt detta �r att ber�nsa skadan du kan g�ra n�r du
 �r inloggad som root. Du kan inte skriva �ver filer av misstag och du
 kan inte g�ra systemet oanv�ndbart med ett mellanslag f�r mycket om du
 anv�nder 'rm -rf' (du kan fortfarande f�rst�ra en massa data - men
 dina bibliotek och bin�rfiler �r s�krare).

 Detta g�r ocks� en hel del intr�ng och "denial of service"-angrepp
 antingen om�jliga eller sv�rare (eftersom m�nga av dem �r beroende av
 att kunna skriva �ver n�gon fil genom ingrepp av n�got SUIDat program
 som *inte tillhandah�ller ett visst skalkommando*).

 Det enda otrevliga med detta �r att n�r du kompilerar och k�r 'make
 install' p� olika typer av systembin�rfiler. � andra sidan s� hindrar
 det ocks� 'make install' fr�n att skriva �ver filerna. N�r du gl�mmer
 att l�sa Makefilen och chattr -i filen som ska skrivas �ver (och
 katalogerna till vilka du ska l�gga till filer) s� misslyckas make-
 kommandot, men d� �r det bara att anv�nda kommandot chattr och k�ra
 det igen. Du kan ocks� ta tillf�llet i akt och flytta dina gamla
 bin�rfiler, bibliotek och vad som helst till en .old/-katalog, eller
 byta namn p� dem eller tar-a dem eller vad som helst.


 3.4.  Ett f�rslag om vad du ska stoppa in nya grejer. Jim Dennis,
 [email protected]

 Alla nya saker ska in i /usr/local eller /usr/local/'hostname'!


 Om din distribution �r en som l�mnar /usr/local tomt, s� skapa bara
 din /usr/local/src, /usr/local/bin osv. och anv�nd dem. Om din
 distribution stoppar saker i /usr/local-tr�det s� �r det kanske b�st
 att k�ra 'mkdir /usr/local/`hostname`' och ge 'wheel'-gruppen +w till
 den (jag g�r den ocks� SUID och SGID f�r att se till att varje medlem
 i wheel-gruppen bara kan greja med sina egna filer d�r och att alla
 filer som skapas tillh�r wheel-gruppen).

 Se nu till att vara disciplinerad och *ALLTID! ALLTID! ALLTID!* stoppa
 nya paket i /usr/local/src/.fr�n/$VAR_JAG_FICK_DET_IFR�N/ (f�r .tar
 eller vilken fil det nu var) och kompilera dem under /usr/local/src
 (eller .../$HOSTNAME/src). Se till att det installeras under local-
 tr�det. Om det *absolut m�ste* installeras i /bin eller /usr/bin eller
 n�gon annanstans, s� kan du skapa en l�nk fr�n local-tr�det till varje
 element som finns n�gon annanstans.

 Anledningen till detta, �ven om det leder till mer jobb, �r att det
 hj�lper till att isolera det som ska s�kerhetskopieras och �terst�llas
 fr�n distributions-mediet (nu f�r tiden �r det oftast en CD). Genom
 att anv�nda en /usr/local/.from-katalog uppr�tth�ller du ocks� en
 informell logg om varifr�n k�llkoden kommit, vilket hj�lper dig d�
 letar efter nya versioner, och hj�lper dig d� du l�ser igenom
 s�kerhetsmeddelandena i announcement-listor.

 Ett av de system jag har hemma (det jag skriver detta p�) sattes upp
 innan jag sj�lv b�rjade arbeta enligt dessa principer. Jag "vet"
 fortfarande inte precis hur det skiljer sig fr�n ett system fr�n en
 "ren installering". Detta trots att jag har gjort v�ldigt lite med det
 systemet, inte konfigurerat det speciellt mycket och �r den enda som
 anv�nder det.

 I kontrast till detta s� har de system som jag satt upp p� jobbet
 (sedan jag kastats in i rollen som systemadministrat�r) blivit
 konfigurerade p� detta s�tt - de har administrerats av m�nga m�nniskor
 och MIS-typer och har g�tt igenom m�nga stor uppgraderingar och
 paketinstalleringar. Trots detta har jag en klar uppfattning om vilka
 exakta element som lags in *efter* den ursprungliga installeringen och
 konfigureringen.



 3.5.  Konvertera alla filer i en katalog till sm� bokst�ver. Justin
 Dossey,  [email protected]


 Jag la m�rke till n�gra �verdrivet sv�ra eller on�diga procedurer som
 rekommenderades i avdelningen med 2c-tips i nummer 12. Eftersom det �r
 mer �n ett, s� skickar jag dem till dig:


















 ______________________________________________________________________
 #!/bin/sh
          # lowerit
          # konvertera alla filnamn i den aktuella katalogen till sm�
          # bokst�ver. p�verkar bara vanliga filer - �ndrar inte namnen
          # kataloger. fr�gar om lov innan det skriver �ver en fil.
          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
 ______________________________________________________________________




 Oj. Det var ett l�ngt skalprogram. Jag skulle inte skriva ett skalpro�
 gram f�r att g�ra det. Ist�llet skulle jag anv�nda detta kommando:


      for i in * ; do [ -f $i ] && mv -i $i `echo $i | tr '[A-Z]' '[a-z]'`;
      done;




 direkt fr�n kommandoraden.

 Bidragsgivaren s�ger att han skrev skalprogrammet s�som han gjorde det
 f�r att det skulle bli l�ttare att f�rst� (se nedan).

 I n�sta tips, som handlar om att l�gga till och ta bort anv�ndare, s�
 g�r Geoff allt r�tt �nda tills han kommer till sista steget. Boota om?
 Gosse, jag hoppas att han inte bootar om varenda g�ng han tar bort en
 anv�ndare. Allt du beh�ver g�ra �r att utf�ra de tv� f�rsta stegen.
 Vilket slags processer kan den anv�ndaren ha ig�ng, f�rresten?  En
 irc-bot? D�da processerna med ett enkelt


      kill -9 `ps -aux |grep ^<username> |tr -s " " |cut -d " " -f2`




 I f�ljande exempel �r anv�ndarnamnet foo:


      kill -9 `ps -aux |grep ^foo |tr -s " " |cut -d " " -f2`




 N�r vi klarat av det, l�t oss g� vidare till det bortgl�mda l�senordet
 f�r root.

 L�sningen som gavs i Gazetten �r den mest anv�nda, men inte den
 enklaste. Till b�de LILO och loadlin kan man skicka med parametern
 "single" f�r att boota direkt till standardskalet utan beh�va skriva
 anv�ndarnamn eller l�senord. D�rifr�n kan man �ndra eller ta bort
 vilket l�senord som helst, innan man skriver "init 3" f�r att k�ra
 ig�ng fleranv�ndarl�get.
 Antal ombootningar: 1 Det andra s�ttet Antal ombootningar: 2

 Justin Dossey



 3.6.  N�gra tips f�r nya systemadministrat�rer Jim Dennis,
 [email protected]

 Skapa och uppr�tth�ll en /README.`hostname` och/eller en
 /etc/README.`hostname`.  (Eller kanske
 /usr/local/etc/README.`hostname` - Ansvarige.)

 Fr�n och med *dag ett* ska du absolut f�ra anteckningar i en loggfil.
 Du kan l�gga in en rad med "vi /README.$dollar;(hostname)" i roots
  /bash_logout. Ett annat s�tt �r att skriva ett su- eller sudo-
 skalprogram som g�r n�got i stil med f�ljande:


                      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 -




 (anv�nd typescript-kommandot f�r att skapa en sessionlogg och skapa en
 funktion f�r att automatisera till�ggen och uppdateringarna av
 loggen.)

 Jag ska erk�nna att jag inte har lagt in denna automatisering av
 princip - jag har hittills bara litat p� sj�lvdisciplin. Jag har dock
 lekt med id�n (till och med g�tt s� l�ngt som till att g�ra prototyper
 f�r skalprogrammen och skalfunktionerna som du ser dem i det h�r
 dokumentet). En sak som hindrar mig fr�n att genomf�ra detta �r
 script-kommandot sj�lvt. Jag tror jag kommer bli tvungen att plocka
 hem k�llkoden och l�gga till n�gra kommandoradsparametrar (f�r att
 pause/stoppa skalprogrammets "inspelning" av kommandoraden) innan jag
 b�rjar anv�nda det.

 Mitt sista f�rslag (f�r denna g�ng):

 Roots s�kv�g ska best� av 'PATH= /bin'.

 Det �r allt. Inget annat ska finnas i roots s�kv�g. Allt root g�r ska
 finnas som en l�nk fr�n  /bin eller genom ett alias eller en
 skalfunktion, eller som ett skalprogram eller bin�rfil i  /bin, eller
 ska skrivas in med den fulla s�kv�gen.

 Detta g�r alla som k�r som root (ibland sm�rtsamt) medvetna om vilket
 f�rtroende han eller hon har f�r bin�rfiler. Den vise
 systemadministrat�ren i ett fleranv�ndarsystem kollar d� och d� igenom
 sina  /bin- och  /.*history-filer efter m�nster eller kryph�l.

 Den verkligt motiverade administrat�ren kommer l�gga m�rke till
 sekvenser som kan automatiseras, st�llen d�r f�rnuftskollar kan l�ggas
 in och uppgifter f�r vilka "root"-privilegierna tillf�lligt kan
 upph�vas (k�ra ig�ng editorer, MTAn och andra stora interaktiva
 program med goda inst�llningsm�jligheter som *kan* l�ggas in
 transparent eller i datafiler - som den k�nda ./.exrc f�r vi och emacs
 ./.emacs och det �nn mer v�lk�nda $EXINIT och de inb�ddade
 header/footer-makrona). De kommandona kan naturligtvis k�ras med n�got
 i stil med:


                      cp $data $n�gon_anv�ndares_hem/tmp
                      su -c $origkommando $diverse_argument
                      cp $n�gon_anv�ndares_hem/tmp $data




 (...d�r det mer specifika beror p� kommandot.)

 Den sista sortens f�rbeh�ll �r �verdrivna om det handlar om en ensam
 anv�ndares arbetsstation - men de �r v�ldigt bra av princip, om du �r
 administrat�r av ett fleranv�ndarsystem - speciellt ett allm�nt
 exponerat system (som de p� netcom).


 3.7.  Hur du st�ller in in xdms v�ljare f�r host-val. Arrigo Triulzi,
 [email protected]


 1. Modifiera filen som k�r ig�ng xdm (oftast /etc/rc/rc.6 eller
    /etc/rc.local) s� att den inneh�ller de f�ljande raderna i
    avsnittet om xdm-start.



      /usr/bin/X11/xdm
      exec /usr/bin/X11/X -indirect hostname




 2. Editera /usr/lib/X11/cdm/Xservers och kommentera ut raden som
    startar servern p� den lokala maskinen (d.v.s. startar 0:)

 3. Boota om maskinen och du �r klar.

 Jag l�gger till detta eftersom det, n�r jag desperat f�rs�kte
 konfigurera det f�r mitt eget subn�t, tog mig ungef�r en vecka att
 reda ut alla problemen.

 Varning: med gamla SLS (1.1.1) kan du av n�gon anledning l�mna ett
 -nodaemon efter xdm-raden - detta fungerar INTE med senare utg�vor.