Alat pengembang · Kalkulator Chmod
Menemukan file yang dapat ditulis dunia dan binari setuid dengan find -perm
· Mengapa itu penting
chmod unix kontrol akses
Ada dua pola izin yang menyebabkan banyak kejadian nyata: file yang dapat diubah oleh siapa pun dan program yang dijalankan sebagai root. Posting ini menunjukkan cara menemukan keduanya dengan find -perm dan apa yang harus dilakukan terhadap keduanya.
Peninjau meminta daftar yang tidak Anda miliki — file mana yang dapat dimodifikasi oleh pengguna mana pun, dan program mana yang meningkatkan hak istimewa saat dijalankan
Peninjauan izin sering kali dimulai dengan mode yang sudah dikumpulkan di tempat lain: mungkin 0002, 4000, 2000, atau nilai lengkap seperti 4755. Kalkulator dapat memecahkan kode angka-angka tersebut menjadi pemilik, grup, dan izin lainnya, termasuk tiga bit khusus. Itu tidak mencari direktori, memeriksa biner, atau membuat inventarisasi jalur.
Perlakukan setiap mode yang disediakan sebagai deskripsi bit, bukan keputusan tentang suatu file. Masukkan, bandingkan bidang oktal dengan tampilan simbolik dan matriks kotak centang, lalu catat apa yang berubah. Kepemilikan, entri ACL, kemampuan, dan identitas proses apa pun yang menggunakan jalur tersebut tetap menjadi fakta yang dapat dikumpulkan dari lingkungan sebenarnya.
Dapat ditulis dunia berarti kelas lain memiliki w — pola oktal 0002 dan mengapa -perm -0002 menemukannya terlepas dari bit lainnya
Nilai 0002 mengisolasi bit tulis lainnya. Dalam tata letak tiga kelas biasa, digit terakhir adalah milik semua orang di luar kelas pemilik dan grup, dan komponen penulisannya memiliki bobot 2. Oleh karena itu, mode lengkap yang berisi bit tersebut akan menampilkan w di kelas lain, meskipun kalkulator tidak menemukan mode tersebut sendiri.
Apakah ekspresi find tertentu berarti pencocokan persis, semua bit, atau bit apa pun adalah milik dokumentasi find, bukan konverter ini. Sediakan mode hasil sebagai gantinya. Misalnya, 0666 menjadi rw-rw-rw-, sedangkan 0644 menjadi rw-r--r--; perbedaannya terlihat pada grup dan posisi tulis lainnya tanpa menyiratkan bahwa mode mana pun sesuai dengan jalur tertentu.
0002 memperlihatkan bit penulisan lainnya; temukan semantik yang cocok bersifat eksternal
Digit bit khusus terdepan menggunakan 4 untuk setuid dan 2 untuk setgid. Jadi 4755 menggabungkan setuid dengan izin 755 biasa, sementara 2755 menggabungkan setgid dengan bit tambahan yang sama. Kalkulator mengekspos topeng tersebut secara terpisah dan menempatkan huruf simbolisnya di posisi eksekusi pemilik atau grup saat merender mode penuh.
Kasus ini membawa bukti yang berguna. Jika setuid menyertai eksekusi pemilik, posisi eksekusi pemilik menampilkan s; tanpa mengeksekusinya akan menampilkan S. Setgid mengikuti aturan yang sama di posisi grup. Output ini mendekode bilangan bulat yang disediakan, namun tidak memeriksa program, menentukan pemiliknya, menjalankannya, atau memutuskan apakah bit khusus dapat dibenarkan.
4000 dan 2000 didekode sebagai setuid dan setgid tanpa mengaudit biner
Sintaks pencarian izin harus dipisahkan dari aritmatika izin. Kalkulator menerima mode simbolik oktal atau sembilan karakter dan mengembalikan satu nilai dua belas bit. Ia tidak memiliki representasi untuk operator pencarian, predikat jalur, atau aturan pencocokan, sehingga kueri mode tepat dan kueri semua bit yang diperlukan tidak dapat dibedakan di dalam antarmuka ini.
Decode mode dari setiap hasil pencarian eksternal daripada menempelkan ekspresi pencarian. Tiga digit biasa dipetakan ke pemilik, grup, dan lainnya, sedangkan digit terdepan opsional dipetakan ke setuid, setgid, dan lengket. Alur kerja ini memverifikasi bit yang dilaporkan tetapi menyerahkan cakupan pencarian dan semantik yang cocok ke alat yang menghasilkan daftar.
Mode pencarian yang tepat, semua-bit, dan apa pun memerlukan dokumentasi pencarian
Misalkan audit dilakukan di tempat lain laporan 0666 dan 4755. Memasukkan 0666 menghasilkan rw-rw-rw-, membuat tulisan lain terlihat di triple terakhir. Memasukkan 4755 menghasilkan rwsr-xr-x: pemilik telah membaca, menulis, dan mengeksekusi, dan setuid mengganti karakter eksekusi pemilik dengan huruf kecil karena bit eksekusi tersebut ada.
Pukulan kedua seperti 4644 menunjukkan mengapa bentuk simbolik itu penting. Itu membuat rwSr--r--, dengan huruf kapital S menunjukkan setuid sementara eksekusi pemilik tidak ada. Kalkulator dapat membuat ketidakkonsistenan itu terlihat jelas. Ia masih tidak dapat mengidentifikasi jalurnya, menentukan siapa pemiliknya, memeriksa isinya, atau merekomendasikan penghapusan bit tersebut.
Contoh praktis: mendekode hasil audit yang disediakan tanpa jalur pemindaian
Jangan perbaiki setiap mode yang tidak biasa secara otomatis. Modus hanyalah salah satu masukan untuk suatu keputusan yang juga bergantung pada target, pemilik, grup, dan operasi yang diperlukan. Halaman tersebut sengaja tidak menerima konteks tersebut. Pratinjau perintahnya adalah teks inert, dan bahkan jalur yang dikutip dengan benar tidak dibuka atau diperiksa oleh browser.
Sebelum mengubah mode yang dilaporkan, bandingkan nilai saat ini dan nilai yang diusulkan sedikit demi sedikit. Menghapus tulisan lain dari 0666 menghasilkan 0664; menghapus setuid dari 4755 menghasilkan 0755. Fakta aritmatika tersebut dapat direproduksi, namun apakah perubahan tersebut dapat mempertahankan beban kerja memerlukan bukti lokal di luar kalkulator dan di luar panduan bit biasa artikel 501.
Pengecualian dan remediasi memerlukan kepemilikan lokal dan bukti beban kerja
Beberapa dimensi audit yang relevan tidak ada. Rute tidak menanyakan entri ACL, kemampuan file, kepemilikan, komponen jalur yang dapat ditulis, perilaku pemasangan, atau kebijakan wajib. Itu juga tidak menjalankan pencarian, pemeriksaan PATH, atau melintasi penyimpanan. Oleh karena itu, konversi yang bersih hanya menyatakan bahwa angka yang diberikan dan huruf yang ditampilkan sesuai.
Jaga agar batasan tersebut tetap terlihat dalam laporan apa pun. Catat jalur dan metode pengumpulan di samping mode yang didekodekan, lalu selidiki identitas dan mekanisme akses tambahan dengan alat eksternal yang sesuai. Kalkulator berguna sebagai pemeriksa notasi karena menolak digit oktal yang tidak valid dan menampilkan bit khusus; ini bukan pemindai sistem file atau mesin remediasi.
Kesimpulan: ketahui file Anda yang dapat ditulis dan diistimewakan — dan gunakan kalkulator Chmod untuk menerjemahkan setiap mode mencurigakan sebelum Anda mengubahnya
Audit izin yang berguna memisahkan penemuan dari interpretasi. Biarkan proses eksternal yang terdokumentasi mengumpulkan jalur kandidat, lalu gunakan kalkulator untuk menerjemahkan setiap mode yang dikembalikan ke izin kelas eksplisit. Periksa digit bit khusus opsional dengan cermat seperti tiga digit di belakangnya, karena 0755, 2755, dan 4755 berbagi izin biasa tetapi menjelaskan nilai dua belas bit yang berbeda.
Akhiri dengan kesimpulan sempit: pemilik, grup, lainnya, dan bit khusus mana yang terdapat dalam mode yang disediakan. Jangan mengubah perhitungan tersebut menjadi klaim yang tidak didukung mengenai paparan atau kebijakan yang diperlukan. Kalkulator membantu pengulas membaca mode mencurigakan secara akurat; sistem langsung harus memberikan bukti kepemilikan, beban kerja, dan penegakan hukum sebelum ada yang mengubahnya.