Mod 0600 dan pemilik yang betul tidak menjamin perkhidmatan boleh membuka kunci. Kebenaran yang hilang biasanya terdapat pada direktori di atasnya. Linux menyelesaikan laluan satu komponen pada satu masa, dan setiap langkah memerlukan kebenaran carian sebelum langkah seterusnya dicuba. Baca seluruh laluan, bukan baris terakhir penyenaraian.

Kebenaran baca ialah langkah terakhir, bukan satu-satunya

Membuka fail memerlukan kernel menelusuri dari akar atau direktori kerja melalui setiap komponen laluan. Direktori tanpa kebenaran carian menghentikan penelusuran itu dengan ralat kebenaran. Mod fail itu sendiri tidak pernah diperiksa, jadi kunci yang boleh dibaca sepenuhnya kelihatan tidak boleh dibaca. Ralat sering muncul semasa membuka tanpa menamakan direktori, sebab itu fail terakhir disalahkan.

Bagi direktori, bit laksana bermaksud carian, bukan melaksanakan kandungannya. Kunci kekal sebagai data, dan tiada bahagian pembaikan ini memerlukan ia ditanda boleh laksana.

Telusuri laluan sebagai akaun perkhidmatan

Senaraikan setiap komponen dengan pemilik dan modnya, kemudian ulangi pembacaan sebagai identiti sebenar perkhidmatan. Perbezaan antara shell anda dan daemon selalunya ialah seluruh jawapan. Ikuti pautan simbolik ke sasaran sebenar, kerana laluan yang diselesaikan itulah yang diperiksa.

namei -l /etc/openvpn/client/office.key
sudo -u vpn-reader stat -c '%A %U:%G %n' /etc/openvpn/client/office.key

Perkhidmatan juga boleh membuka fail dalam lebih daripada satu fasa. Sebahagian bahan dibaca semasa persediaan istimewa, manakala fail lain dibuka selepas keistimewaan dilepaskan. Shell root yang membaca fail itu tidak menghasilkan semula akses pekerja yang lebih kemudian. Ruang nama lekap boleh memaparkan pandangan berbeza bagi laluan yang sama, terutamanya dalam kontena, jadi bandingkan pandangan sistem fail daemon dengan pandangan anda.

Tukar kebenaran tersempit yang sesuai

Pilih susunan terkecil yang memberi proses akses: kumpulan terkawal dengan carian pada direktori yang diperlukan, lokasi terurus yang sudah dimiliki perkhidmatan, atau mekanisme lain yang didokumenkan. Membaca fail tidak memerlukan kebenaran tulis pada direktorinya. Kebenaran tulis kumpulan yang luas pada konfigurasi istimewa bukan pembaikan penelusuran biasa. 0777 rekursif juga bukan penyelesaian.

Catat komponen mana yang anda ubah dan mengapa. Perubahan kebenaran tanpa sebab tercatat sukar disemak dan mudah dilupakan.

Lihat melepasi mod hanya selepas penelusuran

Jika bit mod kelihatan mencukupi, pemeriksaan yang tinggal ialah ACL, dasar keselamatan dan sekatan sandbox. ACL boleh memberikan akses yang bit mod cadangkan tiada, atau menafikan akses yang kelihatan dibenarkannya. Tetapan itu milik pemilik konfigurasi sedia ada, dan ia harus dilaraskan secara sempit dan bukan dimatikan. Perbezaan akar atau direktori kerja juga boleh menjelaskan laluan mutlak yang berfungsi dalam satu konteks dan gagal dalam konteks lain.

Jangan hilang gambaran tentang apa itu fail semasa membaiki akses. Sijil CA bersifat awam dari segi reka bentuk; kunci peribadi tidak. Fail yang ditulis semula oleh klien juga memerlukan hak tulis berbeza daripada kunci identiti yang hanya-baca. Periksa metadata tanpa mencetak rahsia, kemudian pastikan perkhidmatan itu sendiri berfungsi selepas perubahan. Catatan ringkas dalam dokumentasi perkhidmatan menjimatkan penelusuran yang sama kepada orang seterusnya.

Artikel berkaitan