Kontrol Client

Kontrol client adalah melakukan ’shutdown’ dan ‘restart’ komputer client, ada beberapa cara yang bisa diterapkan yaitu, melalui protokol desktop manager, dan dengan program shutdown milik sistem, masing-masing mempunyai kelebihan dan kekurangan.

Protokol Desktop Manager

Cara pertama dengan protokol desktop manager adalah yang terbaik, sistem dapat melakukan `cleanup’, menyimpan `session’ dan lainnya sebelum melakukan restart/shutdown, sehingga proses kontrol terkendali oleh desktop. Desktop manager seperti GNOME dan KDE mengikuti konvensi freedesktop.org, misalnya pada GNOME dengan membuat service (gnome-power-manager) dan malakukan komunikasi antar proses dengan D-Bus (standard IPC dari freedesktop.org) untuk melakukan kontrol.

Masalahnya adalah pada kenyatannya implementasi ini sering berubah seiring dengan versi desktop manager, jika Anda mengenal script gnome-power-cmd.sh yang di tulis oleh Richard Hughes (penulis dan maintener PackageKit, GNOME Power Manager) yang ada pada versi GNOME 2.24 ke bawah yang digunakan untuk berkomunikasi dengan service gnome-power-manager, script itu tidak bekerja lagi pada versi GNOME 2.26 ke atas. Ini karena perubahan implementasi komunikasi.

Desktop manager lainnya mungkin membuat aturan mereka sendiri, ini menjadikan untuk memakai protokol dekstop manager sebagai kontrol client gBilling menjadi kompleks dan membutuhkan `effort’ yang besar dalam development.

Program Shutdown Sistem

Kelebihan cara ini tidak bergantung pada desktop manager yang digunakan dan bisa berjalan di setiap sistem, desktop client harusnya mempunyai program ini. Adapun kekurangan cara ini seperti yang sudah diketahui adalah tidak ada interaksi dengan desktop manager sehingga data-data (misalnya session) yang diproses oleh dekstop manager akan hilang begitu saja, walaupun ini tidak krusial. Selain itu program ini membutuhkan pengaturan tambahan, program shutdown (biasanya di /sbin/shutdown) menerapkan ACL (Access Control List), hanya privileged user (root) yang bisa melakukan kontrol.

Walapun dengan kekurangan tersebut, gBilling (mulai versi 0.2.1) lebih memilih cara ini untuk melakukan kontrol client, cara ini lebih sederhana dan membantu development. Untuk menggunakan shutdown dengan user non-root, ada beberapa cara yaitu dengan modifikasi /etc/sudoers sehingga akses user dibuka (cara ini tidak dibahas disini, silahkan mencari referensi lainnya). Cara lain dengan modifikasi ACL program shutdown dengan cara mengaktifkan setuid bit sehingga proses yang menjalakan file ini akan mendapat privilege root.

Periksa mode permisi program shutdown, figur dibawah menampilan permisi asli program shutdown (0755).

# ls -l $(which shutdown)
-rwxr-xr-x. 1 root root 65016 2010-03-10 16:59 /sbin/shutdown

Set bit setuid (4755), dan lihat kembali setuid bit jika telah diaktifkan ’s’.

# chmod u+s $(which shutdown)
# ls -l $(which shutdown)
-rwsr-xr-x. 1 root root 65016 2010-03-10 16:59 /sbin/shutdown

Program shutdown kemudian bisa digunakan oleh setiap user (non-root).

PENTING: Karena program shutdown diatur untuk bisa digunakan oleh user non-root, komputer client sekarang bisa dikontrol secara lokal oleh pemakai, pastikan untuk membatasi akses pemakai komputer client dengan baik.

Di tulis oleh: Ardhan Madras 29/08/2010