GNU/Linux >> Belajar Linux >  >> Linux

Apakah saya benar-benar membutuhkan chmod rekursif untuk membatasi akses ke folder?

Untuk direktori, akses "baca" memungkinkan Anda membuat daftar konten, dan akses "eksekusi" memungkinkan Anda melintasi direktori untuk membuka salah satu anaknya (file atau subdirektori). Jadi jika Anda menghapus:

  • hanya akses baca, orang masih dapat mengakses subdirektori dengan menebak nama mereka
  • hanya flag eksekusi, orang masih dapat membuat daftar nama konten meskipun mereka tidak dapat mengaksesnya, dan ini masih dapat diungkap
  • membaca dan mengeksekusi hak istimewa pada direktori, apa pun di bawahnya menjadi tidak dapat dijangkau, dan Anda tidak perlu melakukan perubahan rekursif.

Tentu saja jika Anda melakukan perubahan rekursif, reset non-rekursif yang tidak disengaja dari hak akses ke direktori teratas akan memiliki konsekuensi yang lebih kecil.


Tak perlu dikatakan lagi, jika Anda membuat file dua hari yang lalu (dengan mode yang dapat dibaca publik), dan seseorang membaca file tersebut kemarin, atau membuat salinannya, maka tidak ada yang dapat Anda lakukan hari ini untuk menjadikan file tersebut pribadi.

xenoid mengatakan (agak sederhana) bahwa, jika Anda menghapus grup dan izin lain dari direktori Anda (hari ini, sekarang), "apa pun di bawahnya menjadi tidak dapat dijangkau, dan Anda tidak perlu melakukan perubahan rekursif." Saya setuju, jika Anda chmod direktori (tingkat atas) Anda dengan tepat, tidak seorang pun kecuali Anda sendiri yang dapat mengaksesnya di masa mendatang (yaitu, mulai sekarang). Tapi ada beberapa gotcha.

Tautan keras

Ingat file yang Anda buat dua hari lalu? Misalkan musuh Anda membuat tautan keras ke file itu kemarin (alih-alih menyalinnya). Jika Anda chmod hanya direktori (tingkat atas) Anda, maka file itu akan terus memiliki izin yang dapat dibaca secara publik yang Anda tetapkan saat Anda membuatnya, sehingga orang jahat akan tetap dapat membacanya di masa mendatang— (berpotensi) bahkan jika Anda selanjutnya memodifikasi dia. Jika Anda melakukan chmod rekursif ,yang akan mengamankan izin pada file,yang akan memengaruhi tautan. Orang jahat itu masih bisa melakukan ls -l di atasnya, sehingga mereka dapat melihat saat Anda mengubahnya, dan seberapa besar itu, tetapi mereka tidak akan dapat membacanya lagi.

Direktori kerja

Misalkan, di bawah secret Anda direktori, Anda memiliki plans direktori, dan juga dapat dibaca publik. Dan misalkan, lima menit yang lalu, orang jahat itu membuka jendela terminal dan berkata

cd /home/clemisch/secret/plans

Sekarang, setelah Anda melakukan chmod pada secret , direktori kerja orang jahat masih  /home/clemisch/secret/plans , dan mereka dapat terus mencantumkan direktori itu dan mengakses file di sana, mungkin selamanya. Tentu saja, setelah mereka cd di tempat lain, atau tutup jendela itu, atau logout, atau mesin di-boot ulang, lalu mereka kehilangan akses.

Jika Anda melakukan chmod rekursif , yang akan mengamankan izin pada semua file dan semua direktori, menyebabkan penghuni liar segera kehilangan akses.

Ini mungkin bukan risiko yang sangat besar jika mesin tersebut adalah komputer pribadi yang hanya diakses melalui konsol. Tapi, jika orang jahat itu mungkin meninggalkan screen atau tmux sesi di latar belakang, maka mereka bisa menggunakan serangan ini. Dan, jika mesin mendukung ssh (atau akses jarak jauh lainnya; bahkan mungkin FTP sudah cukup),serangan ini dapat digunakan.

Kesalahan manusia

Seperti yang ditunjukkan xenoid dalam jawaban mereka:Jika Anda melakukan chmod rekursif pada secret hari ini,dan kemudian lusa Anda secara tidak sengajachmod (hanya) direktori tingkat atas kembali ke 755, maka Anda masih akan dilindungi oleh chmod rekursif hari ini —semua file dan direktori di bawah secret tetap tidak akan terbaca. (Tentu saja, jika Anda membuat baru file dalam secret besok, dan Anda mengizinkannya untuk dibaca secara publik, maka itu akan terungkap saat Anda membuka izin pada secret direktori. Tapi itu benar tidak peduli apakah chmod hari ini adalah rekursif atau tidak.)

mazunki berkomentar, “Saya percaya cp membawa izin.” Saya tidak yakin apa maksudnya, tetapi pertimbangkan skenario ini. Anda ingin melakukan diff antara dua file:

  • secret/plans/the/quick/brown/fox/file1
  • secret/jumps/over/the/lazy/dog/file2

Tetapi Anda tidak yakin persis di mana file-file itu berada, dan Anda harus mencari-cari untuk menemukannya. Anda mungkin tergoda untuk melakukannya

cd plans
cd the/quick                            # looking for file1
cd brown/fox                            # found it!
cp file1 /tmp
cd ../../../../..
cd jumps/over
cd the                                  # looking for file2
cd lazy/dog                             # found it!
diff /tmp/file1 file2

Jika Anda melakukan ini, maka /tmp/file1 akan memiliki perlindungan yang sama seperti secret/plans/the/quick/brown/fox/file1 —jadi itulah alasan lain untuk melakukan chmod rekursif hari ini.

SATU hal lagi

Jika penjahat membuka salah satu file rahasia Anda lima menit yang lalu, dan tetap membukanya, mereka akan dapat membacanya di masa mendatang— berpotensi bahkan jika Anda memodifikasinya. Kabar baiknya adalah bahwa ini adalah serangan yang agak rumit untuk dieksekusi — orang jahat harus memikirkannya, sebelum Anda melakukan chmod . Kabar buruknya adalah serangan ini sangat sulit untuk dilawan— chmod rekursif tidak akan membantu.
__________
dan, tentu saja, pengguna istimewa / proses

P.S. Anda dapat mempersingkat perintah Anda sedikit:chmod go= setara dengan chmod g=,o= . (Itu tidak akan membuat chmod rekursif lebih cepat, tentu saja.)


Linux
  1. Linux ext4 mengembalikan hak akses file dan direktori setelah backup/restore yang buruk

  2. Batasi akses file untuk menambahkan saja

  3. mengganti nama folder besar:apakah berisiko?

  1. Perlu memperbaiki izin file di direktori home pengguna

  2. Batasi Ukuran Direktori

  3. PSCP:Unggah seluruh folder, Windows ke Linux

  1. Kesalahan Akses ditolak membutuhkan hak PROSES [MySQL]

  2. Statistik Rekursif Pada Jenis File Di Direktori?

  3. Apakah Oracle DBA saya memerlukan akses root?