Konfigurasi TMP Untuk Multiuser

Submitted by w41lf0x on Wed, 10/21/2015 - 01:54

slackwareSalah satu hal yang saya suka dari sistem operasi #Windows adalah soal pemisahan direktori TEMP (di #linux TMP) per-user. Banyak keuntungan yang dapat diperoleh dari skema ini. Keuntungan pertama adalah isolasi berkas temporer tiap user. Keuntungan kedua adalah turunan dari keutungan pertama tadi, yaitu lebih terjaminnya kinerja sebuah program karena berkas temporer yang digunakannya (terutama soket program) benar-benar hanya dapat diakses oleh sesi user yang menjalankannya meskipun di saat yang sama ada user lain yang menjalankan program yang sama. Jadi kita mendapatkan keuntungan dari sisi keamanan dan kenyamanan sekaligus. Tumben lho bisa baik2an seperti ini.

Kerugian dari skema ini mungkin hanyalah bertambahnya jumlah ruang yang diperlukan oleh sistem operasi karena mungkin akan ada duplikasi berkas yang tersimpan di direktori TMP antara user satu dengan yang lainnya. Tetapi di linux hal ini dapat diakali dengan menggunakan skrip yang dapat membersihkan TMP sewaktu boot atau sekalian kita gunakan tmpfs untuk direktori TMP sehingga TMP selalu bersih tiap kali boot.

Cara memindahkan TMP user ke sebuah direktori spesifik per-user mudah sekali. Kita cukup menambahkan sebuah berkas profil di dalam direktori /etc/profile.d atau menggunakan berkas .profile di tiap-tiap home direktori user. Dalam contoh berikut saya menggunakan tmpfs /dev/shm sebagai lokasi untuk TMP per-user.

XDG_RUNTIME_DIR="/dev/shm/runtime-${USER}"; export XDG_RUNTIME_DIR;
if [ ! -d "${XDG_RUNTIME_DIR}" ]; then
    mkdir -p "${XDG_RUNTIME_DIR}";
fi

if [ -d "${XDG_RUNTIME_DIR}" ]; then
    TMP="${XDG_RUNTIME_DIR}"; export TMP;
    TEMP="${XDG_RUNTIME_DIR}"; export TEMP;
    TMPDIR="${XDG_RUNTIME_DIR}"; export TMPDIR;
fi

Jadi user AB dan CD akan mendapati direktori TMP mereka masing-masing berada di /dev/shm/runtime-AB/ dan /dev/shm/runtime-CD/.

Demikian tulisan singkat ini, semoga bermanfaat.