  The Linux Tips HOWTO
  Paul Anderson, paul@geeky1.ebtech.net. Svensk versttning:
  Linus kerlund, uxm165t@tninet.se.
  v3.1, 26 December 1997. Svensk versttning: 24 juni 1998.

  Denna HOWTO innehller sdana dr tips och trick som r svra att
  hitta och som gr Linux en aning trevligare.
  ______________________________________________________________________

  Innehllsfrteckning


  1. Inledning

     1.1 versttarens anmrkningar

  2. Korta tips

     2.1 Praktiskt syslog-trick
     2.2 Skalprogram fr att lsa de dr komprimerade HOWTOna
     2.3 Finns det tillrckligt med ledigt minne?
     2.4 Verktyg fr att rensa upp i dina loggfiler
     2.5 Praktiskt skalprogram fr att stda upp core-filer
     2.6 Flytta kataloger mellan filsystem.
     2.7 Ta reda p vilka kataloger som r strst.
     2.8 Linux Gazette
     2.9 Hnvisning till en patch till GNU Make 3.70 fr att ndra VPATH-beteendet.
     2.10 Hur fr jag mitt system att inte kra fsck efter varje bootning?
     2.11 Hur man undviker fsck orsakade av "device busy" d man bootar om.
     2.12 Hur du hittar de strsta filerna p din hrddisk.
     2.13 Hur du skriver ut sidor med marginal fr hlslag.
     2.14 Ett stt att ska igenom filtrd efter ett visst reguljrt mnster.
     2.15 Ett skalprogram fr att stda upp efter program som skapar autosave- och backup-filer.
     2.16 Hur du tar reda p vilken process som ter mest minne.
     2.17 Stlla in vi fr C-programmering
     2.18 Varfr hnger sig sendmail i fem minuter d man startar RedHat?
     2.19 Hur stller jag in RedHat s att det anvnder frg-ls?
     2.20 Hur tar jag reda p vilket bibliotek i /usr/lib som innehller en viss funktion?

  3. Detaljerade tips

     3.1 Dela swap-partition mellan Linux och Windows.
     3.2 Desperat undelete.
     3.3 Hur du anvnder immutable-flaggan.
     3.4 Ett frslag om vad du ska stoppa in nya grejer.
     3.5 Konvertera alla filer i en katalog till sm bokstver.
     3.6 Ngra tips fr nya systemadministratrer
     3.7 Hur du stller in in xdms vljare fr host-val.


  ______________________________________________________________________

  1.  Inledning

  Vllkommen till Linux Tips HOWTO, en lista av trevliga sm trick och
  optimeringar som gr Linux roligare. Allt jag har hr just nu r tips
  som jag tagit direkt ur eget huvud och tips frn den gamla Tips-HOWTOn
  (varfr ta bort ett bra tips?). S skicka alla dina favorit-trick och
  -tips till mig s att jag kan ta med dem i nsta Tips-HOWTO.

  Paul Anderson Ansvarig fr Linux TIPS HOWTO

  panderso@ebtech.net



  1.1.  versttarens anmrkningar

  Precis som vanligt s kan det finnas tveksamma versttningar och
  sdant i det hr dokumentet. Ngra kanske vill att jag ska verstta
  t.ex. variabler i skalprogram till svenska, vilket jag inte gjort.
  Alla som har synpunkter r vlkomna att hra av sig till mig p
  uxm165t@tninet.se.



  2.  Korta tips

  2.1.  Praktiskt syslog-trick Paul Anderson, ansvarig fr Tips-HOWTOn

  ndra i din /etc/syslog.conf och lgg in fljande rad:


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




  En sak att tnka p: KOM IHG ATT ANVNDA TABBAR! syslog gillar inte
  mellanslag...


  2.2.  Skalprogram fr att lsa de dr komprimerade HOWTOna Didier
  Juges,  dj@destin.nfds.net


  Frn en nybrjare till en annan kommer hr ett kort skalprogram som
  gr det enklare att lsa HOWTO-dokument. Mina HOWTOn finns i
  /usr/doc/faq/howto/ och r gzippade. Filnamnen r XXX-HOWTO.gz, dr
  XXX r mnet. Jag skapade fljande 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
       ______________________________________________________________________




  Nr det anropas utan argument s visar det en lista ver de
  tillgngliga HOWTOna. Nr det sedan anropas med frsta delen av ett
  filnamn (innan bindestrecket) som argument s zippar det upp (och
  behller originalet intakt) och visar dokumentet.

  Fr att t.ex. lsa Serial-HOWTO.gz, skriv:

  $ howto Serial



  2.3.  Finns det tillrckligt med ledigt minne? Hans Zoebelein,
  zocki@goldfish.cube.net

  Hr kommer ett kort skalprogram, vilket d och d kollar om det finns
  tillrckligt med ledigt utrymme tillgngligt p vad som helst som
  dyker upp i mount (hrddiskar, cdrom, disketter osv.).

  Om utrymmet tar slut s visas ett meddelande var Xte sekunde p
  skrmen och ett e-brev skickas fr varje full enhet.






























































  ______________________________________________________________________
  #!/bin/sh

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

  #
  # Nr jag gick mystiska felmeddelanden under en kompilering och
  # tmp-filer fyllde upp mina diskar, skrev jag detta fr att f en
  # varning innan diskarna blir fulla.
  #
  # Om det hr rddar dina servrar frn att explodera, skicka ett
  # e-brev till zocki@goldfish.cube.net 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 frlta mig :)

  #
  # Stoppa in det och glm 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 fr varje aktuell enhet till $MAIL_TO_ME.
  # Om det terigen finns mer fritt utrymme n vad som r satt som grns
  # s skickas ett nytt e-brev.
  #

  # ATT GRA: Olika $MINFREE fr olika enheter.
  # Rensa ut gammalt skrp ur /*tmp-kataloger om utrymmet tar slut.

  DEVICES='/dev/sda2 /dev/sda8 /dev/sda9'         # enhet; lgg in diskar hr
  MINFREE=20480                                   # kb; varning under detta
  SLEEPTIME=10                                    # sek; sov mellan kollarna
  MAIL_TO_ME='root@localhost'                     # dre; vem som fr mail


  # ------- inga ndringar behvs under denna rad (frhoppningsvis :) -------

  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 hr" >&2
                          echo -e "\a\a\a\a"

                          if [ -z  "`echo $MAILED | grep -w $DEVICE`" ] ; then
                                  echo "VARNING: $DEVICE endast $ISMB mb ledigt.      (Grnsen satt till $MINMB mb)" \
                                  | mail -s "VARNING: $DEVICE endast $ISMB mb ledigt!" $MAIL_TO_ME
                                  MAILEDH="$MAILED $DEVICE"
                                  MAILED=$MAILEDH
                                  # lgg in annat, som stdning av */tmp-
                                  # kataloger, hr
                          fi
                          elif [ -n  "`echo $MAILED | grep -w $DEVICE`" ] ; then
                                  # Bort med mailed-markeraren om det finns
                                  # tillrckligt 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 fr att rensa upp i dina loggfiler Paul Anderson,
  ansvarig fr 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
  gra med sina enorma loggfiler? Installera chklogs.  Chklogs r
  skrivet av Emilio Grimaldo, grimaldo@panama.iaehv.ln, och den senaste
  versionen (1.8) r tillgnglig via ftp frn
  frp.iaehv.ln:/pub/users/grimaldo/chklogs-1.8.tar.gz.  Det frklarar
  ganska bra sjlvt hur du ska installera det (du ska naturligtvis ven
  ta en titt p informationen i doc-katalogen). Nr du har isntallerat
  det ska du lgga till fljande i crontab:


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




  Nr du nd hller p, glm inte att tala om fr programmeraren vilket
  trevligt program det r :).



  2.5.  Praktiskt skalprogram fr att stda upp core-filer Otto Hammer
  smith,  ohammers@cu-online.com

  Skapa en fil som heter rmcores (frfattaren kallar det handle-cores)
  med fljande innehll:




















  ______________________________________________________________________
  #!/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 gr du s att ett cron-jobb kr det d och d.



  2.6.  Flytta kataloger mellan filsystem. Alan Cox,
  A.Cox@swansea.ac.uk

  Ett snabbt stt att flytta ett helt filtrd frn en disk till en annan
  r


       (cd /kll/katalog && tar cf - . ) | (cd /dest/katalog && tar xvfp -)




  [ Byt frn cd /kll/katalog; tar...osv. fr att frhindra mjligheten
  att katalogen frstrs om en olycka intrffar. Tack till Jim Dennis,
  jadestar@rahul.net, fr att han gjorde mig uppmrksam p detta.
  -Ansvarige. ]


  2.7.  Ta reda p vilka kataloger som r strst. Mick Ghazey,
  mghazey@miso.lowdown.com

  Har du ngonsin funderat p vilka kataloger som r de strsta p din
  dator? S hr tar du reda p det:


       du -S | sort -n





  2.8.  Linux Gazette

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


       http://www.ssc.com/lg

  Frresten s visar det sig att (1) LG utges nu varje mnad och (2)
  John Fisk har inte lngre hand om det, utan mnniskorna p SSC.



  2.9.  Hnvisning till en patch till GNU Make 3.70 fr att ndra VPATH-
  beteendet. Ted Stern,  stern@amath.washington.edu

  Jag vet inte om mnga 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 skvg. Det finns en extremt
  stabil patch fr att fixa detta, vilken du kan f frn Paul D. Smith
  <psmith@wellfleet.com>. Han publicerar dokumentationen och patchen i
  nyhetsgruppen gnu.utils.bug efter varje uppdatering av GNU Make. Sjlv
  lgger jag till den hr patchen och kompilerar om gmake p varje
  system jag har tillgng.


  2.10.  Hur fr jag mitt system att inte kra fsck efter varje boot
  ning? Dale Lutz,  dal@wimsey.com

  F: Hur fr jag e2fsck att inte kolla min hrddisk varenda gng jag
  bootar om?

  S: Nr du kompilerar om krnan s markeras filsystemet som "smutsigt"
  (dirty) och din hrddisk kommer d kollas efter varje ombootning. Fr
  att fixa detta kr du:

  rdev -R /zImage 1

  Detta fixar krnan, s att den inte lngre r vertygad om att
  filsystemet r smutsigt.

  Obs: Om du anvnder lilo, lgg till read-only till Linux-avdelningen i
  din konfigureringsfil fr lilo (vanligtvis /etc/lilo.conf).


  2.11.  Hur man undviker fsck orsakade av "device busy" d man bootar
  om. Jon Tombs,  jon@gtex02.us.es

  Om du ofta fr "device busy"-fel som gr att filsystemet mste g
  igenom en fsck, d du kr shutdown, s kommer hr en enkel lsning:

  Lgg till raden


       mount -o remount,ro /mount.dir




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

  Gr detta fr varje monterat filsystem utom /, innan anropet till
  umount -a. Detta betyder att om shutdown av ngon anledning misslyckas
  med att dda alla processer och avmontera alla diskar s kommer de
  fortfarande att vara rena d du bootar om. Detta spar en massa tid fr
  mig d jag bootar om.


  2.12.  Hur du hittar de strsta filerna p din hrddisk. Simon Amor,
  simon@foobar.co.uk




  ls -l | sort +4n




  Om du har vldigt dligt med utrymme s funkar ven det fljande, men
  kan ta en hel del tid:



       cd /
       ls -lR | sort +4n





  2.13.  Hur du skriver ut sidor med marginal fr hlslag. Mike Dickey,
  mdickey@thorplus.lib.purdue.edu



       ______________________________________________________________________
               #!/bin/sh
               # /usr/local/bin/print
               # en enkel formatterad utskrift, fr att att lta ngon
               # ta hl p utskriften och stta den i en prm

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





  2.14.  Raul Deluth Miller,  rockwell@nova.umd.edu Ett stt att ska
  igenom filtrd efter ett visst reguljrt mnster.

  Jag kallar detta skalprogram "forall". Anvnd det s hr:


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




  Hr 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 fr att stda upp efter program som skapar
  autosave- och backup-filer. Barry Tolnas,  tolnas@nestor.engr.utk.edu

  Hr kommer ett enkelt skalprogram p tv rader som rekursivt gr 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 ondigt filer och komprimerar .tex- och README-filer
       #Av Barry tolnas, tolnas@sun1.engr.utk.edu
       #
       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.  simon@foobar.co.uk Hur du tar reda p vilken process som ter
  mest minne. Simon Amor,



       ps -aux | sort +4n




  -ELLER-


       ps -aux | sort +5n





  2.17.  Stlla in vi fr C-programmering Paul Anderson,  Ansvarig fr
  Tips-HOWTOn

  Jag programmerar en massa C p min fritid och har tagit mig tid att
  stlla in vi s att det passar bra fr C. Hr r min .exrc:


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





  Hur fungerar det? autoindent gr att vi automatiskt indenterar varje
  rad som fljer en indenterad rad, shiftwidth stller in tabblngden
  till 4 mellanslag, backspace slr p backspacelget och ruler gr att
  det visar radnummer. Kom ihg att du kan g till en specifik rad, sg
  20, genom att skriva:



       ______________________________________________________________________
       vi +20 myfile.c
       ______________________________________________________________________





  2.18.  Varfr hnger sig sendmail i fem minuter d man startar RedHat?
  Paul Anderson,  paul@geeky1.ebtech.net

  Det hr r ett ganska vanligt problem, nstan s att det r en FAQ
  (ofta stlld frga. vers.anm.). Jag vet inte om RedHat har fixat det
  hr problemet i sin distribution, men annars kan du sjlv reparera
  det. Om du kollar i din /etc/hosts-fil s kommer du hitta ngot i stil
  med:


       127.0.0.1               localhost       yourbox




  Nr sendmail startas s kollar det din maskins namn (hostname) (i
  detta exempel r det yourbox). Det ser d att IP-numret fr din
  yourbox r 127.0.0.1, vilket sendmail inte tycker om och gr kollen
  igen. Det fortstter s med detta ett tag, tills det ger upp och
  avslutas. Att lsa detta r extremt enkelt, lgg bara in ngot i stil
  med


       127.0.0.1               localhost
       10.56.142.1             yourbox




  i din /etc/hosts-fil.



  2.19.  Hur stller jag in RedHat s att det anvnder frg-ls? Paul
  Anderson,  paul@geeky1.ebtech.net

  RedHats distribution kommer med frg-ls och varfr de inte stller in
  det fr att anvnda det som standard r bortom min fattningsfrmga.
  Hr kommer en lsning.

  Skriv frst eval `DIRCOLORS`

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

  Lgg in 'alias....' i din /etc/bashrc




  2.20.  Hur tar jag reda p vilket bibliotek i /usr/lib som innehller
  en viss funktion? Pawel Veselow,  vps@unicorn.niimm.spb.su

  Vad hnder om du kompilerar och du har missat ngot bibliotek som
  mste lnkas in? Allt gcc rapporterar r funktionsnamn... Hr kommer
  ett enkelt kommando som gr 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,
  ace3@midway.uchicago.edu


  1. Formattera partitionen som en dos-partition och skapa swapfilen fr
     Windows p den, men kr inte Windows n. (Du ska hlla swapfilen
     helt tom fr tillfllet 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 innehller
     nollor s kommer den andra komprimeras bra.


       gzip -9 /etc/dosswap




  4. Lgg till det fljande till /etc/rc-filen fr att frbereda och
     installera swaputrymmet under Linux: XXXXX r antalet block i
     swappartitionen


       mkswap /dev/hda8 XXXXX
       swapon -av




  Se till s att du lgger till en rad fr swappartitionen i /etc/fstab.

  5. Om ditt init/reboot-paket stdjer /etc/brc eller /sbin/brc, s lgg
     till det fljande i /etc/brc. Annars kan du lgga till det fr hand
     nr 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 frsta 100 blocke till
  # partitionen. Enligt min erfarenhet rcker det.

  > > Vilka r fr- och nackdelarna med att gra detta?

  Frdelar: du spar en hel del hrddiskutrymme.

  Nackdelar: om steg 5 inte sker automatiskt s mste du komma ihg att
  gra det fr hand och dessutom gr det ombootningsprocessen en
  nanosekunde lngsammare. :-)


  3.2.  Desperat undelete. Michael Hamilton,  michael@actrix.gen.nz

  Hr kommer ett trick som jag varit tvungen att anvnda ett par gnger.

  Desperata mnniskors textfils-undelete.

  Om du av misstag raderar en textfil, t.ex. e-post eller resultatet av
  en sen natts programmeringssession, s behver inte allt vara
  frlorat. Om filen ngonsin sparades p disk, allts om den existerade
  i tminstone 30 skunder, s kan dess innehll fortfarande finnas kvar
  p partitionen.

  Du kan anvnda kommandot grep fr att leta igenom den ra partitionen
  efter innehllet i filen.

  Nyligen tog jag t.ex. bort ett e-brev. Jag avslutade omedelbart all
  aktivitet som kunde modifiera den partitionen: i detta fall lt jag
  bara bli att spara filer och kompilera osv. I andra fall har jag
  faktiskt gtt igenom de besvr det innebr att ta ner systemet till
  enanvndarlge (single user mode) och avmonterat filsystemet.

  Sen anvnde jag kommandot egrep p partitionen: i mitt fall fanns e-
  brevet i /usr/local/home/michael/, s frn utdatan frn 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 frsiktig nr det gller att fipplat med partitioner,
  s jag tog en paus fr att se till att jag frstod kommandots syntax
  INNAN jag tryckte return. I det hr fallet innehll e-brevet ordet
  `ftp', fljt av en del text som fljdes av ordet `COL'. Meddelandet
  var runt 20 rader lngt, s jag anvnde -50 fr att f med alla rader
  runt den frasen. Frut har jag anvnt -3000 fr att se till att alla
  rader i ngon kllkodsfil kom med. Jag omdirigerade utdatan frn egrep
  till en annan partition - detta frhindrade att jag skrev ver medde
  landet jag letade efter.

  Sedan anvnde jag strings fr att hjlpa mig med att inspektera
  utdatan:



     strings /tmp/x | less





  Dr fanns e-brevet!

  Den hr metoden r inte att lita p, allt eller en del av diskutrymmet
  kan redan ha blivit teranvnt.

  Detta trick r antagligen bara anvndbart p ett enanvndarsystem. P
  system med flera anvndare och med mycket diskaktivitet s kan
  utrymmet du har frigjort mycket vl redan ha teranvnts. Och de
  flesta av oss kan inte bara ta ned maskinen fr vra anvndare nr vi
  mste hitta en fil vi tagit bort.

  P det system jag kr hemma har detta trick varit anvndbart vid
  ungefr tre gnger under de senaste ren - vanligtvis nr jag frstr
  en del av dagens arbetsresultat. Om det jag gjort klarar sig s lngt
  att jag tycker att jag gjort anmrkningsvrda framsteg s brukar jag
  skerhetskopiera det p disketter, s jag behver inte anvnda detta
  trick s ofta.


  3.3.  Hur du anvnder immutable-flaggan. Jim Dennis,
  jadestar@rahul.net

  Anvnda immutable-flaggan

  S fort du har installerat och konfigurerat ditt system s br du g
  igenom /bin, /sbin, /usr/bin, /usr/sbin och /usr/lib (och ngra av de
  andra katalogerna) och p ett sparsamt stt anvnda 'chattr +i
  kommando'. Lgg ocks till det till krnfilerna i rotkatalogen. Kr nu
  `mkdir /etc/.dist' och kopiera allt frn /etc/ dit (sjlv gr jag
  detta i tv steg, med /tmp/etcdist.tar fr att undvika rekursion). (Du
  kan ven bara skapa /etc/.dist.tar.gz - och gra den immutable.)

  Anledningen till allt detta r att bernsa skadan du kan gra nr du
  r inloggad som root. Du kan inte skriva ver filer av misstag och du
  kan inte gra systemet oanvndbart med ett mellanslag fr mycket om du
  anvnder 'rm -rf' (du kan fortfarande frstra en massa data - men
  dina bibliotek och binrfiler r skrare).

  Detta gr ocks en hel del intrng och "denial of service"-angrepp
  antingen omjliga eller svrare (eftersom mnga av dem r beroende av
  att kunna skriva ver ngon fil genom ingrepp av ngot SUIDat program
  som *inte tillhandahller ett visst skalkommando*).

  Det enda otrevliga med detta r att nr du kompilerar och kr 'make
  install' p olika typer av systembinrfiler.  andra sidan s hindrar
  det ocks 'make install' frn att skriva ver filerna. Nr du glmmer
  att lsa Makefilen och chattr -i filen som ska skrivas ver (och
  katalogerna till vilka du ska lgga till filer) s misslyckas make-
  kommandot, men d r det bara att anvnda kommandot chattr och kra
  det igen. Du kan ocks ta tillfllet i akt och flytta dina gamla
  binrfiler, 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 frslag om vad du ska stoppa in nya grejer. Jim Dennis,
  jadestar@rahul.net

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


  Om din distribution r en som lmnar /usr/local tomt, s skapa bara
  din /usr/local/src, /usr/local/bin osv. och anvnd dem. Om din
  distribution stoppar saker i /usr/local-trdet s r det kanske bst
  att kra 'mkdir /usr/local/`hostname`' och ge 'wheel'-gruppen +w till
  den (jag gr den ocks SUID och SGID fr att se till att varje medlem
  i wheel-gruppen bara kan greja med sina egna filer dr och att alla
  filer som skapas tillhr wheel-gruppen).

  Se nu till att vara disciplinerad och *ALLTID! ALLTID! ALLTID!* stoppa
  nya paket i /usr/local/src/.frn/$VAR_JAG_FICK_DET_IFRN/ (fr .tar
  eller vilken fil det nu var) och kompilera dem under /usr/local/src
  (eller .../$HOSTNAME/src). Se till att det installeras under local-
  trdet. Om det *absolut mste* installeras i /bin eller /usr/bin eller
  ngon annanstans, s kan du skapa en lnk frn local-trdet till varje
  element som finns ngon annanstans.

  Anledningen till detta, ven om det leder till mer jobb, r att det
  hjlper till att isolera det som ska skerhetskopieras och terstllas
  frn distributions-mediet (nu fr tiden r det oftast en CD). Genom
  att anvnda en /usr/local/.from-katalog upprtthller du ocks en
  informell logg om varifrn kllkoden kommit, vilket hjlper dig d
  letar efter nya versioner, och hjlper dig d du lser igenom
  skerhetsmeddelandena i announcement-listor.

  Ett av de system jag har hemma (det jag skriver detta p) sattes upp
  innan jag sjlv brjade arbeta enligt dessa principer. Jag "vet"
  fortfarande inte precis hur det skiljer sig frn ett system frn en
  "ren installering". Detta trots att jag har gjort vldigt lite med det
  systemet, inte konfigurerat det speciellt mycket och r den enda som
  anvnder det.

  I kontrast till detta s har de system som jag satt upp p jobbet
  (sedan jag kastats in i rollen som systemadministratr) blivit
  konfigurerade p detta stt - de har administrerats av mnga mnniskor
  och MIS-typer och har gtt igenom mnga 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 bokstver. Justin
  Dossey,  dossey@ou.edu


  Jag la mrke till ngra verdrivet svra eller ondiga 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
           # bokstver. pverkar bara vanliga filer - ndrar inte namnen
           # kataloger. frgar 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 lngt skalprogram. Jag skulle inte skriva ett skalpro
  gram fr att gra det. Istllet skulle jag anvnda detta kommando:


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




  direkt frn kommandoraden.

  Bidragsgivaren sger att han skrev skalprogrammet ssom han gjorde det
  fr att det skulle bli lttare att frst (se nedan).

  I nsta tips, som handlar om att lgga till och ta bort anvndare, s
  gr Geoff allt rtt nda tills han kommer till sista steget. Boota om?
  Gosse, jag hoppas att han inte bootar om varenda gng han tar bort en
  anvndare. Allt du behver gra r att utfra de tv frsta stegen.
  Vilket slags processer kan den anvndaren ha igng, frresten?  En
  irc-bot? Dda processerna med ett enkelt


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




  I fljande exempel r anvndarnamnet foo:


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




  Nr vi klarat av det, lt oss g vidare till det bortglmda lsenordet
  fr root.

  Lsningen som gavs i Gazetten r den mest anvnda, men inte den
  enklaste. Till bde LILO och loadlin kan man skicka med parametern
  "single" fr att boota direkt till standardskalet utan behva skriva
  anvndarnamn eller lsenord. Drifrn kan man ndra eller ta bort
  vilket lsenord som helst, innan man skriver "init 3" fr att kra
  igng fleranvndarlget.
  Antal ombootningar: 1 Det andra sttet Antal ombootningar: 2

  Justin Dossey



  3.6.  Ngra tips fr nya systemadministratrer Jim Dennis,
  jadestar@rahul.net

  Skapa och upprtthll en /README.`hostname` och/eller en
  /etc/README.`hostname`.  (Eller kanske
  /usr/local/etc/README.`hostname` - Ansvarige.)

  Frn och med *dag ett* ska du absolut fra anteckningar i en loggfil.
  Du kan lgga in en rad med "vi /README.$dollar;(hostname)" i roots
   /bash_logout. Ett annat stt r att skriva ett su- eller sudo-
  skalprogram som gr ngot i stil med fljande:


                       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 -




  (anvnd typescript-kommandot fr att skapa en sessionlogg och skapa en
  funktion fr att automatisera tillggen och uppdateringarna av
  loggen.)

  Jag ska erknna att jag inte har lagt in denna automatisering av
  princip - jag har hittills bara litat p sjlvdisciplin. Jag har dock
  lekt med idn (till och med gtt s lngt som till att gra prototyper
  fr skalprogrammen och skalfunktionerna som du ser dem i det hr
  dokumentet). En sak som hindrar mig frn att genomfra detta r
  script-kommandot sjlvt. Jag tror jag kommer bli tvungen att plocka
  hem kllkoden och lgga till ngra kommandoradsparametrar (fr att
  pause/stoppa skalprogrammets "inspelning" av kommandoraden) innan jag
  brjar anvnda det.

  Mitt sista frslag (fr denna gng):

  Roots skvg ska best av 'PATH= /bin'.

  Det r allt. Inget annat ska finnas i roots skvg. Allt root gr ska
  finnas som en lnk frn  /bin eller genom ett alias eller en
  skalfunktion, eller som ett skalprogram eller binrfil i  /bin, eller
  ska skrivas in med den fulla skvgen.

  Detta gr alla som kr som root (ibland smrtsamt) medvetna om vilket
  frtroende han eller hon har fr binrfiler. Den vise
  systemadministratren i ett fleranvndarsystem kollar d och d igenom
  sina  /bin- och  /.*history-filer efter mnster eller kryphl.

  Den verkligt motiverade administratren kommer lgga mrke till
  sekvenser som kan automatiseras, stllen dr frnuftskollar kan lggas
  in och uppgifter fr vilka "root"-privilegierna tillflligt kan
  upphvas (kra igng editorer, MTAn och andra stora interaktiva
  program med goda instllningsmjligheter som *kan* lggas in
  transparent eller i datafiler - som den knda ./.exrc fr vi och emacs
  ./.emacs och det nn mer vlknda $EXINIT och de inbddade
  header/footer-makrona). De kommandona kan naturligtvis kras med ngot
  i stil med:


                       cp $data $ngon_anvndares_hem/tmp
                       su -c $origkommando $diverse_argument
                       cp $ngon_anvndares_hem/tmp $data




  (...dr det mer specifika beror p kommandot.)

  Den sista sortens frbehll r verdrivna om det handlar om en ensam
  anvndares arbetsstation - men de r vldigt bra av princip, om du r
  administratr av ett fleranvndarsystem - speciellt ett allmnt
  exponerat system (som de p netcom).


  3.7.  Hur du stller in in xdms vljare fr host-val. Arrigo Triulzi,
  a.triulzi@ic.ac.uk


  1. Modifiera filen som kr igng xdm (oftast /etc/rc/rc.6 eller
     /etc/rc.local) s att den innehller de fljande 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 lgger till detta eftersom det, nr jag desperat frskte
  konfigurera det fr mitt eget subnt, tog mig ungefr en vecka att
  reda ut alla problemen.

  Varning: med gamla SLS (1.1.1) kan du av ngon anledning lmna ett
  -nodaemon efter xdm-raden - detta fungerar INTE med senare utgvor.




















