Sebelum terlambat saya ingin mengucapkan Selamat Tahun Baru 2014. Tahun 2013 berlalu begitu cepat, rasanya baru kemarin saya merefresh kembali blog ini. Tahun 2013 saya cuma bisa membuat posting sebanyak 191, itupun sebagian besar berupa foto. Sulit memang berkomitmen 1 posting per hari. Saya selalu salut pada orang-orang yang bisa rajin mengupdate blognya. Misalnya Pak Budi Rahardjo, saya kagum pada beliau meskipun sibuk bisa rajin sekali menulis di blognya. Saya perlu belajar banyak pada beliau, kita lihat apakah tahun 2014 ini saya bisa lebih produktif menulis di blog ini.
Author Archives: Tedy Tirtawidjaja
Sekilas Tentang RBAC
Misalkan saya punya sebuah server dengan Solaris 11 sebagai sistem operasinya (hostname-nya oraclesolaris11). Pada sistem tadi saya punya user operator.
ttirtawi@macmini:~$ ssh operator@192.168.10.70 Password: Last login: Wed Jan 1 18:12:26 2014 from 192.168.10.13 Oracle Corporation SunOS 5.11 11.1 September 2012 operator@oraclesolaris11:~$
Sebagai user biasa tentu operator tidak bisa merestart sistem :
ttirtawi@macmini:~$ ssh operator@192.168.10.70 Password: Last login: Wed Jan 1 18:12:26 2014 from 192.168.10.13 Oracle Corporation SunOS 5.11 11.1 September 2012 operator@oraclesolaris11:~$ reboot reboot: permission denied operator@oraclesolaris11:~$
Ok tentu ini normal karena user operator adalah normal user bukan root user. Biasanya user bisa login sebagai root (selama tahu password root) untuk kemudian merestart sistem. Asumsi user operator tahu password root sistem ini :
operator@oraclesolaris11:~$ su - root Password: Roles can only be assumed by authorized users su: Sorry operator@oraclesolaris11:~$
Upss ternyata di Solaris 11 user biasa tidak bisa login sebagai root. Tidak seperti Linux atau Solaris versi sebelumnya, root user di dalam Solaris 11 didefinisikan sebagai role, Sederhananya dalam Bahasa Indonesia kita bisa terjemahkan roles sebagai “peran”. Untuk bisa login sebagai root, user biasa perlu diberi “peran” sebagai root.
operator@oraclesolaris11:~$ roles No roles operator@oraclesolaris11:~$
Ok mari kita beri peran root kepada user operator. Saya punya user lain yaitu ttirtawi yang memiliki roles sebagai root.
ttirtawi@oraclesolaris11:~$ su - root Password: Oracle Corporation SunOS 5.11 11.1 September 2012 root@oraclesolaris11:~# root@oraclesolaris11:~# usermod -R+"root" operator UX: usermod: operator is currently logged in, some changes may not take effect until next login. root@oraclesolaris11:~#
Setelah diberi roles, user operator perlu melakukan login ulang.
ttirtawi@macmini:~$ ssh operator@192.168.10.70 Password: Last login: Wed Jan 1 18:12:47 2014 from 192.168.10.13 Oracle Corporation SunOS 5.11 11.1 September 2012 operator@oraclesolaris11:~$ roles root operator@oraclesolaris11:~$
Perintah roles berguna untuk melihat peran apa saja yang dimiliki oleh user. Karena sekarang user operator bisa berperan sebagai root, tentu mudah bagi user operator untuk merestart sistem :
operator@oraclesolaris11:~$ su - root Password: Oracle Corporation SunOS 5.11 11.1 September 2012 root@oraclesolaris11:~# reboot Connection to 192.168.10.70 closed by remote host. Connection to 192.168.10.70 closed. ttirtawi@macmini:~$
Oh ya tadi lupa disebutkan tidak cukup diberi role sebagai root, user operator perlu tahu juga password root.
Tapi tentu ini cukup berbahaya karena sekarang user operator bisa melakukan segala hal yang tadinya hanya root yang bisa melakukan. operator sekarang memiliki akses yang berlebihan dari sekadar kebutuhan awalnya untuk merestart sistem.
Lalu pertanyaan selanjutnya bagaimana caranya memberi akses pada user biasa hanya untuk merestart sistem? Caranya dengan mendefinisikan sebuah role baru.
- membuat role baru atau sederhananya membuat “peran” baru.
- membuat profil untuk role tersebut.
- mengisi profil tadi dengan perintah-perintah yang ingin diberikan
- memberi kuasa pada user tertentu untuk bisa memainkan “peran” baru tadi.
Kita perlu membuat role baru lalu mendefinisikan profilenya supaya hanya bisa mengakses perintah reboot. Misalkan kita sebut peran baru ini sebagai restart
root@oraclesolaris11:~# roleadd -m -d /export/home/restart restart 80 blocks root@oraclesolaris11:~# root@oraclesolaris11:~# passwd restart New Password: Re-enter new Password: passwd: password successfully changed for restart root@oraclesolaris11:~#
Menambah role sama prinsipnya sama dengan menambah user biasa. Karena mirip seperti user biasa, maka role yang tadi sudah kita buat juga terdaftar pada file /etc/passwd & /etc/shadow :
root@oraclesolaris11:~# grep restart /etc/passwd restart:x:54325:10::/export/home/restart:/usr/bin/pfbash root@oraclesolaris11:~# root@oraclesolaris11:~# grep restart /etc/shadow restart:$5$lRko9uVR$P7Z3KkcPPnKC19oNHH.TjMKI7aMiF55ZI4PNUi/scdB:16071::::::11376 root@oraclesolaris11:~#
Yang membedakan hanyalah kita tidak bisa login langsung sebagai role tersebut.
Setelah kita punya role baru, kita perlu membuat profil baru untuk role tersebut. Misalnya kita buat profil dengan nama RESTART :
root@oraclesolaris11:~# vi /etc/security/prof_attr root@oraclesolaris11:~# # # The system provided entries are stored in different files # under "/etc/security/prof_attr.d". They should not be # copied to this file. # # Only local changes should be stored in this file. # This line should be kept in this file or it will be overwritten. # RESTART:::profile untuk restart sistem:help=restart.html root@oraclesolaris11:~#
Setelah kita punya profile RESTART tadi, lalu kita berikan profil tadi kepada role restart dengan menggunakan perintah rolemod seperti contoh berikut ini :
root@oraclesolaris11:~# rolemod -P+"RESTART" restart
Daftar profil yang sudah diberikan pada suatu role bisa dilihat pada file /etc/user_attr :
root@oraclesolaris11:~# grep restart /etc/user_attr restart::::type=role;profiles=RESTART;roleauth=role root@oraclesolaris11:~#
Langkah selanjutnya kita harus mendefinisikan perintah apa saja yang bisa dijalankan oleh profil RESTART. Caranya adalah dengan menambah definisi baru pada file /etc/security/exec_attr (untuk restart sistem profil ini perlu diberi akses pada perintah reboot) :
root@oraclesolaris11:~# vi /etc/security/exec_attr # # The system provided entries are stored in different files # under "/etc/security/exec_attr.d". They should not be # copied to this file. # # Only local changes should be stored in this file. # This line should be kept in this file or it will be overwritten. # RESTART:suser:cmd:::/usr/sbin/reboot:euid=0 root@oraclesolaris11:~#
Sampai di sini role baru kita tadi sudah bisa melakukan restart sistem. Tapi seperti tadi sudah dijelaskan kita tidak bisa langsung login sebagai role. Yang bisa dilakukan adalah memberi kuasa pada user tertentu untuk bisa memainkan role baru tadi.
Jadi langkah terakhir adalah memberi kuasa baru pada user operator untuk bisa memainkan “peran” restart :
root@oraclesolaris11:~# usermod -R+"restart" operator UX: usermod: operator is currently logged in, some changes may not take effect until next login. root@oraclesolaris11:~#
Setelah user operator melakukan login ulang sekarang operator sudah memiliki “peran” baru :
ttirtawi@macmini:~$ ssh operator@192.168.10.70 Password: Last login: Wed Jan 1 19:31:20 2014 from 192.168.10.13 Oracle Corporation SunOS 5.11 11.1 September 2012 operator@oraclesolaris11:~$ roles restart operator@oraclesolaris11:~$
Mari kita coba untuk merestart sistem dengan menggunakan role tadi :
operator@oraclesolaris11:~$ reboot reboot: permission denied operator@oraclesolaris11:~$ su - restart Password: Oracle Corporation SunOS 5.11 11.1 September 2012 restart@oraclesolaris11:~$ reboot Connection to 192.168.10.70 closed by remote host. Connection to 192.168.10.70 closed. ttirtawi@macmini:~$
Berhasil, dengan adanya role restart maka user operator bisa mengakses perintah reboot tanpa bisa mengakses perintah-perintah penting lainnya; seperti misalnya mematikan network interface :
restart@oraclesolaris11:~$ ipadm down-addr net0/v4 ipadm: cannot mark the address down: Insufficient user authorizations restart@oraclesolaris11:~$
Manajemen akses pada perintah-perintah penting jadi lebih mudah dengan adanya role. Kita tinggal menambahkan perintah-perintah yang dibutuhkan pada role yang bersangkutan. Konsep inilah yang dikenal dengan nama RBAC singkatan dari Role Based Access Control.
Membaca Buku Di iPad
Sejak punya iPad saya sering menghabiskan waktu membaca buku digital. Salah satu sumber saya mendapatkan buku digital adalah dari SCOOP. SCOOP ini semacam toko buku digital. SCOOP menyediakan fitur yang mudah untuk melakukan pembelian buku langsung dari iPad. Tinggal klik judul buku, klik Beli, lalu bayar via kartu kredit, dan sekejap buku yang diinginkan langsung ter-download ke dalam iPad. Tidak hanya buku, beberapa nama majalah seperti SWA juga tersedia di sana. Harganya mirip dengan edisi cetaknya. Ada keuntungan tersendiri bila membeli buku/majalah digital seperti itu, tidak perlu ada tumpukan buku/majalah bekas di kemudian hari.
Keuntungan lain bila sedang bepergian, beberapa buku & majalah bisa langsung dibawa dalam iPad. Membawa beberapa buku konvensional saat bepergian cukup merepotkan : berat & makan tempat di tas. Mungkin kalau buku yang saya bawa cetakan luar negri akan terasa lebih ringan. Saya selalu kagum melihat kualitas material buku cetakan luar negri yang meskipun tebal tapi jauh terasa lebih ringan. Tapi balik lagi soal makan tempat tadi, tidak peduli seringan apa bukunya buku konvensional tetap saja makan tempat di tas.
Kalau melihat dari skala SCOOP menurut saya masih kalah lengkap koleksinya bila dibandingkan dengan toko buku konvensional seperti Gramedia. Mungkin masih jauh bila harus dibandingkan dengan Amazon Kindle Store. Saya masih berangan-angan koleksi buku di SCOOP ini sama banyaknya & sama lengkapnya seperti Gramedia. Tentu ada kelemahan mengkoleksi buku digital seperti ini. Musuh utamanya adalah daya tahan baterai perangkat yang dipakai. Kelemahan lain yang saya rasa adalah dengan adanya akses Internet di perangkat seperti iPad, saya jadi mudah terganggu aktivitas membacanya. Entah karena ada email masuk atau karena terdorong keinginan untuk browsing tentang sesuatu yang saya tidak paham dari cerita yang sedang saya baca.

Beberapa hari lalu saya cukup kaget mendapati novel baru Dan Brown sudah tersedia di SCOOP. Mungkin edisi cetak bahasa Indonesianya sudah ada di Gramedia, saya sudah lama tidak mengunjungi Gramedia. Karena saya termasuk penggemar novel-novel Dan Brown, saya senang juga tahu novel terjemahan Bahasa Indonesianya sudah bisa didapat. Untuk urusan buku fiksi saya masih belum bisa menikmati edisi aslinya dalam bahasa Inggris. Kemampuan bahasa Inggris saya belum sampai untuk bisa menikmati novel fiksi berbahasa Inggris. Sejauh ini saya baru setengah jalan membaca Inferno tadi, novel yang menarik untuk dihabiskan segera.
Ukuran layar iPad menurut saya cocok sebagai ebook reader, tulisan yang ditampilkan seukuran dengan edisi cetak. Perangkat lain seperti Galaxy Note 2, menurut saya sedikit kekecilan untuk menampilkan buku digital. Saya jadi sibuk zoom-in dan menggeser-geser halaman untuk membaca keseluruhan paragraf. Memang lebih enak menggunakan perangkat kecil seperti Galaxy Note karena bisa dipegang dengan satu tangan secara nyaman. iPad 3 ini cukup melelahkan bila dipegang berlama-lama menggunakan satu tangan. Oh ya tadi saya lupa cerita kalau akun SCOOP itu bisa diakses dari beberapa perangkat yang berbeda. Misalnya tadi saya beli buku Dan Brown Inferno dari iPad, saya bisa men-download-nya juga ke dalam Note 2 saya.
Bagaimana dengan Anda, apa Anda juga senang membaca buku di iPad atau gadget lainnya?
Continuous Shoot Nikon D7000
Kemarin salah seorang rekan mengirimkan pesan via BBM : “buat nikon D7000 gimana caranya biar bisa motret beberapa kali?”. Ternyata maksudnya adalah mode continuous, sekali tekan tombol shutter kamera otomatis memotret terus menerus sampai tombol shutter dilepas. Langsung saya jawab ada tombol di sebelah kiri atas yang bisa diputar-putar. Ternyata rekan saya (tepatnya pacarnya yang punya kamera ini) tidak paham yang saya maksud. Saya pun lupa apa simbol yang tercantum di tombol tersebut. Terpaksa saya ambil kamera D7000 & memotret bagian kiri atasnya. Dengan foto penjelasan saya lebih bisa ditangkap oleh rekan saya tadi.
Tombol bagian kiri atas Nikon D7000 terdiri dari 2 saklar yang bertumpuk satu sama lain. Bagian atas bisa langsung diputar & dipakai untuk mengubah mode pemotretan (P,S,A,M). Bagian bawah sedikit unik karena untuk dapat memutarnya kita harus menekan tombol kecil yang ada di sampingnya terlebih dulu. Di saklar bagian bawah inilah kita bisa memilih mode continuous shoot. Ada 2 pilihan mode continuous shoot : CL & CH. CL maksudnya “Continuous Low”, kalau tidak salah sekitar 3fps (frame per second) sedikit lebih lambat tapi bisa dipakai untuk mengambil foto dengan resolusi maksimum. Sementara CH maksudnya “Continuous High” bisa mencapai kecepatan sampai lebih kurang 6fps. Tapi CH punya keterbatasan resolusi foto. Saya lupa tepatnya berapa resolusi maksimum yang bisa dicapai dengan mode CH ini. Dan pilihan S di samping CL adalah default setting, maksudnya single shoot (satu foto untuk satu kali pencet tombol shutter).Sinkronisasi Data Antara 2 Mac
Sehari-hari di rumah saya bekerja menggunakan Mac mini. Namun bila pergi ke kantor atau ke tempat client, saya membawa Macbook Air. Bekerja dengan dua komputer menimbulkan masalah sinkronisasi data. Sehari-hari saya melakukan 2x sinkronisasi secara manual. Sebelum berangkat kerja saya melakukan sinkronsasi dari Mac mini ke Macbook Air dan sepulang kerja saya melakukan sinkronisasi balik dari Macbook Air & Mac mini. Repot? Resiko bekerja dengan 2 komputer yang berbeda.
Saya memilih untuk menggunakan rsync untuk melakukan sinkronisasi. Perintah yang dipakai seperti berikut :
rsync -tarv --delete ~/ORACLE-Stuff/ 192.168.10.13:~/ORACLE-Stuff/
Perintah ini dilakukan dari Macbook Air, untuk melakukan sinkronisasi ke Mac mini. Folder ORACLE-Stuff adalah tempat saya menyimpan semua berkas pekerjaan. Sementara IP 192.168.10.13 adalah IP statik Mac mini saya. Opsi --delete itu maksudnya semua berkas yang ada di Mac mini namun tidak ada di Macbook akan dihapus sebelum proses sinkronisasi berjalan. Opsi -t dipakai untuk mempertahankan modification date semua berkas yang disinkronisasi.
Memang sekarang layanan cloud sudah banyak dan mudah digunakan seperti misalnya Dropbox. Saya bisa saja menaruh semua data pekerjaan di folder Dropbox sehingga tidak perlu lagi melakukan sinkronisasi manual seperti di atas. Tapi dengan kondisi akses internet sekarang rasanya menggunakan Dropbox tidak efisien. Folder kerja saya ukurannya cukup besar, mencapai 27GB. Memang saya punya space kosong di Dropbox mencapai puluhan Gigabyte, tapi bukan itu kendala utamanya. Kendala utamanya menurut saya adalah memindahkan semuanya ke Dropbox mungkin perlu waktu berhari-hari untuk menyelesaikan proses upload & sinkronisasinya.
Balik lagi ke soal rsync tadi, daripada mengetik perintah yang sama berulang-ulang saya simpan kedua perintah tadi dalam file .bashrc di Macbook Air.
ttirtawi@macbook-air:~$ cat .bashrc
syncmacbooktomacmini(){
echo " rsync -tarv --exclude=OracleLinux_6_OCCN.ova ~/ORACLE-Stuff/ 192.168.10.13:~/ORACLE-Stuff/ "
echo "Syncronize MacBook data to MacMini :"
echo " rsync -tarv --delete --exclude=OracleLinux_6_OCCN.ova ~/ORACLE-Stuff/ 192.168.10.13:~/ORACLE-Stuff/"
while true; do
read -p "Are you serious to sync MacBook to MacMini? " yn
case $yn in
[Yy]* ) echo "Starting to sync..."; rsync -tarv --delete --exclude=OracleLinux_6_OCCN.ova ~/ORACLE-Stuff/ 192.168.10.13:~/ORACLE-Stuff/; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
}
syncmacminitomacbook(){
echo "Syncronize MacMini data to Macbook :"
echo " rsync -tarv --delete --exclude=OracleLinux_6_OCCN.ova 192.168.10.13:~/ORACLE-Stuff/ ~/ORACLE-Stuff/"
while true; do
read -p "Are you serious to sync MacMini to Macbook? " yn
case $yn in
[Yy]* ) echo "Starting to sync..."; rsync -tarv --delete --exclude=OracleLinux_6_OCCN.ova 192.168.10.13:~/ORACLE-Stuff/ ~/ORACLE-Stuff/; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
}
ttirtawi@macbook-air:~$
Jadi saya tinggal jalankan fungsi syncmacminitomacbook atau syncmacbooktomacmini, lumayan menghemat mengetik perintah rsync yang cukup panjang tadi.
Fungsi sinkronisasi tadi bisa juga saya gunakan saat saya ingin menyamakan data dari Macbook ke laptop kantor (Lenovo X220). Saya menggunakan ElementaryOS Linux di Lenovo x220, selama rsync terinstal di komputer tersebut proses sinkronisasi data jadi mudah.
Solusi lain yang lebih mudah mungkin dengan memindahkan semua data pekerjaan yang dipakai oleh beberapa komputer ke dalam external harddisk. Semua data di simpan dalam external harddisk, tinggal colok ke komputer mana saat diperlukan. Meskipun sederhana tapi saya rasa cara ini kurang efisien, malah cenderung ribet. Bagaimana dengan Anda? Apa metode Anda untuk sharing data antara beberapa komputer?


