The Linux Tips HOWTO
 Paul Anderson, [email protected] diterjemahkan oleh
 Ronny Haryanto, [email protected]
 v3.0, 7 January 1997, diterjemahkan 23 November 1997

 HOWTO ini berisi petunjuk-petunjuk dan tips-tips yang membuat Linux
 sedikit lebih baik.
 ______________________________________________________________________

 Daftar Isi:

 1.      Pendahuluan

 2.      Petunjuk Singkat

 2.1.    Trik Syslog yang berguna

 2.2.    Script untuk melihat isi HOWTO yang dipadatkan (compressed).

 2.3.    Apakah ada cukup tempat di hard disk???

 2.4.    Utilitas untuk membersihkan berkas-berkas log.

 2.5.    Script untuk membersihkan berkas-berkas core.

 2.6.    Memindahkan direktori-direktori antar filesystem.

 2.7.    Mengetahui direktori yang berukuran terbesar.

 2.8.    The Linux Gazette

 2.9.    Petunjuk untuk memperbaiki GNU Make 3.70: mengubah cara VPATH
 berlaku.

 2.10.   Bagaimana cara memberhentikan fsck pada setiap kali reboot?

 2.11.   Bagaimana menghindari fsck yang disebabkan oleh "device busy"
 pada saat reboot.

 2.12.   Cara untuk menemukan berkas berukuran terbesar di hard-drive
 Anda.

 2.13.   Cara mencetak supaya kertas bisa dilubangi di bagian tepi.

 2.14.   Sebuah cara untuk mencari dengan regular expression di antara
 berkas-berkas.

 2.15.   Sebuah script untuk membersihkan berkas autosave dan backup
 yang dibuat oleh program.

 2.16.   Cara mengetahui proses yang paling banyak memakan memori.

 3.      Petunjuk-petunjuk lebih mendetil.

 3.1.    Menggunakan partisi swap bersama antara Linux dan Windows.

 3.2.    Undelete dalam keadaan putus asa.

 3.3.    Cara menggunakan flag yang tidak berubah (immutable flag).

 3.4.    Saran: tempat untuk meletakkan barang-barang baru.

 3.5.    Mengubah semua nama berkas di direktori menjadi huruf kecil.

 3.6.    Beberapa petunjuk untuk sysadmin baru.

 3.7.    Cara mengkonfigurasi chooser dari xdm untuk pilihan host.
 ______________________________________________________________________

 1.  Pendahuluan

 Selamat datang di Linux Tips HOWTO, sebuah daftar dari trik-trik dan
 optimasi-optimasi yang membuat Linux menjadi lebih menyenangkan.
 Semua yang ada di sini sekarang adalah dari pengetahuan penulis, dan
 juga dari Tips-HOWTO yang lama (trik yang bagus tidak harus
 dihilangkan, bukan?).  Jadi kirimkan semua petunjuk dan trik favorit
 Anda kepada penulis sehingga penulis bisa mengikutsertakannya di Tips-
 HOWTO yang berikut.

 Paul Anderson Maintainer--Linux TIPS HOWTO

 [email protected]

 2.  Petunjuk Singkat

 2.1.  Trik Syslog yang berguna Paul Anderson, Tips-HOWTO maintainer

 Suntinglah /etc/syslog.conf, dan letakkan baris berikut:

      # Dump everything on tty8
      *.*                                     /dev/tty8

 Harap diingat: JANGAN LUPA UNTUK MENGGUNAKAN TAB!  syslog tidak
 menyukai spasi...

 2.2.  Script untuk melihat isi HOWTO yang dipadatkan (compressed).
 Didier Juges, [email protected]

 Dari pendatang baru dan seterusnya, ini adalah script singkat yang
 memudahkan mencari dan melihat dokumen-dokumen HOWTO.  Berkas-berkas
 HOWTO terletak di /usr/doc/faq/howto/ dan dipadatkan dengan gzip.
 Nama-nama berkas ialah XXX-HOWTO.gz, di mana XXX adalah subjek dari
 HOWTO.  Penulis membuat script berikut yang dinamakan "howto" di
 direktori /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
      ______________________________________________________________________

 Ketika dijalankan tanpa menyertakan argumen, script ini akan
 menampilkan sebuah direktori berisi HOWTO yang ada. Kemudian ketika
 disertakan subjek dari HOWTO (bagian depan dari nama berkas sebelum
 tanda hubung) sebagai argumen, maka akan meng-unzip (tanpa mengubah
 berkas asli) dan menampilkan isi dokumen tersebut.

 Sebagai contoh, untuk melihat dokumen Serial-HOWTO.gz, masukkan:

 $ howto Serial

 2.3.  Apakah ada cukup tempat di hard disk??? Hans Zoebelein,
 [email protected]

 Berikut ini adalah sebuah script singkat yang akan mengecek secara
 berkala apakah ada cukup tempat kosong yang tersedia di semua yang
 ditampilkan oleh mount (disks, cdrom, floppy...)

 Jika kehabisan tempat kosong, sebuah pesan akan ditampilkan di layar
 setiap X detik dan juga akan dikirim 1 e-mail untuk masing-masing
 device yang penuh.

 ______________________________________________________________________
 #!/bin/sh

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

 #
 # Since I got mysterious error messages during compile when
 # tmp files filled up my disks, I wrote this to get a warning
 # before disks are full.
 #
 # If this stuff saved your servers from exploding,
 # send praising email to [email protected].
 # If your site burns down because of this, sorry but I
 # warned you: no comps.
 # If you really know how to handle sed, please forgive me :)
 #

 #
 # Shoot and forget: Put 'check_hdspace &' in rc.local.
 # Checks for free space on devices every $SLEEPTIME sec.
 # You even might check your floppies or tape drives. :)
 # If free space is below $MINFREE (kb), it will echo a warning
 # and send one mail for each triggering device to $MAIL_TO_ME.
 # If there is more free space than trigger limit again,
 # mail action is also armed again.
 #

 # TODO: Different $MINFREE for each device.
 # Free /*tmp dirs securely from old junk stuff if no more free space.

 DEVICES='/dev/sda2 /dev/sda8 /dev/sda9'         # device; your put disks here
 MINFREE=20480                                   # kb; below this do warning
 SLEEPTIME=10                                    # sec; sleep between checks
 MAIL_TO_ME='root@localhost'                     # fool; to whom mail warning

 # ------- no changes needed below this line (hopefully :) -------

 MINMB=0
 ISFREE=0
 MAILED=""
 let MINMB=$MINFREE/1024         # yep, we are 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  "WARNING: $DEVICE only $ISMB mb free." >&2
                         #echo "more stuff here" >&2
                         echo -e "\a\a\a\a"

                         if [ -z  "`echo $MAILED | grep -w $DEVICE`" ] ; then
                                 echo "WARNING: $DEVICE only $ISMB mb free.      (Trigger is set to $MINMB mb)" \
                                 | mail -s "WARNING: $DEVICE only $ISMB mb free!" $MAIL_TO_ME
                                 MAILEDH="$MAILED $DEVICE"
                                 MAILED=$MAILEDH
                                 # put further action here like cleaning
                                 # up */tmp dirs...
                         fi
                         elif [ -n  "`echo $MAILED | grep -w $DEVICE`" ] ; then
                                 # Remove mailed marker if enough disk space
                                 # again. So we are ready for new mailing action.
                                 MAILEDH="`echo $MAILED  | sed s#$DEVICE##`"
                                 MAILED=$MAILEDH
                         fi

                 done
                 sleep $SLEEPTIME

 done
 ______________________________________________________________________

 2.4.  Utilitas untuk membersihkan berkas-berkas log. Paul Anderson,
 Tips-HOWTO Maintainer>

 Jika Anda seperti penulis, Anda punya list dengan 250 pelanggan,
 ditambah lagi 100+ e-mail per hari datang lewat UUCP.  Jadi, apa yang
 akan dilakukan oleh hacker dengan log-log yang besar ini? Pasang
 chklogs, itulah yang seharusnya dilakukan. Chklogs ditulis oleh Emilio
 Grimaldo, [email protected], dan versi terbaru ialah 1.8 yang
 bisa didapat dari
 <ftp.iaehv.nl:/pub/users/grimaldo/chklogs-1.8.tar.gz>.  Tidak perlu
 banyak penjelasan untuk memasang chklogs (tentu saja Anda akan membaca
 info di subdirektori doc). Jika chklogs sudah terpasang dengan benar,
 tambahkan yang berikut ini di crontab:

      # Run chklogs at 9:00PM daily.
      00 21 * * *       /usr/local/sbin/chklogs -m

 Sambil lalu, sampaikan kepada penulis chklogs betapa bagusnya program
 ini :)

 2.5.  [email protected] Script untuk membersihkan berkas-berkas
 core. Otto Hammersmith,

 Buat berkas bernama rmcores (penulisnya menyebutnya handle-cores) yang
 berisi:

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

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

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

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

 Dan buatlah sebuah cron job yang menjalankannya setiap beberapa saat
 tertentu.

 2.6.  Memindahkan direktori-direktori antar filesystem. Alan Cox,
 [email protected]

 Sebuah cara cepat untuk memindahkan seluruh direktori beserta isinya
 dari satu disk ke disk yang lain:

      (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -)

  Gantilah dari cd /source/directory; tar....dst.  untuk menghindari
 kemungkinan terjadinya penghapusan direktori secara tidak sengaja atau
 terjadinya bencana. Terima kasih kepada Jim Dennis,
 [email protected], yang memberitahu penulis.

 2.7.  [email protected] Mengetahui direktori yang berukuran
 terbesar. Mick Ghazey,

 Pernahkan terpikir untuk mengetahui direktori mana yang terbesar
 ukurannya?  Berikut ini adalah sebuah caranya.

      du -S | sort -n

 2.8.  The Linux Gazette

 Pujian untuk John Fisk, pembuat The Linux Gazette.  Ini adalah sebuah
 majalah elektornik (e-zine) plus, dan GRATIS!!!  Nah, apa lagi yang
 bisa anda harapkan?  Silakan dilihat di:

 http://www.ssc.com/lg

 Untuk informasi Anda, (1) LG sekarang terbit bulanan, dan (2) LG bukan
 lagi diurus oleh John Fisk, melainkan orang-orang dari SSC.

 2.9.  Ted Stern, [email protected] Petunjuk untuk memperbaiki
 GNU Make 3.70: mengubah cara VPATH berlaku.

 Penulis tidak tahu apakah banyak orang yang mengalami hal yang sama,
 tetapi ada "feature" dari GNU Make version 3.70 yang tidak disukai
 penulis, ialah VPATH berlaku aneh jika diberikan pathname yang
 absolut. Ada patch yang sangat baik yang bisa memperbaiki hal ini,
 Anda bisa mendapatkannya dari Paul D. Smith <[email protected]>.
 Beliau juga mengirimkan dokumentasi dan patch setiap setelah revisi
 dari GNU Make di newsgroup Pada umumnya, penulis menggunakan patch ini
 dan meng-compile ulang gmake di setiap sistem di mana penulis
 mempunyai akses.

 2.10.  Bagaimana cara memberhentikan fsck pada setiap kali reboot?
 Dale Lutz, [email protected]

 Q:  Bagaimana cara memberhentikan e2fsck mengecek disk saya setiap
 kali saya boot?

 A:  Ketika anda membangun ulang kernel, filesystem diberi tanda
 'kotor' dan disk Anda akan dicek pada setiap boot. Untuk
 memperbaikinya, jalankan:

 rdev -R /zImage 1

 Ini akan memperbaiki kernel supaya kernel percaya bahwa filesystem
 tidak 'kotor' lagi.

 Catatan: jika menggunakan lilo, maka tambahkan read-only pada linux
 setup di berkas konfigurasi lilo Anda (biasanya /etc/lilo.conf)

 2.11.  Bagaimana menghindari fsck yang disebabkan oleh "device busy"
 pada saat reboot. Jon Tombs, [email protected]

 Jika Anda sering mengalami kesalahan "device busy" pada saat shutdown
 yang menyebabkan filesystem membutuhkan fsck pada saat reboot, berikut
 ini ada cara mudah untuk memperbaikinya:

 Tambahkan baris berikut pada /etc/rc.d/init.d/halt atau /etc/rc.d/rc.0

      mount -o remount,ro /mount.dir

 untuk semua filesystem yang di-mount kecuali /, sebelum menjalankan
 umount -a. Ini berarti, jika untuk suatu alasan, shutdown tidak bisa
 membunuh semua proses dan umount semua disk, semuanya akan masih
 bersih sewaktu reboot. Bagi penulis hal ini dapat menghemat waktu
 banyak.

 2.12.  Cara untuk menemukan berkas berukuran terbesar di hard-drive
 Anda.

 Simon Amor, [email protected]

      ls -l | sort +4n

 Atau, bagi Anda sekalian yang kekurangan tempat kosong, ini agak
 memakan waktu tetapi bisa berjalan dengan baik:

      cd /
      ls -lR | sort +4n

 2.13.  Cara mencetak supaya kertas bisa dilubangi di bagian tepi. Mike
 Dickey, [email protected]

      ______________________________________________________________________
              #!/bin/sh
              # /usr/local/bin/print
              # a simple formatted printout, to enable someone to
              # 3-hole punch the output and put it in a binder

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

 2.14.  Sebuah cara untuk mencari dengan regular expression di antara
 berkas-berkas. Raul Deluth Miller, [email protected]

 Penulis memberi nama script ini 'forall'. Cara penggunaannya sebagai
 berikut:

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

 Berikut ini adalah script 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.  Sebuah script untuk membersihkan berkas autosave dan backup
 yang dibuat oleh program.Barry Tolnas, [email protected]

 Berikut adalah script dua baris yang secara rekursif menjelajahi
 hirarki dari sebuah direktori dan menghapus berkas-berkas autosave (#)
 dan backup (~) dari emacs, berkas-berkas berakhiran .o, dan berkas-
 berkas berakhiran .log dari TeX. Script ini juga memadatkan (compress)
 berkas-berkas berakhiran .tex dan berkas-berkas README. Penulis
 memberi nama 'squeeze' untuk script ini pada sistemnya.

      ______________________________________________________________________
      #!/bin/sh
      #SQUEEZE removes unnecessary files and compresses .tex and README files
      #By Barry tolnas, [email protected]
      #
      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 {} \;
      ______________________________________________________________________

 2.16.  [email protected] Cara mengetahui proses yang paling banyak
 memakan memori. Simon Amor,

      ps -aux | sort +4n

 -ATAU-

      ps -aux | sort +5n

 3.  Petunjuk-petunjuk lebih mendetil.

 3.1.  Menggunakan partisi swap bersama antara Linux dan Windows. Tony
 Acero, [email protected]

 1. Formatlah sebuah partisi sebagai partisi DOS, dan buatlah swap
    untuk Windows pada partisi tersebut, tetapi jangan menjalankan
    Windows dahulu.  (Kita menginginkan supaya swap benar-benar kosong
    untuk saat ini, sehingga dapat dipadatkan (di-compress) dengan
    baik).

 2. Boot linux dan simpanlah partisi tersebut ke sebuah berkas (file).
    Sebagai contoh, jika partisinya adalah /dev/hda8:

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

 3. Padatkan berkas dosswap; karena semua isinya adalah 0 maka akan
    dipadatkan dengan sangat baik

      gzip -9 /etc/dosswap

 4. Tambahkan yang berikut ini pada berkas /etc/rc untuk mempersiapkan
    dan memasang tempat swap di Linux:

    XXXXX adalah jumlah block di partisi swap

      mkswap /dev/hda8 XXXXX
      swapon -av

 Jangan lupa menambahkan masukan untuk partisi swap di berkas
 /etc/fstab Anda.

 5. Jika paket init/reboot Anda mendukung /etc/brc atau /sbin/brc
    tambahkan yang berikut ini pada /etc/brc. Jika tidak, jalankan ini
    secara manual ketika Anda menge-boot ke DOS atau OS/2 dan Anda
    ingin mengubah partisi swap kembali ke versi dos/windows:

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

 # Harap diingat bahwa ini hanya akan menulis 100 block pertama kembali
 ke partisi. Dari pengalaman, penulis berpendapat bahwa ini sudah
 cukup.

 >>  Apa saja pro dan kontra dari hal ini?

 Pro: Anda dapat menghemat sejumlah tempat di disk.

 Cons: Jika langkah ke-5 tidak berlangsung otomatis, Anda harus ingat
 untuk melakukannya secara manual, dan ini akan memperlambat proses
 boot sebanyak beberapa nano-detik :-)

 3.2.  Undelete dalam keadaan putus asa. Michael Hamilton,
 [email protected]

 Ini adalah trik yang sudah penulis gunakan beberapa kali.

 Undelete berkas teks untuk orang yang sudah putus asa.

 Jika Anda secara tidak sengaja menghapus sebuah berkas teks, misalnya
 email, atau hasil pemrograman di larut malam, masih ada kemungkinan
 bahwa semuanya tidak hilang. Jika berkas pernah disimpan di disk
 selama lebih dari 30 detik, isinya mungkin masih ada di partisi.

 Anda bisa menggunakan utilitas grep untuk mencari isi berkas di
 partisi disk secara langsung (raw).

 Sebagai contoh, baru-baru ini penulis menghapus sebuah email secara
 tidak sengaja. Jadi penulis berhenti dari semua aktivitas yang bisa
 mengakibatkan berubahnya partisi: dalam hal ini penulis hanya menunda
 penyimpanan berkas atau menunda melakukan compile, dsb. Pada kejadian
 lain, penulis pernah terbawa kesulitan hingga harus berpindah ke mode
 single user, dan meng-unmount filesystem.

 Kemudian penulis menggunakan perintah egrep terhadap partisi disk
 tersebut: dalam hal ini, emailnya terletak di
 /usr/local/home/michael/, jadi dari keluaran df, penulis bisa melihat
 bahwa ini sebenarnya di /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

 Sekarang, penulis sangat berhati-hati ketika bermain-main dengan par-
 tisi disk, sehingga penulis berhenti sejenak supaya yakin bahwa
 penulis mengerti arti sintaksis dari perintah yang akan dimasukkan
 SEBELUM menekan  return/enter.  Dalam hal ini email tersebut mengan-
 dung kata 'ftp' yang diikuti dengan teks tertentu yang diikuti dengan
 kata 'COL'.  Email tersebut kira-kira panjangnya 20 baris, jadi
 penulis menggunakan -50 untuk mencakup frase tersebut. Di masa lampau
 penulis menggunakan -3000 untuk mencakup sebuah frase dari sebuah kode
 (source code). Penulis mengarahkan keluaran dari egrep ke partisi disk
 yang lain, hal ini mencegah terjadinya penimpaan atas email yang
 dicari tersebut.

 Penulis kemudian menggunakan strings untuk membantu mengamati keluaran
 tersebut:

         strings /tmp/x | less

 Dan ternyata email tersebut ada di sana.

 Metoda ini tidak bisa diandalkan sepenuhnya, karena ada kemungkinan
 semua atau sebagian dari disk space tersebut telah digunakan kembali.

 Trik ini mungkin hanya berguna untuk sistem single user.  Pada sistem
 multi-user dengan aktivitas disk yang sangat tinggi, space yang
 dibebaskan (karena proses penghapusan) mungkin telah digunakan kembali
 untuk yang lain.  Dan kita tidak bisa seenaknya mengambil alih
 komputer dari pengguna-pengguna yang lain ketika kita butuh untuk
 mengambil kembali berkas yang terhapus.

 Di sistem di rumah penulis trik ini sudah digunakan kira-kira tiga
 kali dalam beberapa tahun terakhir - biasanya ketika penulis menghapus
 hasil kerja hari tersebut.  Jika apa yang penulis kerjakan sampai pada
 suatu titik di mana penulis merasa bahwa sudah ada cukup kemajuan,
 pekerjaan itu akan di-backup ke floppy, jadi penulis jarang
 menggunakan trik ini.

 3.3.  Cara menggunakan flag yang tidak berubah (immutable flag). Jim
 Dennis, [email protected]

 Penggunaan 'Immutable Flag'

 Setelah Anda memasang dan mengkonfigurasi sistem Anda, jelajahilah
 /bin, /sbin/, /usr/bin, /usr/sbin dan /usr/lib (dan juga beberapa lagi
 yang bisa dicurigai) kemudian pergunakan 'chattr +i command'
 seperlunya.  Juga tambahkan ke berkas-berkas kernel di root. Sekarang
 'mkdir /etc/.dist/' salinlah semua dari /etc/, termasuk sub-
 subdirektorinya (Penulis menggunakan 2 langkah, menggunakan
 /tmp/etcdist.tar untuk menghindari recursion).  (Kalau Anda mau, bisa
 juga membuat /etc/.dist.tar.gz) -- dan tandailah sebagai immutable.

 Latar belakang dari semua ini ialah untuk membatasi kerusakan yang
 bisa terjadi ketika login sebagai root.  Anda tidak akan menimpa
 berkas-berkas dengan operator redirection yang salah, dan Anda tidak
 akan membuat sistem tidak bisa terpakai gara-gara penggunaan sebuah
 spasi yang salah dalam perintah 'rm -fr' (Masih banyak kemungkinan
 Anda bisa melakukan kerusakan pada data Anda -- tetapi berkas-berkas
 lib dan bin akan menjadi lebih aman).

 Hal ini juga akan membuat sejumlah eksploitasi atas security dan
 'denial of service' menjadi tidak mungkin atau lebih sukar
 (dikarenakan kebanyakan dari eksploitasi tersebut mengandalkan
 penimpaan berkas melalui tindakan-tindakan dari program-program SUID
 yang *tidak mendukung perintah shell sembarang*).

 Satu-satunya ketidakpraktisan dari hal ini ialah ketika membangun dan
 melakukan 'make install' terhadap bermacam jenis berkas biner sistem.
 Di lain pihak, hal ini juga mencegah 'make install' dari penimpaan
 berkas-berkas. Jika Anda lupa membaca Makefile dan di mana Anda akan
 menambahkan berkas-berkas) -- program 'make' akan gagal, Anda tinggal
 menggunakan perintah chattr dan menjalankan ulang. Anda juga bisa
 menggunakan kesempatan itu untuk memindahkan berkas-berkas bin atau
 lib yg lama atau apa saja yg lain ke sebuah direktori .old/ atau
 mengubah nama direktorinya, melakukan 'tar' atau terserah Anda.

 3.4.  Jim Dennis, [email protected] Saran: tempat untuk meletakkan
 barang-barang baru.

 Semua barang baru dimulai di bawah /usr/local! atau
 /usr/local/`hostname`

 Jika distribusi Anda adalah yang /usr/local -nya kosong, maka Anda
 tinggal membuat /usr/local/src, /usr/local/bin dst dan menggunakannya.
 Jika distribusi Anda meletakkan berkas-berkas di /usr/local maka Anda
 mungkin bisa melakukan 'mkdir /usr/local/`hostname`' dan memberikan
 group 'wheel' +w (Penulis juga membuatnya SUID dan SGID untuk menjamin
 bahwa masing-masing anggota dari group 'wheel' hanya bisa mengacak-
 acak berkas mereka sendiri di sana, dan bahwa semua berkas yang dibuat
 akan menjadi milik group 'wheel').

 Sekarang, biasakan diri Anda sendiri untuk *SELALU! SELALU! SELALU!*
 meletakkan paket-paket baru di bawah
 /usr/local/src/.from/$DARI_MANA_SAYA_DAPAT/ (untuk berkas .tar atau
 apa pun akhirannya) dan compile-lah di bawah /usr/local/src (atau
 .../$HOSTNAME/src). Yakinkan bahwa itu bisa di-install di bawah
 hirarki lokal. Jika paket tsb.  *benar-benar harus* di-install kembali
 ke /bin atau /usr/bin atau di tempat lainnya -- berikan symbolic link
 dari hirarki lokal ke masing-masing elemen di tempat lainnya.

 Alasan dari hal ini ialah -- walaupun berarti menambah pekerjaan --
 hal ini bisa membantu mengisolir apa yang harus di backup dan di-
 restore atau di-reinstall dalam rangka re-install secara penuh dari
 media distribusi (sekarang ini biasanya CD). Dengan menggunakan
 direktori /usr/local/.from Anda juga menyimpan sebuah log informal
 mengenai asal sumber -- yang akan membantu jika Anda mencari update --
 dan mungkin masalah ini menjadi kritis jika memonitor mailing list
 security announcement.

 Salah satu dari sistem di rumah penulis dipasang sebelum penulis
 membuat aturan-aturan ini untuk penulis sendiri.  Penulis masih belum
 tahu semua cara-cara yang berbeda untuk masing-masing sistem yang
 terpasang. Hal ini dikarenakan penulis sangat sedikit melakukan
 konfigurasi dengan sistem di rumahnya dan penulis satu-satunya orang
 yang menggunakannya.

 Sistem-sistem yang penulis pasang di tempat kerja (ketika penulis
 menjadi system administrator di sana) semua dipasang dengan cara ini
 -- dan sudah diadministrasi oleh beberapa kontraktor dan orang-orang
 MIS lain, dan telah mengalami sejumlah besar upgrade dan pemasangan
 paket-paket baru. Walaupun demikian, penulis masih tahu dengan tepat,
 elemen-elemen mana saja yang dipasang *setelah* pemasangan dan
 konfigurasi pertama kali.

 3.5.  Mengubah semua nama berkas di direktori menjadi huruf kecil.
 Justin Dossey, [email protected]

 Penulis memperhatikan adanya beberapa prosedur yang sulit dan tidak
 perlu dianjurkan di bagian 2c tips dari Edisi 12. Karena ada lebih
 dari satu, maka penulis mengirimkannya sbb:

 ______________________________________________________________________
 #!/bin/sh
          # lowerit
          # convert all file names in the current directory to lower case
          # only operates on plain files--does not change the name of directories
          # will ask for verification before overwriting an existing file
          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
 ______________________________________________________________________

 Wow, betapa panjangnya. Penulis tidak akan menggunakan script untuk
 melakukannya; sebaliknya, penulis akan menggunakan perintah:

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

 di command line.

 Orang yang menyumbangkan script tsb. berkata bahwa dia menulis script
 tsb.  supaya lebih mudah dimengerti (lihat di bawah).

 Di petunjuk berikut, mengenai penambahan dan pneghapusan user, Geoff
 melakukan hal yang benar hingga langkah terakhir. Reboot? Wow, penulis
 berharap dia tidak melakukan reboot setiap kali menghapus user. Yang
 harus Anda lakukan hanyalah dua langkah pertama saja. Lagipula, proses
 apa yang sedang berlangsung yang dimiliki oleh si user? IRC bot?
 Proses tersebut bisa dibunuh secara singkat dengan:

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

 Contoh, jika username adalah foo:

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

 Hal itu sudah teratasi, sekarang beralih ke root password yang terlu-
 pakan.

 Solusi yang diberikan di majalah Gazette adalah yang paling universal,
 tetapi bukan yang paling mudah. Dengan adanya LILO dan loadlin secara
 bersamaan, seseorang mungkin menge-boot dengan memberi parameter
 "single" untuk boot langsung ke shell default tanpa login ataupun
 tampilan password.  Dari sana, dia bisa menghilangkan atau mengubah
 password sebelum mengetikkan ``init 3`` untuk pindah ke mode multi-
 user.  Jumlah reboot: 1

 Dengan cara yang lain, jumlah reboot: 2

 Justin Dossey

 3.6.  Jim Dennis, [email protected] Beberapa petunjuk untuk sysadmin
 baru.

 Buatlah sebuah /README.`hostname` dan/atau sebuah
 /etc/README.`hostname`, yang kemudian dipelihara.  Atau mungkin
 /usr/local/etc/README.`hostname`

 Kemudian, sejak *hari pertama* mengadministrasi sebuah sistem catatlah
 di sebuah berkas log online. Anda bisa saja membuat baris 'vi
 /README.$(hostname)' di  /bash_logout milik root. Cara lain untuk
 melakukan ini ialah menulis sebuah script su atau sudo yang isinya
 kira-kira:

                      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 -

 (gunakan perintah typescript untuk membuat log dari sebuah sessiondan
 buat sebuah fungsi untuk mengotomatisasi penambahan dan update dari
 log).

 Penulis mengakui bahwa penulis belum mengimplementasikan otomatisasi
 dari aturan -- sejauh ini penulis hanya mengandalkan dari disiplin
 diri sendiri.  Bagaimanapun penulis telah bermain-main dengan ide tsb.
 (bahkan hingga membuat prototipe dari script dan fungsi-fungsi shell
 tsb. di atas). Satu hal yang membuat penulis urung ialah perintah
 'script' itu sendiri. Penulis berpendapat bahwa beliau harus
 mendapatkan sumber-sumbernya dan menambahkan beberapa command line
 parameters (untuk memberhentikan (stop/pause) script merekam dari
 command line) sebelum penulis berkomitmen untuk menggunakannya.

 Saran terakhir penulis (untuk bagian ini):

 PATH dari root seharusnya berisi 'PATH= /bin'

 Itu saja. Tidak ada lagi yang lainnya. Semua yang dilakukan oleh root:
 (1) disediakan melalui symbolic link dari  /bin atau dengan alias atau
 fungsi shell, atau (2) adalah script atau berkas biner di  /bin, atau
 (3) diketik secara langsung dengan menyertakan path secara eksplisit.

 Hal ini membuat seseorang yang bertindak sebagai root menyadari
 (terkadang menyakitkan) tentang bagaimana dia mempercayai berkas-
 berkas biner. Administrator yang bijak dari sebuah host multi-user
 akan mengecek secara berkala berkas-berkas  /bin dan  /.*history untuk
 mencari pola-pola dan lubang-lubang.

 Administrator yang benar-benar termotivasi akan menemukan daerah-
 daerah yang bisa diotomatisasi, tempat-tempat di mana pengecekan
 kesehatan sistem bisa dimasukkan, dan pekerjaan- pekerjaan dengan
 hak/akses 'root' seharusnya dihindarkan sementara (menjalankan
 penyunting (editor), MTA dan program- program interaktif besar yang
 lain yang memiliki kelebihan membuat script secara terperinci, yang
 *mungkin* diikutsertakan di berkas transparan atau berkas data --
 seperti ./.exrc dari vi dan ./.emacs dari emacs dan $EXINIT yang lebih
 membahayakan lagi dan header/footer macros yang diikutsertakan).
 Biasanya perintah-perintah seperti itu bisa dijalankan dengan:

                      cp $data $some_users_home/tmp
                      su -c $origcommand $whatever_switches
                      cp $some_users_home/tmp $data

 (...di mana spesifikasinya tergantung kepada masing-masing perintah).

 Kebanyakan bermacam cara pencegahan yang terakhir ini agak berlebihan
 untuk sistem di rumah atau single-user -- tapi ini adalah aturan yang
 sangat baik untuk sistem yang multi-user -- terutama sistem yang bisa
 diakses oleh publik (seperti di netcom).

 3.7.  Cara mengkonfigurasi chooser dari xdm untuk pilihan host. Arrigo
 Triulzi, [email protected]

 1. Suntinglah berkas yang menjalankan xdm (biasanya /etc/rc/rc.6 atau
    /etc/rc.local) sehingga berkas tsb. mengandung baris-baris berikut
    di bagian xdm startup.

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

 2. Suntinglah /usr/lib/X11/xdm/Xservers dan berikan tanda komentar
    pada baris-baris yang memulai server pada mesin lokal yaitu memulai
    0:

 3. Reboot, dan itu saja.

 Penulis menambahkan ini karena ketika penulis, sesudah putus asa,
 mencoba memasangnya untuk subnet penulis di sini, penulis sudah
 menghabiskan waktu seminggu untuk memcahkan semua persoalannya.

 Harap diingat: dengan SLS lama (1.1.1), untuk suatu alasan anda bisa
 membubuhkan -nodaemon setelah baris xdm -- hal ini TIDAK berlaku untuk
 rilis setelah itu.