Tinjau kembali kebutuhan Anda terlebih dahulu. Apa masalah yang Anda coba selesaikan? Mengapa Anda ingin mencegah pengguna meninggalkan direktori home mereka? Bukannya Anda tidak ingin mereka mencari-cari direktori spesifik lainnya - seperti direktori home dari pengguna lain?
Sangat sulit untuk mencegah pengguna meninggalkan direktori home mereka. Ini sebenarnya agak konyol juga (penjelasan berikut). Jauh lebih mudah untuk mencegah pengguna memasukkan direktori yang tidak Anda inginkan.
Pertama, ya Anda bisa memberi pengguna shell yang disebut dibatasi , lihat man rbash
. Ini akan mencegah mereka dari cd
-di tempat lain, tetapi hanya di dalam shell itu. Jika pengguna memulai vi
atau nano
(atau program lain yang mampu membuka file) mereka dapat kembali membuka file di mana saja pada sistem. Sebagai soal fakta, shell terbatas tidak mencegah misalnya cat /etc/passwd
.
Langkah selanjutnya adalah root jail. Info lebih lanjut tentang wiki komunitas dan dalam pertanyaan ini . Meskipun root jail akan mengunci pengguna di dalam taman bertembok, di mana mereka tidak memiliki akses apa pun kecuali file dan perintah yang sengaja Anda taruh di sana, root jail sebenarnya dimaksudkan untuk mengisolasi perangkat lunak yang tidak dipercaya daripada pengguna. Khususnya, mereka untuk perangkat lunak yang perlu dijalankan dengan hak istimewa yang tinggi - karenanya merupakan root jail.
Sebaliknya, para pengguna dipercaya : mereka harus mengotentikasi dan menjalankannya tanpa hak istimewa yang ditingkatkan. Oleh karena itu izin file cukup untuk mencegah mereka mengubah file yang bukan milik mereka, dan dari melihat hal-hal yang tidak boleh mereka lihat. Untuk mencegah pengguna membaca konten file, hapus keterbacaannya dengan dunia chmod o-r FILE
. Untuk menjaga pengguna keluar dari direktori, buat itu tidak dapat diakses oleh dunia chmod o-rwx DIR
.
World-readability adalah standarnya, untuk alasan yang bagus: pengguna sebenarnya membutuhkan sebagian besar barang yang ada di sistem file. Jangan mengunci pengguna di rumah mereka hanya karena ada rahasia di luar.
Mengapa mengunci pengguna di direktori home mereka agak konyol
Untuk melakukan sesuatu yang bermanfaat, pengguna perlu akses ke perintah dan aplikasi. Ini ada di direktori seperti /bin
dan /usr/bin
, jadi kecuali Anda menyalin semua perintah yang mereka butuhkan dari sana ke direktori home mereka, pengguna akan membutuhkan akses ke /bin
dan /usr/bin
. Tapi itu baru awalnya. Aplikasi memerlukan pustaka dari /usr/lib
dan /lib
, yang pada gilirannya memerlukan akses ke sumber daya sistem, yang ada di /dev
, dan ke file konfigurasi di /etc
dan /usr/share
.
Ini hanya bagian read-only. Aplikasi juga ingin /tmp
dan sering /var
menulis. Jadi, jika Anda ingin membatasi pengguna dalam direktori rumahnya, Anda harus menyalin banyak ke dalamnya. Bahkan, hampir seluruh sistem file basis - yang sudah Anda miliki, terletak di /
.