Tahun Baru Speed Baru

Tahun 2014 ini kabarnya semua pelanggan Fastnet mendapat tambahan kecepatan akses Internet. Rata-rata diberi tambahan 2x lipat dari kecepatan sebelumnya. Tentu ini diikuti juga dengan kenaikan harga. Kemarin saya kontak customer service-nya Fastnet dan menurut mereka tagihan akan naik Rp60000,-.

Speedtest Result 20140106 photo Speedtest_net_20140106_zps9fd345d8.png

Bersyukur sekali bisa menikmati layanan internet 15 Mbps ini. Dengan tambahan kecepatan sampai 2x lipat ini rasanya cukup masuk akal penambahan tarif sebesar itu. Cuma saya cukup menyayangkan kurang ada informasi yang jelas tentang kenaikan harga & kecepatan ini.

Buku Baru “Outliers”

Bulan Desember kemarin, bos saya di Singapura bagi-bagi buku Outliers karangan Malcolm Gladwell. Sebut saya udik tadi buku edisi bahasa Inggris ini menarik dipegang, ringan seperti halnya buku-buku cetakan luar. Saya masih belum selesai membaca buku ini. Sekilas buku ini akan mengupas apa sih rahasia orang-orang sukses. Yang menarik Malcom Gladwell tidak mengikuti pemikiran umum yang mengatakan “kerja keras” adalah kunci kesuksesan. Ada faktor lain yang membuat orang bisa sukses. Saya baru sampai pada 2 poin pertama, orang-orang yang sukses lahir pada waktu/tahun yang tepat & secara ajaib mendapat banyak kesempatan yang memuluskan jalan karir/bisnisnya sampai meraih kesuksesan.

Photobucket Pictures, Images and Photos

Meskipun tidak mau ikut pemikiran kebanyakan orang bahwa sukses adalah hasil kerja keras, Malcolm Gladwell mendukung pada teori 10000 jam. Bahwa seseorang akan ahli pada suatu bidang bila telah menghabiskan waktu 10000 jam untuk mempelajari, mempraktekkan bidang tersebut. Banyak contoh orang sukses di dunia seperti Bill Gates,Bill Joy, grup band Beatles, menjadi “master” pada bidang keahliannya setelah bergelut pada bidangnya lebih dari 10000 jam.

Sepertinya saya bisa menebak kesimpulan akhir dari buku ini, bahwa tidak ada resep rahasia untuk meraih sukses. Kenapa saya bisa menebak seperti itu, sederhana karena ada pesan dari bos saya ditulis tangan di balik halaman cover seperti ini :

Photobucket Pictures, Images and Photos

Meskipun ini bukan buku fiksi, tapi saya lihat cara penulisannya yang setengah bercerita membuat buku ini menarik utuk dihabiskan. Bagus juga untuk sarana saya berlatih membaca buku dalam bahasa Inggris.

Ubuntu Untuk Akses Windows Yang Bermasalah

Salah seorang rekan saya bekerja sebagai freelancer IT Support. Meskipun memiliki toko komputer sendiri di Mangga Dua, tapi dia menikmati aktivitasnya sebagai IT Support “door to door”. Mengunjungi satu kantor ke kantor lainnya, dari satu client ke client lainnya memberikan layanan perbaikan PC. Salah satu pekerjaan yang dia lakukan berulang kali adalah instal ulang Windows di komputer kliennya yang bermasalah. Entah masalah terkena virus, sampai Windows yang corrupt dan tidak bisa boot lagi.

Saya lupa tepatnya (tapi rasanya sudah lebih dari 1 tahun yang lalu), saya mengenalkan rekan saya pada Ubuntu Linux. Waktu itu saya sekadar cerita pada dia bahwa Ubuntu Linux bisa dipakai langsung dari CD (atau dari USB) tanpa perlu menginstalnya permanen ke dalam harddisk. Saya ceritakan juga bahwa live OS seperti itu bisa dimanfaatkan untuk mengakses data-data dalam harddisk yang sistem operasinya bermasalah.

 photo ubuntu-live-os_zpsbca5b39b.png

Rupanya dia cukup tertarik, jadi waktu itu saya pasangkan Ubuntu ke dalam USB flash disk-nya. Saya ajarkan caranya untuk booting dari USB dan mencoba live OS. Sempat saya demokan juga waktu itu apa dan bagaimana Ubuntu saat dijalankan sebagai live OS. Simpel, praktis, tanpa perlu repot menginstal ke dalam harddisk. Repot & membuang banyak waktu.

Beberapa minggu kemarin saat rekan saya itu datang berkunjung, dia bercerita bahwa Ubuntu dalam USBnya benar-benar membantu rutinitas kerjanya sehari-hari. Tiap kali ada PC milik kliennya yang bermasalah & perlu diinstal ulang Windowsnya, rekan saya akan menggunakan Ubuntu OS untuk melakukan backup data. Jadi dia akan boot komputer kliennya dari USB Ubuntu tadi. Lalu setelah masuk dalam Ubuntu, Ubuntu akan langsung mengenali harddisk yang terpasang dalam PC. Tidak hanya itu, dengan beberapa klik saja Ubuntu otomatis menyiapkan partisi Windows untuk bisa dilihat & diakses data-datanya. Baru kemudian rekan saya akan meng-copy semua data dari partisi data Windowsnya ke dalam external harddisk. Baru kemudian dia bisa menghapus semua partisi yang ada & menginstal bersih Windows ke dalam PC tersebut. Setelah Windows selesai terinstal dia baru kembalikan lagi data yang sudah diamankan sebelumnya ke external harddisk.

Dulu katanya sebelum kenal dengan Ubuntu OS, tiap kali menjumpai kasus serupa dia “terpaksa” membawa pulang harddisk milik kliennya. Di rumah dia pasang harddisk tersebut ke dalam PC Windowsnya sendiri. Hal itu dilakukan sekadar untuk bisa mengakses data yang masih tersimpan dalam harddisk milik clientnya itu.

Saya cukup surprise mendengar cerita bahwa cara booting dari Ubuntu USB tadi sudah dilakukannya puluhan kali. Yang membuat saya surprise adalah rekan saya tadi itu 100% buta Linux. Tapi faktanya dia bisa menggunakan Ubuntu Linux & malah aktif menggunakannya sehari-hari untuk mendukung pekerjaannya. Ada kepuasan tersendiri bagi saya berhasil mengenalkan Linux pada seseorang yang tidak pernah tahu apa itu Linux sebelumnya. Tentu rekan saya tidak berkutat pada perintah-perintah di terminal (CLI commands).

Ubuntu Live CD Mengakses Harddisk Windows photo ubuntu-live-os-2_zps2323dc40.png

Baginya menggunakan Nautilus Ubuntu sudah sangat cukup. Bagi yang belum tahu, Nautilus itu adalah semacam Windows Explorer tempat anda mengakses data pada partisi C:\ atau D:\, atau tempat Anda membuka My Documents.

Begitu kira-kira sharing pengalaman rekan saya yang sukses memanfaatkan Linux untuk menunjang pekerjannya sehari-hari. Apakah Anda sudah pernah berkenalan dengan Ubuntu Linux?

Pengalaman Dengan Derek Jasa Marga

Tadi saya melihat twit dari akun @TMCPoldaMetro tentang derek gratis Jasa Marga. Kira-kira seperti ini tangkapan layarnya :

Twit tadi mengingatkan saya pada pengalaman bulan Agustus lalu. Mobil saya mogok di tol Cipularang. Mogok karena overheat kira-kira 17 KM lagi sebelum gerbang tol Padalarang. Saya pinggirkan mobil dulu, menelpon rekan minta saran, sambil mendinginkan mesin mobil & radiatornya. Kira-kira setengah jam kemudian saya coba nyalakan mesin mobil dan mencoba melaju kembali. Hanya bisa berjalan sekitar 200 meteran sebelum jarum penunjuk temperatur naik lagi. Cepat-cepat saya berhenti & mematikan mesin mobil. Setelah beberapa saat, saya coba lagi starter mobil & ternyata mesinnya tidak bisa dinyalakan. Panik saya karena terpikir silinder mesin mungkin sudah memuai kepanasan & pasti akan turun mesin.

Saya coba hubungi rekan saya lainnya yang punya bengkel di Bandung, dia berniat menjemput saya untuk kemudian menderek mobil saya dengan mobilnya. Masih sambil menelpon, mobil patroli jalan tol datang menghampiri saya. Si Bapak menawarkan apakah ingin dipanggilkan derek resmi Jasa Marga. Rekan saya menyarankan untuk terima saja tawaran tadi. Agak repot juga andaikan rekan saya pergi menjemput saya, karena berarti dia harus masuk tol Cipularang dan keluar di pintu tol Jatiluhur untuk balik lagi ke arah Bandung menjemput saya. Selain itu belum tentu legal/dibolehkan menderek mobil pribadi di jalan tol. Akhirnya saya minta tolong Bapak patroli tadi untuk memanggilkan derek lewat radio genggamnya.

Cukup lama juga menunggu mobil derek itu datang, kira-kira 30 menit kalau tidak salah (dari perhitungan kasar timestamp foto). Saat mobil derek resmi Jasa Marga datang, saya telepon rekan saya tadi minta dia menerangkan lokasi bengkelnya & melakukan negosiasi dengan derek. Ternyata mereka menyanggupi untuk menderek sampai ke bengel rekan saya di Kiara Condong Bandung. Tentu dengan biaya tambahan. Aturan resminya memang derek itu gratis sampai pintu tol terdekat, tapi saat itu posisi saya kurang bagus karena pintu tol terdekat adalah Padalarang. Padalarang masih jauh dari bengkel rekan saya di Kiara Condong. Akhirnya disepakatai harga Rp550.000,- untuk derek sampai ke Kiara Condong Bandung. Petugas derek ini cukup fair, mereka menerangkan aturan tarif derek (di luar derek ke pintu tol terdekat). Saya lupa tepatnya, kalau tidak salah Rp10.000,- per kilometer (dihitung dari pintu tol terdekatnya).

Waktu saat itu sudah sekitar setengah 6 sore saat mereka mulai memasang derek ke Karimun saya.

Jadilah saya duduk di mobil sendiri, terasa agak aneh tidak melakukan apa-apa di depan setir, tidak menginjak gas tapi bisa melaju cukup kencang di tol. Sampai di Kiara Condong sekitar pukul setengah 7 malam. Perjalanan di tolnya sendiri cukup cepat, tapi terhambat kemacetan setelah keluar di pintu tol Buah Batu. Saya diberi diskon Rp50ribu dari harga yang disepakati semula, jadi hanya membayar Rp500.000,-.

Itu tadi pengalaman saya menggunakan derek Jasa Marga. Meskipun tidak sedikit biaya yang saya keluarkan tapi saya puas dengan keramahan mereka & servisnya. Dan yang lebih penting menyelamatkan saya untuk tidak terlambat acara di Bandung.

Sekilas Tentang SUDO

Misalnya saya punya Ubuntu server dengan hostname ubuntu1204. Lalu saya buat user baru dengan nama sysadmin.

root@ubuntu1204:~# useradd -m -d /home/sysadmin -s /bin/bash sysadmin
root@ubuntu1204:~# passwd sysadmin
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@ubuntu1204:~#

Ketika saya coba login dengan user sysadmin ternyata saya tidak bisa menggunakan perintah reboot untuk merestart servernya :

ttirtawi@macmini:~$ ssh sysadmin@192.168.10.100
sysadmin@192.168.10.100's password: 
Last login: Thu Jan  2 00:15:34 2014 from macmini.local
sysadmin@ubuntu1204:~$ /sbin/reboot
reboot: Need to be root
sysadmin@ubuntu1204:~$

Saya ingin memberi akses untuk user sysadmin kemampuan untuk merestart server. Untuk menjawab kebutuhan ini kita perlu sedikit mengenal tentang yang namanya sudo.

Akses kontrol di Ubuntu Linux diatur oleh perintah sudo. sudo dikenal sebagai akronim dari Super User Do. User yang diberi hak menggunakan perintah sudo bisa menjalankan perintah-perintah yang tadinya hanya bisa dijalankan oleh user root. Di Ubuntu Linux, root tidak bisa login secara langsung. Beda dengan distro Linux lainnya seperti Debian atau RedHat/CentOS, saat instalasi Ubuntu kita tidak diminta untuk memberi password pada akun root. Alih-alih hanya 1 user yang didefinisikan saat proses instalasi. User pertama ini langsung diberi akses penuh untuk menggunakan sudo. Misalnya seperti contoh di bawah ini, user ttirtawi tidak bisa login sebagai root menggunakan perintah su - root.

ttirtawi@ubuntu1204:~$ su - root
Password: 
su: Authentication failure
ttirtawi@ubuntu1204:~$ sudo bash
[sudo] password for ttirtawi: 
root@ubuntu1204:~#

Untuk mengakses root prompt digunakan perintah sudo bash. Uniknya sudo ini kita tidak perlu lagi repot-repot mendistribusikan password root. User yang diberi akses sudo cukup menggunakan password-nya sendiri.

Bila user biasa yang tidak punya akses sudo mencoba menggunakan perintah sudo akan muncul error seperti berikut ini :

faultmgmt@ubuntu1204:~$ sudo bash
[sudo] password for faultmgmt: 
faultmgmt is not in the sudoers file.  This incident will be reported.
faultmgmt@ubuntu1204:~$

Semua percobaan akses sudo yang gagal tadi akan disimpan dalam file /var/log/auth.log

root@ubuntu1204:~# tail -f /var/log/auth.log  | grep "NOT in sudoers"
Jan  2 08:36:27 ubuntu1204 sudo: faultmgmt : user NOT in sudoers ; TTY=pts/2 ; PWD=/home/faultmgmt ; USER=root ; COMMAND=/bin/bash
^C
root@ubuntu1204:~#

Semua hal berkaitan dengan pengaturan sudo disimpan dalam file /etc/sudoers. Sangat disarankan untuk tidak mengubah file /etc/sudoers secara langsung (dengan teks editor misalnya). Sebaiknya kita menggunakan perintah visudo untuk mengedit file /etc/sudoers. Perintah visudo secara default menggunakan editor nano. Meski menggunakan editor nano, visudo dilengkapi beberapa fungsi internal yang memastikan tidak ada kesalahan sintaks/format.

root@ubuntu1204:~# visudo

Ini contoh tampilan nano yang dipakai oleh perintah visudo :

Visudo Dengan Editor NANO photo nano-visudo_zps7e2c2e15.jpg

Penjaminan akses sudo bisa dilakukan pada level user atau group. Default-nya Ubuntu Linux menggunakan limitasi berbasis group untuk mengatur siapa-siapa yang bisa menggunakan sudo. Ada satu group khusus dengan nama sudo :

root@ubuntu1204:~# grep %sudo /etc/sudoers
%sudo   ALL=(ALL:ALL) ALL
root@ubuntu1204:~#

Pengaturan akses group ditandai dengan tanda %. Contoh di atas bisa dibaca sebagai berikut : semua user yang berada dalam group sudo bisa mengakses semua perintah root, tidak peduli dari mana dia mengakses mesin ini (akses remote dari komputer lain pun dibolehkan menggunakan sudo).

User pertama yang dibuat saat instalasi, masuk dalam group sudo :

root@ubuntu1204:~# grep sudo /etc/group
sudo:x:27:ttirtawi
root@ubuntu1204:~#

Artinya saya bisa menjalankan semua perintah sebagai root, misalnya saya bisa jalankan perintah ini :

  • sudo reboot
  • sudo aptitude install ...
  • sudo route add ...
  • sudo shutdown -h now
  • sudo mkfs.ext3 /dev/sda3
  • dsb

Balik lagi ke permasalahan di awal, bagaimana memberi akses pada perintah reboot saja pada user biasa (sysadmin)? Bisakah saya melakukannya hanya dengan memasukkan user sysadmin ke dalam group sudo? Tentu bisa, tapi dengan begitu user sysadmin akan bisa juga mengganti pengaturan IP, mengganti static routing, memformat harddisk, dsb.

Yang lebih tepat adalah dengan memberi akses pada perintah /sbin/reboot saja untuk user sysadmin. Dengan menggunakan perintah visudo saya menambahkan dua baris berikut ini ke dalam file /etc/sudoers :

Cmnd_Alias RESTART=/sbin/reboot
sysadmin ALL=(ALL) NOPASSWD: RESTART

Pertama saya membuat alias untuk perintah /sbin/reboot, aliasnya saya beri nama RESTART. Lalu saya beri akses kepada user sysadmin untuk menggunakan alias RESTART tadi. Opsi NOPASSWD: artinya user tidak perlu lagi memasukkan password saat mengeksekusi perintah sudo.

Berikut ini adalah salah satu contoh hasil akhir /etc/sudoers setelah saya menambahkan 2 baris baru tadi :

root@ubuntu1204:~# cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults    env_reset
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification
Cmnd_Alias RESTART=/sbin/reboot

# User privilege specification
root    ALL=(ALL:ALL) ALL

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

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

sysadmin ALL=(ALL) NOPASSWD: RESTART
root@ubuntu1204:~#

Dengan begitu user sysadmin sekarang bisa merestart server dengan tambahan perintah sudo.

ttirtawi@macmini:~$ ssh sysadmin@192.168.10.100
sysadmin@192.168.10.100's password: 
Last login: Thu Jan  2 00:19:34 2014 from macmini.local
sysadmin@ubuntu1204:~$ sudo reboot
sysadmin@ubuntu1204:~$ 
Broadcast message from ttirtawi@ubuntu1204
    (/dev/pts/2) at 0:11 ...

The system is going down for reboot NOW!
Connection to 192.168.10.100 closed by remote host.
Connection to 192.168.10.100 closed.
ttirtawi@macmini:~$

Bila banyak user dengan kebutuhan akses sudo yang sama, lebih efisien menggunakan akses group seperti ini :

Cmnd_Alias RESTART=/sbin/reboot
%sysadmin ALL=(ALL) NOPASSWD: RESTART

Saya tinggal memasukkan setiap user yang perlu hak merestart server ke dalam group sysadmin. Misalnya seperti berikut ini :

root@ubuntu1204:~# useradd -G sysadmin -m -d /home/budi -s /bin/bash budi
root@ubuntu1204:~# passwd budi
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@ubuntu1204:~# su - budi
budi@ubuntu1204:~$
budi@ubuntu1204:~$ reboot
Command 'reboot' is available in '/sbin/reboot'
The command could not be located because '/sbin' is not included in the PATH environment variable.
This is most likely caused by the lack of administrative privileges associated with your user account.
reboot: command not found
budi@ubuntu1204:~$
budi@ubuntu1204:~$ /sbin/reboot
reboot: Need to be root
budi@ubuntu1204:~$
budi@ubuntu1204:~$ sudo /sbin/reboot
budi@ubuntu1204:~$ 
Broadcast message from ttirtawi@ubuntu1204
    (/dev/pts/2) at 9:07 ...

The system is going down for reboot NOW!
Connection to 192.168.10.100 closed by remote host.
Connection to 192.168.10.100 closed.
ttirtawi@macmini:~$

Saya membuat user baru dengan nama budi. User budi saya masukkan ke dalam group sysadmin. Oleh karenanya budi dapat merestart server dengan sudo reboot atau sudo /sbin/reboot.

Begitu kira-kira caranya mengatur akses pada perintah-perintah “penting” dengan menggunakan sudo.