Tulisan ini adalah bagian ke-3 dari serial integrasi Samba + FDS. Setelah sebelumnya berhasil men-join workstation ke domain, saya menemukan masalah lain, yaitu user tidak dapat mengubah password.

Pesan yang muncul saat terjadi kegagalan mengubah password adalah : “The user name or old password is incorrect. Letters in password must be typed using the correct case”. Karena saya yakin bahwa password lama yang saya masukkan sudah benar – termasuk huruf besar dan huruf kecilnya – maka saya berkesimpulan bahwa ini masalah di samba dan FDS.

Langkah-langkah pemecahan masalah :

  1. Seperti biasa, googling.
  2. Solusi pertama saya dapat dari http://readlist.com/lists/lists.samba.org/samba/2/12779.html. Disana saya memperoleh petunjuk adanya switch -A pada perintah smbldap-useradd / usermod yang memberikan hak pada user untuk mengubah password (jika di set=1).
  3. Setelah saya coba, ternyata saat mengubah password di windows tetap muncul pesan yang sama. Anehnya, saat saya login ulang menggunakan password lama, tidak berhasil. Sebaliknya, jika menggunakan password baru berhasil.
  4. Kemudian saya mencoba memeriksa password user di server dengan perintah : “su <namauser>, tidak sebagai root, ternyata yang berhasil adalah password lama.
  5. Saya sampai pada kesimpulan bahwa ketika gagal mengubah password di windows, yang terjadi adalah password user di ldap terganti tapi password unix tidak.
  6. Tadinya di smb.conf terdapat baris : ldap passwd sync = yes. Menurut keterangan, jika baris ini sudah ada, saya tidak perlu lagi menyertakan baris passwd program = …….
  7. Setelah mencoba kotak-katik, ternyata jika saya menambahkan “unix password sync = yes”, yang terjadi adalah muncul pesan error tidak dapat mengganti password, dan password memang tidak terganti. Tetapi jika saya menghilangkan semua line yang berhubungan dengan mengubah unix password, termasuk “passwd program” , maka password berhasil diubah, walaupun hanya password ldap.
  8. Ok, sejauh ini kesimpulannya adalah sebaiknya line berikut dihilangkan dari smb.conf :
  9. unix password sync
    ldap password sync
    password program

  10. Mungkin saya memiliki pemahaman yang salah, mungkin saja memang karena samba memanfaatkan LDAP untuk autentikasinya, jadi pada saat mengubah password yang berubah hanya password LDAP.

Tulisan ini sebetulnya sambungan dari tulisan lain yang berjudul Samba dan Fedora Directory Server. Setelah Samba dan FDS berhasil diintegrasikan, selanjutnya saya mencoba untuk menggabungkan sebuah client Windows XP ke domain.

  1. Menambahkan Domain User terlebih dahulu. Saya melakukannya dengan perintah smbldap-useradd -a -d /home/<namauser> -m -s /bin/bash <namauser>
  2. Menambahkan workstation ke dalam domain ini : smbldap-useradd -w <nama-workstation>
  3. Konfigurasi workstation sebagai bagian dari domain. Pada saat awal melakukan usaha penggabungan, saya memperoleh kegagalan. Kemudian saya menambahkan baris : interfaces = 10.10.10.200 127.0.0.1 , bind interfaces only = yes, hosts allow = 10.10.10. 127.0 . Selanjutnya, service samba di restart, tidak lupa juga menghidupkan service nmb.
  4. Proses konfigurasi client untuk join ke Samba berhasil, sayangnya pada saat restart dan hendak login, muncul pesan di windows bahwa domain tidak ditemukan. Aneh ya ???? padahal saat konfigurasi bisa masuk.
  5. Saya memeriksa isi file log, dalam kasus saya file tersebut adalah /var/log/<nama-ws>.log. Ternyata terdapat log yang bertuliskan : [2009/01/16 13:12:01,  0] lib/smbldap.c:smbldap_open(1005)
    smbldap_open: cannot access LDAP when not root..
  6. Saya mengambil kesimpulan bahwa pada saat konfigurasi, mesin dapat join ke domain karena saya memasukkan password root sebagai autorisasi agar mesin dapat masuk ke domain.
  7. Saatnya memulai googling.
  8. Ternyata banyak juga yang mengalami masalah serupa. Tapi kebanyakan menyatakan karena adanya bug di Samba 3.0.x, tapi yang saya gunakan sekarang adalah Samba 3.2.x. Jadi, logikanya bukan itu masalahnya.
  9. Ada solusi lain yang saya dapatkan di http://www.opensubscriber.com/message/samba@lists.samba.org/2245361.
  10. Menurut petunjuk ini, saya harus menambahkan baris enable pivileges = yes pada file smb.conf. Setelah saya lakukan, saya restart ulang samba, tetap nggak bisa.
  11. Ada petunjuk lain di http://www.nabble.com/smbldap_open:-cannot-access-LDAP-when-not-root..-td17491980.html. Yang bersangkutan memecahkan masalahnya dengan mengganti versi samba, tadinya ia menggunakan samba bawaan Fedora 9 (begitu juga saya), kemudian menggantinya dengan Samba 3.0.29 ( apakah ini ide bagus ? ) – mungkin sebaiknya saya mencari solusi lain terlebih dahulu
  12. Setelah googling sekian lama, masih belum ketemu juga. Akhirnya, “desperate move”, upgrade Samba ke 3.2.7.
  13. Oke, setelah itu saya merestart service smb dan nmb.
  14. Coba login dari workstation dan berhasil !!!!!!!!!!!!

Eksperimen ini bertujuan untuk mengintegrasikan Fedora Directory Server dengan Samba. Langkah pertama yang saya lakukan adalah gooling, cari petunjuk bagaimana mengintegrasikan Fedora Directory Server dengan Samba. Petunjuk pertama didapat dari http://directory.fedoraproject.org/wiki/Howto:Samba ada juga salinannya dalam bahasa Indonesia di salah satu blogsite yang saya temukan.

Setelah mengikuti langkah-langkahnya dari site tersebut, selalu berakhir dengan kegagalan, terutama saat mencoba perintah

pdbedit

, jika nanti ada yang berhasil, syukur deh.

Lelah mencari petunjuk dengan googling (nggak ketemu-ketemu solusinya), saya coba lihat bagian “discussion” (harusnya sih dari awal liat ini aja), ternyata ada yang posting bahwa “How-to” dari http://directory.fedoraproject.org/wiki/Howto:Samba ini agak ngawur dan emang nggak bekerja. Bah !!! Tapi orang yang mem-posting juga menyarankan untuk menggunakan smbldap-tools. Ok, eksperimen dimulai :

  1. Petunjuk pertama diperoleh dari http://wiki.babel.com.au/index.php?area=Linux_Projects&page=LdapSambaHowtoFedoraCore
  2. Pastikan file /etc/samba/smb.conf sudah teredit dengan benar. Dalam hal ini, paling tidak untuk mengintegrasikan samba dengan FDS, yang perlu diubah adalah nama workgroup (sesuaikan) dan ldap suffix. Berikut adalah contohnya:
  3. [global]
    workgroup = NEO-TEKIN
    security = user
    passdb backend = ldapsam:ldap://forest.neo-tekin.priv
    ldap admin dn = cn=Directory Manager
    ldap suffix = dc=neo-tekin,dc=priv
    ldap user suffix = ou=People
    ldap machine suffix = ou=Computers
    ldap group suffix = ou=Groups

  4. Buat password untuk directory manager dengan perintah “smbpasswd -w <password>”
  5. Test konfigurasi samba dengan perintah “testparm”, pastikan tidak ada error. (Maaf pembahasan mengenai konfigurasi samba tidak termasuk disini).
  6. Install smbldap-tools dengan perintah

    yum install smbldap-tools

  7. Berikutnya saya harus mencari file samba.schema. Jika kita menginstall samba, file ini sebetulnya include dalam salah satu direktori penginstallan samba, tapi saya lupa dimana (mungkin di /usr/share/doc/samba-*/LDAP/samba.schema)
    Kebetulan, di PC saya file ini juga terdapat di /etc/openldap/schema.
  8. Ubah file samba.schema ke bentuk ldif, dengan memanfaatkan tool ol-schema-migrate.pl. Tools ini dapat di download di sini. Gunakan perintah berikut ini :

    perl ol-schema-migrate.pl -b /etc/openldap/schema/samba.schema -*/LDAP/samba.schema > /etc/dirsrv/slapd-<server>/schema/61samba.ldif.

  9. Perintah di langkah 7 akan mengubah samba.schema ke bentuk ldif dan disimpan di “/etc/dirsrv/slapd-<nama server ldap>/schema/“, dengan nama 61samba.ldif. Angka 61 adalah tambahan yang diberikan karena ldap server mengelola schema berdasarkan urutan dari file-file schema, dimana urutan ini ditempatkan didepan nama file.
  10. Saatnya mengkonfigurasi smbldap-tools. Jalankan file configure.pl, secara default ada di :

    /usr/share/doc/smbldap-tools-<versi>/configure.pl

  11. Jawab pertanyaan-pertanyaan seperti sesuai spesifikasi yang kita miliki, banyak pertanyaan dapat dijawab secara default. Ada sedikit keraguan disini, karena setelah mengisi “default domain name to append to email address [] : neo-tekin.priv”, program selesai tapi muncul pesan :

    “Use of uninitialized value $# in concatenation (.) or string at /usr/share/doc/smbldap-tools-0.9.5/configure.pl line 314, <STDIN> line 34.”

    Semoga tidak menjadi masalah.

  12. Sesuai petunjuk, seharusnya dengan menggunakan configure.pl akan ada item tak berguna di ldap server, yaitu sebuah sambaDomainName bernama TestDomain. Cek dengan perintah :
    ldapsearch -x ’sambaDomainName=*’ , Beruntung, ternyata di ldap server entry TestDomain tidak muncul. Mungkin karena perbedaan versi dari smbldap-tools.
  13. Jalankan perintah berikutnya :

    /usr/sbin/smbldap-populate -e /root/smb-populate.ldif

  14. edit file /root/smb-populate.ldif, Tambahkan item-item berikut ke entry terakhir (hanya bila item tersebut belum ada) :
  15. objectClass: top
    sambaAlgorithmicRidBase: 1000
    sambaNextUserRid: 1000

  16. Ada beberapa error yang menyatakan adanya entry-entry yang sudah ada. Bukan masalah.
  17. Langkah berikutnya adalah me-restart samba service

Ok, sejauh ini sepertinya integrasi Samba dan FDS berjalan cukup lancar. Saatnya mencoba menambakan mesin/workstation ke samba :

smbldap-useradd -w “tekin-1″

Hasilnya ….. gagal ! , muncul pesan berikut :

Could not find base dn, to get next uidNumber at /usr/lib/perl5/vendor_perl/5.10.0/smbldap_tools.pm line 1179.

Waktunya googling…web http://www.iallanis.info/smbldap-tools/docs/smbldap-tools/#htoc38 menawarkan solusi dengan mengeksekusi script “smbldap-populate”. Ternyata setelah dijalankan ada pesan error lain lagi yang menyatakan tidak adanya privilege (wewenang), kemudian ditawarkan untuk mengubah password root.

Saat password root diganti, muncul pesan error yang lagi-lagi menyatakan tidak adanya wewenang mengubah password root.

Akhirnya saya putuskan untuk mengulang langkah 9-12 dan 14 (langkah 13 dilewat). Mengapa saya melewati langkah 13 ? Semata-mata karena langkah 13 ini dilakukan jika menggunakan smbldap-tools versi sebelumnya. Intuisi saya mengatakan, mungkin ada perbedaan versi dan bug pasti dihapus.

Setelah dicoba kembali , ternyata berhasil !!!!!!! Paling tidak sambadan ldap telah terintegrasi.

Masih penasaran nih pengen install MIT Kerberos 5 di Fedora 9. Kemaren ini dah sempet coba install di Slackware, lumayan lancar.Ok, dibawah ini hasil eksperimen pertama menginstall Kerberos 5 di Fedora, moga-moga berhasil :

Petunjuk pertama dapet dari http://cryptnet.net/fdp/admin/kerby-infra/en/kerby-infra.html.

  1. install paket krb5-server dan krb5-libs dengan menggunakan yum. (Ada peringatan dari sumber yang menyatakan bahwa sebaiknya KDC / Kerberos authentication server tidak memiliki paket-paket untuk development dan libraries, untuk alasan keamanan kali ya)
  2. Pastikan tidak ada port terbuka yang tidak digunakan, artinya pastikan tidak ada atau minimum celah keamanan.
  3. Tentukan nama Realm yang akan digunakan. Kalo g nangkep sih, nama Realm itu adalah nama kelompok / domain /group yang akan dilayani oleh KDC ini. Dalam satu organisasi bisa ada beberapa KDC, topologinya disesuaikan dengan topologi manajemen di perusahaan.
  4. File konfigurasi kerberos ada di /etc/krb5.conf :
  5. [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log

    [libdefaults]
    default_realm = NEO-TEKIN.PRIV
    dns_lookup_realm = false
    dns_lookup_kdc = false
    ticket_lifetime = 24h
    forwardable = yes

    [realms]
    NEo-TEKIN.PRIV = {
    kdc = forest.neo-tekin.priv:88
    admin_server = forest.neo-tekin.priv:749
    default_domain = neo-tekin.priv
    }

    [domain_realm]
    .neo-tekin.priv = NEO-TEKIN.PRIV
    neo-tekin.priv = NEO-TEKIN.PRIV

    [appdefaults]
    pam = {
    debug = false
    ticket_lifetime = 36000
    renew_lifetime = 36000
    forwardable = true
    krb4_convert = false
    }

  6. g punya kurang lebih kayak diatas. Nama Realm-nya adalah NEO-TEKIN.PRIV, tadinya tulisannya adalah EXAMPLE.COM, tapi g ganti. Terus KDC nya diarahin ke nama komputer tempat g install kerberos server (forest.neo-tekin.priv), dalam hal ini kudu Fully Qualified Domain Name-nya, yaitu yang terdaftar di DNS Server.
  7. Inisiasi dan pembuatan Kerberos database :
  8. /usr/kerberos/sbin/kdb5_util create -s

  9. Set master password untuk Kerberos Database. Masukkin password, jangan sampe lupa ! Soalnya kepake buat administrasi server.
  10. Edit access list file untuk memberikan akses administrasi. File acl ini biasanya adalah “/var/kerberos/krb5kdc/kadm5.acl”. Isinya setelah di-edit kurang lebih sebagai berikut :
  11. */admin@NEO-TEKIN.PRIV  *

  12. Isi file tersebut menunjukkan bahwa setiap user yang berada dalam kelompok /admin memiliki hak administratif.
  13. Edit isi file /var/kerberos/krb5kdc/kdc.conf. Pastikan Realm-nya sudah benar.
  14. Saatnya membuat user administrative. Dalam hal ini usernya adalah gunawan dalam kelompok admin.
  15. /usr/Kerberos/sbin/kadmin.local -q “addprinc gunawan/admin”

  16. Setservice krb5kdc dan kadmin  agar berjalan secara otomatis saat boot :
  17. chkconfig krb5kdc on
    chkconfig kadmin on

  18. Jalankan kedua service secara manual melalui /etc/rc.d/init.d/
  19. Test : kinit gunawan/admin, ternyata keluar prompt buat password. Kayaknya dah berhasil nih.

Akhirnya, setelah menimbang beberapa lama, tergoda juga buat install slackware. Orang bilang, kalau mau belajar linux pakailah slackware. Berhubung, saya menginstall slackware 12.0, kayaknya anggapan seperti itu sudah nggak relevan lagi. Tidak jauh berbeda dengan distro lainnya, Slackware menurut saya sudah cukup user friendly (asal mau kotak-katik sedikit).

Dukungan multimedia bukan prioritas saya dalam memilih sistem operasi, tapi namanya juga orang, butuh hiburan kan ? Saat mencoba menjalankan file .mp3 dari Amarok, ternyata…suara nihil. Dari hasil googling, saya peroleh 3 langkah mudah untuk “mengeleminasi” masalah ini :

  1. Sebagai root, jalankan perintah : alsaconf. Biarkan ALSA melakukan deteksi otomatis kartu suara yang terpasang di komputer. (Jika, tidak terdeteksi, jangan lanjutkan membaca tip ini !)
  2. Jalankan perintah alsamixer. Atur tingkat suara untuk setiap tipe output. Gunakan panah atas-bawah untuk mengatur tingkat suara, dan panah kanan-kiri untuk memilih tipe output yang akan diatur. Tekan ESC setelah selesai.
  3. Jalankan perintah alsactl store untuk menyimpan konfigurasi.

Setelah melakukan ketiga langkah tersebut, saya segera mencoba Amarok. Hasilnya, cukup memuaskan !

Sebelum menginstall netbeans 6, saya memastikan di sistem telah terdapat jdk-6. Oleh karena itu, terlebih dulu saya menginsall jdk-6, dengan mengikuti langkah-langkah berikut :

  1. Mendownload jdk-6 untuk Linux dari java.sun.com
  2. Menginstall jdk-6u3-linux-i586.bin di direktori /opt dengan perintah :

    sudo ./jdk-6*bin

    dan menjawab pertanyaan-pertanyaan standar yang diajukan. Hapus file *bin bila tidak diperlukan lagi. Pastikan bahwa direktori /jdk-1.6.0_03 ada di dalam direktori /opt setelah melakukan instalasi.

  3. Java telah terinstall pada sistem saya. Selanjutnya, saya perlu memberitahu sistem mengenai letaknya, yaitu dengan membuat file java.sh di direktori /etc/profile.d.

    cd /etc/profile.d

    sudo nano java.sh

    Berikut adalah isi dari file java.sh :

    export J2RE_HOME=/opt/jdk1.6.0_03
    export PATH=$J2RE_HOME/bin:$PATH

    Ubah mode file java.sh agar dapat dieksekusi dengan mengetikkan perintah :

    chmod +x java.sh

    Lanjutkan dengan mengeksekusi file ini :

    sudo ./java.sh

    Kemudian hilangkan kembali mode eksekusi file java.sh :

    chmod -x java.sh

    Test hasil instalasi dengan mengetikkan perintah :

    java -version

    Jika instalasi benar, pesan yang muncul kurang lebih seperti berikut :

    java version “1.6.0_03″
    Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
    Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)

  4. selanjutnya, saya mendownload program netbeans-6.0.1-ml-javaee-linux.sh dari http://java.sun.com dan menyimpannya di direktori /home/sistemku/Download
  5. Menurut petunjuk umum, seharusnya untuk menginstall program ini cukup mengetikkan perintah :

    sudo /home/sistemku/Download/netbeans*

    Ternyata saya malah menemukan pesan error seperti berikut :

    Configuring the installer…
    Searching for JVM on the system…Extracting installation data…
    Running the installer wizard…
    java: xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock’ failed../netbeans-6.0.1-ml-javaee-linux.sh: line 1360: 4946 Aborted /opt/jdk1.6.0_03/bin/java -Xmx256m -Xms64m -Djava.io.tmpdir=/tmp -classpath /tmp/.nbi-6011521.tmp/bundle.jar org.netbeans.installer.Installer

  6. Jawaban untuk mengatasi masalah ini, saya temukan di http://www.fedoraforum.org/forum/showthread.php?t=171763&page=1 Tentunya dengan sedikit penyesuaian.
  7. Berikut adalah deretan perintah yang saya gunakan untuk memperbaiki dan mengatasi masalah instalasi :

    sed -i ’s/XINERAMA/FAKEEXTN/g’ /opt/jdk1.6.0_03/jre/lib/i386/xawt/libmawt.so sudo /home/sistemku/Download/netbeans*

  8. Lanjutkan dengan menjawab pertanyaan-pertanyaan yang diajukan sesuai dengan kebutuhan.

Kemarin malam saya baru saja menginstall linux di PC rumah. Awalnya pilihan jatuh ke Ubuntu. Setelah beberapa kali percobaan, saya selalu gagal menginstall distro ini di PC saya. Akhirnya, saya sampai pada kesimpulan bahwa, PC saya dirumah tidak dapat menerima Ubuntu karena VGA card saya yang NVidia, terbukti setiap berusaha menginstall, ditengah jalan koneksi VGA card ke monitor selalu ‘menghilang’.

Setelah sekian kali percobaan gagal, akhirnya saya memutuskan untuk menggunakan distro Fedora Core 8. Instalasi berjalan mulus. Berhubung saya memiliki koneksi internet dengan provider Telkomspeedy, langkah selanjutnya setelah instalasi adalah men-setup koneksi ke speedy yang menggunakan modem ADSL.

Jika di Ubuntu ada ‘pppoeconf’, padanannya di Fedora Core adalah pppoe-setup. Hanya saja pada distro hasil instalasi saya, letak pppoe-setup tidak dalam default PATH, file ini terletak di direktori /sbin. Jadi untuk mulai mengkonfigurasi, saya ketikkan :

/sbin/pppoe-setup

Perintah ini saya jalankan sebagai administrator. Selanjutnya, saya tinggal menjawab pertanyaan-pertanyaan seperti :

  • Perangkat (device) yang digunakan. Diisi dengan eth0, yaitu perangkat dimana modem ADSL terhubung ke PC.
  • Login name. Diisi dengan username untuk speedy (xxxxxxx@telkom.net)
  • Primary DNS. Diisi dengan primary DNS yang diperoleh dari provider (202.134.xxx.xxx)
  • Secondary DNS. Diisi dengan secondary DNS dari provider (202.134.xxx.xxx)
  • Password. Diisi dengan password untuk koneksi speedy.

Selanjutnya, program ini akan membuat file konfigurasi secara otomatis. Perhatikan dan ingat baik-baik file konfigurasi ini.

Setelah proses setup selesai, koneksi dapat dilakukan dengan perintah :

/sbin/ifup ppp0

dan untuk memutuskan koneksi, gunakan perintah :

/sbin/ifdown ppp0

Sampai tahap ini, saya telah berhasil melakukan koneksi internet menggunakan Fedora Core 8 dan modem ADSL.

Kutipan berikut merupakan cara-cara yang dapat digunakan untuk meningkatkan performasi Ubuntu. Maaf, saya tidak sempat menterjemahkannya. Artikel ini saya peroleh dari http://ubuntulinux.or.id/forum/viewtopic.php?t=908 :

lets start first with the kernel:apt-get install build-essential libncurses-dev kernel-package
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2

This will download the latest sources available, in my case linux-2.6.20.tar.bz2

cd /usr/src
tar -xjf linux-2.6.20.tar.bz2
cd linux-2.6.20

Now lets apply the Con Kolivas patches, these are patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload.

wget www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.20/2.6.20-ck1/patch-2.6.20-ck1.bz2
bzcat patch-2.6.20-ck1.bz2 |patch -p1

Copy the current kernel config and configuring the kernel

cp /boot/config-`uname -r` .config
make menuconfig

In “General Setup” activate:
- Support for paging of anonymous memory (swap)
- Support for prefetching swapped memory

In “Processor type and features“:
- processor family Choose the model of your processor.
- set Preemption Model to Voluntary Kernel Preemption (Desktop)
- High Memory Support
- off – if you have less than 1 GB of RAM
- 1GB Low Memory Support – if you have 1GB of RAM
- 4GB – if you have more than 1GB of RAM
- set Timer frequency to 1000 Hz

In “Kernel hacking” uncheck “Kernel debugging“.

Now exit and save the configuration.

Making the new kernel package:
make-kpkg -initrd –revision=LinuxMonitor1 kernel_image kernel_headers modules_image

Installing the new kernel
cd ..
dpkg -i *.deb

HDParm

sudo gedit /etc/hdparm.conf

at the bottom add:

/dev/hda {
dma = on
io32_support = 1
}

/dev/cdroms/cdrom0 {
dma = on
interrupt_unmask = on
io32_support = 0
}

Concurrent Booting

Concurrent booting allows Ubuntu to take advantage of dual-core processors, as well as processors that hyperthread or multithread
or what ever the different companies call it now.

sudo gedit /etc/init.d/rc

Look through the file and you will find CONCURRENCY=none.
You must change it to: CONCURRENCY=shell

Prelink

Disclaimer: Prelinking might break your system! Only consider for use if you can risk the chance that your install might mess up. Most of all make sure that it gets to run the whole thing through the first time you prelink. Stopping in the middle can lead to system failure. Prelinking is a powerful device and needs to be used with care.

Prelink is no longer necessary in Feisty. Feisty uses a new linking mechanism called DT_GNU_HASH which dramatically speeds up the linking process without the need for continuously running this prelink program. Again, prelink is NOT useful starting from Feisty

How to enable prelink

1. Activate Ubuntu universe sources
2. Put this command into terminal to install Prelink:

sudo apt-get install prelink

3. Now put this command into the terminal:

sudo gedit /etc/default/prelink

4. Change where it says “PRELINKING=unknown” from unknown to “yes”
5. Adjust the other options if you know what the heck you’re doing. If it looks foreign to you, the defaults work well.
6. To start the first prelink (the longest one!), put this in terminal:

sudo /etc/cron.daily/prelink

Automatic Prelinking After Program Are Installed

One problem with prelinking in that when you install new programs those programs are not prelinked. So to avoid this problem when installing programs with apt-get or synaptic, use the directions below.

1. Put this in terminal:

sudo gedit /etc/apt/apt.conf

2. When the file opens in Gedit, put this line at the end of the file and save (even if the file has no content before you add the line):

DPkg::Post-Invoke {”echo Running prelink, please wait…;/etc/cron.daily/prelink”;}

General Notes About Prelinking

In the future, prelink performs a quick prelink (a less-than-1-minute procedure on most systems) daily, usually at midnight. Every 14 days, or whatever you changed it to be, a full prelink will run.

If you just did a major apt-get upgrade that changed systemwide libraries (i.e. libc6, glibc, major gnome/X libs, etc etc etc) and experience cryptic errors about libs, rerun step 6.

To undo prelink, change step 4 from yes to no, then rerun step 6.

Prelinking will make the binaries it prelinks change, so it’s not appropriate if you have tripwire or another checksum-based IDS system, or if you do incremental or differential backups to save on space.

To enable/disable services go to System -> Administration -> Services

1. acpi-support – leave it on.
2. acpid – The acpi daemon. These two are for power management, quite important for laptop and desktop computers, so leave them on.
3. alsa – If you use alsa sound subsystem, yes leave it on. But if you have the service below, its safe to be off. The default is off when alsa-utils is on.
4. alsa-utils – On my system, this service supercedes the alsa, so I turn off the alsa and turn this on at S level.
5. anacron – A cron subsystem that executes any cron jobs not being executed when the time is on. Most likely you’ve probably turned your computer off when a certain cron job time is ready. For example, updatedb is scheduled at 2am everyday, but at that moment, you computer is off, then if anacron service is on, it will try to catch up that updatedb cron.
6. apmd – If you computer is not that old which can’t even support acpi, then you may try to turn this off.
7. atd – like cron, a job scheduler. I turned it off.
8. binfmt-support – Kernel supports other format of binary files. I left it on.
9. bluez-utiles – I turned it off. I don’t have any bluetooth devices.
10. bootlogd – Leave it on.
11. cron – Leave it on.
12. cupsys – subsystem to manager your printer. I don’t have one so I turned it off, but if you do, just leave it on.
13. dbus – Message bus system. Very important, leave it on.
14. dns-clean – Mainly for cleaning up the dns info when using dial-up connection. I don’t use dial up, so I turn it off.
15. evms – Enterprise Volumn Management system. I turned it off.
16. fetchmail – A mail receving daemon. I turned it off.
17. gdm – The gnome desktop manager. I turned it off anyway since I get use to boot to console first. This is up to you if you want to boot directly to GUI.
18. gdomap – You can turn it off.
19. gpm – Mouse support for console. If you feel you’d better have a mouse on console, go turn it on.
20. halt – Don’t change it.
21. hdparm – tuning harddisk script, should be on.
22. hibernate – If your system support hibernate, leave it on. Otherwise, its useless for you.
23. hotkey-setup – This daemon setup some hotkey mappings for Laptop. Manufacturers supported are: HP, Acer, ASUS, Sony, Dell, and IBM. If you have a laptop in those brands, you can leave it on, otherwise, this might not have any benefits for you.
24. hotplug and hotplug-net – activating hotplug subsystems takes time. I’d consider to turn them off.
25. hplip – HP printing and Image subsystem. I turned it off.
26. ifrename – network interface rename script. Sounds pretty neat but I turned it off. Mainly for managing multiple network interfaces names. Since I have a wireless card and an ethernet card, they all assigned eth0 and ath0 from kernel, so its not really useful for me.
27. ifupdown and ifupdown-clean – Leave it on. They are network interfaces activation scripts for the boot time.
28. inetd or inetd.real – take a look your /etc/inetd.conf file and comment out any services that you don’t need.
29. klogd – Leave it on.
30. laptop-mode – A service to tweak the battery utilization when using laptops. You can leave it on.
31. linux-restricted-modules-common – You need to see if you really have any restricted modules loaded on your system. I’d leave it on.
32. lvm – I don’t use it so I turned it off. Leave it on if you *DO* have lvm.
33. makedev – Leave it on.
34. mdamd – Raid management tool. I don’t use it so I turned it off.
35. mdamd-raid – Raid tool. If you don’t have Raid devices, turn it off.
36. module-init-tools – Load extra modules from /etc/modules file. You can investigate your /etc/modules file and see if there is any modules that you don’t need. Normally, this is turned on.
37. mountvirtfs – mount virtual filesystems. Leave it on.
38. networking – bring up network interfaces and config dns info during boot time by scaning /etc/network/interfaces file. Leave it on.
39. ntpdate – Sync time with the ubuntu time server. Leave it on if you want.
40. nvidia-kernel – I compiled the nvidia driver by myself, so its useless for me now. If you use the ubuntu nvidia driver from the restrict modules, just leave it on. 41. pcmcia – pcmcia device – useless if you are using desktop which doesn’t have pcmcia card. So in that case, turn it off please.
42. portmap – daemon for managing services like nis, nfs, etc. If your laptop or desktop is a pure client, then turn it off.
43. powernowd – client to manage cpufreq. Mainly for laptops that support CPU speed stepping technology. Normally, you should leave it on if you are configuring a laptop, but for desktop, it might be useless.
44. ppp and ppp-dns – Useless to me. I don’t have dial-up.
45. readahead – It seems readahead is a kind of “preloader”. It loads at startup some libs on memory, so that some programs will start faster. But it increases startup time for about 3-4 seconds. So, you can keep it… or not. I tested and I just didn’t feel difference loading programs. So I decided to turn it off. If you have a reason to keep it on, please do so.
46. reboot – Don’t change it.
47. resolvconf – Automatically configuring DNS info according to your network status. I left it on.
48. rmnologin – Remove nologin if it finds it. It wouldn’t happen on my laptop, so I got rid of it.
49. rsync – rsync daemon. I don’t use it on my laptop, so turned it off.
50. sendsigs – send signals during reboot or shutdown. Leave it as it is.
51. single – Active single user mode. Leave it as it is.
52. ssh – ssh daemon. I need this so I turned it on.
53. stop-bootlogd – stop bootlogd from 2,3,4,5 runlevel. Leave it as it is.
54. sudo – check sudo stauts. I don’t see any good to run it everytime on a laptop or desktop client, so I turned it off.
55. sysklogd – Leave it as it is.
56. udev and udev-mab – Userspace dev filesystem. Good stuff, I left them on.
57. umountfs – Leave it as it is.
58. urandom – Random number generator. Might not useful but I left it on.
59. usplash – Well, if you really want to see the nice boot up screen, leave it as it is.
60. vbesave – video card BIOS configuration tool. Its able to save your video card status. I left it on.
61. xorg-common – setup X server ICE socket. Leave it as it is.
62. adjtimex – This is a kernel hw clock time adjusting too. Normally, you shouldn’t see this on your boot up list. In very rare case if you do see its on your boot up process, then there might be a reason why it is on, so better leave it that way. In my case, it is off.
63. dirmngr – A certification lists management tool. Work with gnupg. You will have to see if you need it or not. In my case, I turned it off.
64. hwtools – A tool to optimize irqs. Not sure what’s the benefits of turning it on. In my case, I turned it off.
65. libpam-devperm – A daemon to fix device files permissions after a system crash. Sounds pretty good, so I left it on.
66. lm-sensors – If you matherboard has builtin some sensor chips, it might be helpful to see hw status via userspace. I ran it and it said “No sensors found”, so I turned it off.
67. screen-cleanup – A script to cleanup the boot up screen. Well, turn on or off is up to you. In my case, I left it on.
68. xinetd – A inetd super daemon to manage other damons. In my system, the xinetd is managing chargen, daytime, echo and time (find them from /etc/xinetd.d dir), I care none of them, so I turned it off. If you do have some important services configured under xinetd, then leave it on.

The end! Special thanks to i3dmaster, xXx 0wn3d xXx, poofyhairguy and the rest of the ubuntuforums.org people

Selamat mencoba !

Kawan saya, seorang dosen, mengajar matakuliah pemrograman basis data. Adapun basis data yang digunakan adalah MySQL. Saat ini, MySQL ter-install pada server yang merupakan wewenang saya. Sebagai gambaran, server ini tidak didedikasikan khusus untuk MySQL saja, tetapi juga file server praktikum dan lain sebagainya.

Sebagai dosen matakuliah ini, saya rasa sudah sepantasnya ia memiliki akses untuk paling tidak menyalakan dan mematikan server. Kebutuhkan ini terutama dirasakan saat mengadakan quiz atau ujian praktek. Untungnya, Ubuntu memiliki sudo, tools yang dapat digunakan untuk berbagi dan membatasi wewenang.

Bagi para pengguna Ubuntu, khususnya mereka yang sering bekerja dengan terminal tentunya mengenal sudo. Perintah ini seringkali digunakan untuk mengeksekusi perintah lain yang membutuhkan otentifikasi sebagai administrator atau user lain.

Wewenang untuk melakukan sudo terletak pada file /etc/sudoers. Tentunya untuk mengedit file ini sebelumnya kita juga harus memiliki wewenang melakukan sudo sebagai administrator. Selanjutnya saya akan membahas sedikit mengenai /etc/sudoers yang saya edit untuk membagi wewenang pada kawan saya.

Pertama-tama saya perlu menambahkan user agar kawan saya dapat melakukan login ke server.Username dan groupname yang saya berikan adalah badat.

Selanjutnya, sayang membuka file /etc/sudoers dengan perintah

sudo nano /etc/sudoers

Berikut adalah isi dari file tersebut :

# /etc/sudoers
#
# This file MUST be edited with the ‘visudo’ command as root.
#
# See the man page for details on how to write a sudoers file.
# Host alias specification

# User alias specification
User_Alias DOSEN = badat
# Host alias specification
Host_Alias INTERNAL = 10.10.10.0/255.255.255.0
# Cmnd alias specification
Cmnd_Alias MYSQL = /etc/init.d/mysql, /usr/bin/mysql*
Cmnd_Alias SAMBA = /etc/init.d/samba, /usr/sbin/smbd, /usr/sbin/nmbd

# Defaults

Defaults !lecture,tty_tickets,!fqdn

# User privilege specification
root ALL=(ALL) ALL
badat INTERNAL=NOPASSWD: MYSQL,SAMBA

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Perhatikan, tulisan yang berwarna merah adalah bagian yang saya tambahkan pada file tersebut, sedangkan yang berwarna hitam adalah default.

Bagian User alias spesification digunakan untuk membuat alias untuk satu atau beberapa user. Contoh saya menunjukkan bahwa user badat memiliki alias, yaitu DOSEN. Artinya, selanjutnya pada file ini, kata DOSEN akan mengacu pada user badat. Satu nama alias dapat menampung beberapa user, sehingga nama alias ini seolah-olah berperan sebagai nama group.

User_Alias DOSEN = badat

Berikutnya adalah bagian host alias spesification. Pada bagian ini, kita dapat menspesifikasikan dari host/komputer mana seseorang yang memiliki remote akses dapat melakukan sudo. Saya memberikan kawan saya akses untuk melakukan sudo dari semua komputer yang terdapat dalam internal network, yaitu komputer dengan IP 10.10.10.* dan netmask 255.255.255.0. Jaringan internal ini saya beri nama alias INTERNAL.

Host_Alias INTERNAL = 10.10.10.0/255.255.255.0

Cmnd alias spesification adalah bagian dimana kita mendefinisikan file-file mana saja yang dapat dieksekusi saat seorang user menggunakan sudo. Kepada file-file tersebut, kita juga memberikan nama alias. Sebagai contoh, karena ingin memberikan akses untuk men-start dan men-shutdown mysql, maka saya membuat baris berikut :

Cmnd_Alias MYSQL = /etc/init.d/mysql, /usr/bin/mysql*

Artinya, kawan saya dapat menjalankan file /etc/init.d/mysql dan file-file executable lain pada folder /usr/bin yang berawalan mysql, misalnya : mysqldump.

User privilege spesification adalah bagian yang terpenting menurut saya. Di bagian ini, kita akan menggunakan semua spesifikasi yang telah kita tuliskan sebelumnya.

root ALL=(ALL) ALL

Kutipan di atas dapat diterjemahkan sebagai “user root dapat melakukan sudo di host manapun (kata ALL pertama), dan berperan sebagai user siapapun (kata ALL kedua, dalam kurung) untuk menjalankan perintah apapun (kata ALL ketiga). Contoh lain adalah sebagai berikut :

badat INTERNAL=NOPASSWD: MYSQL,SAMBA

Berarti user badat dapat melakukan sudo di semua host dalam network internal (INTERNAL, 10.10.10.*/255.255.255.0), secara default berperan sebagai root (karena tidak didefinisikan setelah tanda =), tanpa memerlukan password (NOPASSWD), dan hanya dapat menjalankan perintah yang terdaftar pada alias MYSQL dan SAMBA.

Sekian sharing pengalaman saya dalam menggunakan sudo. Untuk lebih jelas dan lengkap mengenai sudo, silakan manfaatkan fasilitas man.

man sudoers

Sejak awal menggunakan Ubuntu, saat itu Ubuntu 6.06, saya mulai mengenal dan mengerti konsep repository secara praktis. Repository saya umpamakan sebagai gudang penyimpanan. Apa yang disimpan ? Tentu saja berbagai software yang dapat digunakan dalam Ubuntu, termasuk update-annya. Dimanakah letak repository ini ? Tentu saja pada suatu server yang saya pun tidak tahu persis dimana letaknya, bisa di dalam atau di luar negeri.

Daftar repository yang dapat digunakan oleh Ubuntu kita terletak pada file /etc/apt/sources.list. Berikut ini adalah contoh isi file tersebut :

#
# deb cdrom:[Edubuntu 7.04 _Feisty Fawn_ - Release i386 Binary-1 (20070415)]/ feisty main restricted

deb cdrom:[Edubuntu 7.04 _Feisty Fawn_ - Release i386 Binary-2 (20070415)]/ feisty main restricted
deb cdrom:[Edubuntu 7.04 _Feisty Fawn_ - Release i386 Binary-1 (20070415)]/ feisty main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.

deb http://us.archive.ubuntu.com/ubuntu/ feisty main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ feisty main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ feisty-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ feisty-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://us.archive.ubuntu.com/ubuntu/ feisty universe
deb-src http://us.archive.ubuntu.com/ubuntu/ feisty universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ feisty multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ feisty multiverse

## Uncomment the following two lines to add software from the ‘backports’
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://us.archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu feisty-security main restricted
deb-src http://security.ubuntu.com/ubuntu feisty-security main restricted
deb http://security.ubuntu.com/ubuntu feisty-security universe
deb-src http://security.ubuntu.com/ubuntu feisty-security universe
deb http://security.ubuntu.com/ubuntu feisty-security multiverse
deb-src http://security.ubuntu.com/ubuntu feisty-security multiverse

Bagian-bagian yang diawali oleh tanda ‘#’ adalah komentar yang memberikan keterangan mengenai repository yang bersangkutan, yang terletak dibawahnya.

Pada masing-masing repository, terdapat suatu daftar software yang dimiliki. Jadi file /etc/apt/sources.list hanya memuat lokasi saja, tidak memberitahukan software yang tersimpan di dalamnya. Agar Ubuntu yang kita miliki dapat mengetahui daftar software pada suatu repository, gunakan perintah berikut :

sudo apt-get update

Bila koneksi internet yang dimiliki cepat, proses update daftar software ini mungkin tidak terasa. Sebaliknya, jika koneksi internet lambat, proses ini cukup menjengkelkan. Perlu diingat, sampai tahap ini, kita baru meng-update daftar software belum men-download software-nya sendiri, yang notabene jauh lebih besar ukurannya.

Mengapa proses ini bisa berlangsung lama ? Salah satu faktornya adalah letak repository server. Ingat ! Ini hanya salah satu faktor. Untuk mengatasi hal ini, kita bisa mengganti daftar repository dengan repository yang terdapat di server ‘lokal’. Server lokal yang biasa saya gunakan adalah kambing.vlsm.org. Sekarang lihat isi file /etc/apt/sources.list milik saya :

## REPOSITORY UTAMA
deb http://kambing.ui.edu/ubuntu feisty main restricted universe multiverse
deb-src http://kambing.ui.edu/ubuntu feisty main restricted universe multiverse

## MAJOR BUG FIX UPDATES
deb http://kambing.ui.edu/ubuntu feisty-updates main restricted universe multiverse
deb-src http://kambing.ui.edu/ubuntu feisty-updates main restricted universe multiverse

##SECURITY UPDATES
deb http://kambing.ui.edu/ubuntu feisty-security main restricted universe multiverse
deb-src http://kambing.ui.edu/ubuntu feisty-security main restricted universe multiverse

Selanjutnya, kita tinggal meng-update ulang daftar software. Sekian pembahasan mengenai repository dan local repository di Ubuntu. Mengenai download software nya sendiri, kita dapat memanfaatkan synaptic package manager.

Next Page »