Begini ceritanya...

Saya mau menyalin berkas dari ~/Downloads ke ~/dropbox, sedangkan direktori ~/dropbox adalah titik kait (mount point) yg merujuk pada cloud server. Dalam sebuah kondisi, misal saya lupa mengaitkan ke direktori tersebut. Alih-alih menyalin ke cloud server, ruang penyimpanan di komputer saya justru membengkak.

Untuk menghindari penulisan berkas pada mount point yang belum terkait, ada beberapa cara.

Menggunakan perintah mountpoint

Perintah mountpoint[1] termasuk bagian dari paket util-linux yang sebagian besar distro Linux sudah menyertakan secara asali pada proses instalasi.

Misal, saya punya direktori ~/dropbox. Saya periksa menggunakan perintah mountpoint.

unmounted dan mengembalikan exit status 1
mounted dan mengembalikan exit status 0

Exit status tersebut bisa dimanfaatkan untuk menggabungkan dengan perintah lain. Misal:

mountpoint in action

Perhatikan baris mountpoint -q dropbox && cp -v Downloads/PPPD-461-libx264.mp4 dropbox Jika direktori dropbox belum terkait, maka perintah cp -v Downloads/PPPD-461-libx264.mp4 dropbox tidak akan dieksekusi. Sebaliknya, jika direktori dropbox sudah terkait, perintah setelah && akan dieksekusi.

Mengubah kontrol akses atau perijinan berkas

Cara ini cukup tricky. Saya mengubah perijinan pada direktori dropbox agar tidak bisa ditulis menggunakan perintah chmod -w dropbox[2]. Kelemahan dari cara ini adalah masih bisa ditulis menggunakan hak akses root. Karena itu, perintah untuk mounting juga memerlukan hak akses root

chmod

Mengganti atribut berkas

chattr

Di dalam Sistem Operasi berbasis Linux, kita mengenal perintah chattr[3]. Perintah ini mengubah atribut berkas pada sistem berkas Linux. Perlu diperhatikan bahwa tidak semua sistem berkas mendukung perintah ini. Selengkapnya silahkan baca halaman manual.

Buat direktori dropbox menjadi immutable dengan perintah sudo chattr +i dropbox. Perintah ini membuat direktori dropbox menjadi tidak bisa dimodifikasi, dihapus, maupun diubah namanya. Bahkan oleh pengguna dengan hak akses root sekalipun sebelum atribut immutable ini dihilangkan dengan perintah sudo chattr -i dropbox. Perintah mounting pada direktori juga memerlukan hak akses root.

chattr

chflags

Jika di Sistem Operasi Linux ada chattr, MacOS dan BSD ada chflags[4][5]. Ubah flag direktori b2 dengan perintah chflags uchg b2. Untuk memeriksa flags, ketik perintah ls -laO b2.

Sama seperti chattr +i. Dengan perintah chflags uchg, berkas atau direktori menjadi immutable. Bedanya, di sini perintah untuk mounting tidak perlu hak akses root.

chflags

Ngantuk Bro!!


  1. http://man7.org/linux/man-pages/man1/mountpoint.1.html ↩︎

  2. https://ss64.com/bash/chmod.html ↩︎

  3. https://en.wikipedia.org/wiki/Chattr ↩︎

  4. https://ss64.com/osx/chflags.html ↩︎

  5. https://www.freebsd.org/cgi/man.cgi?query=chflags&sektion=1 ↩︎