Izin pencarian pada setiap direktori sebelum kunci
Sebuah kunci bisa 0600 dan tetap menolak dibuka ketika direktori induk memblokir penelusuran. Telusuri seluruh jalur sebagai akun layanan sebelum mengubah mode apa pun.
Mode 0600 dan pemilik yang benar tidak menjamin layanan dapat membuka kunci. Izin yang hilang biasanya ada pada direktori di atasnya. Linux menyelesaikan jalur satu komponen setiap kali, dan setiap langkah memerlukan izin pencarian sebelum langkah berikutnya dicoba. Baca seluruh jalur, bukan baris terakhir dari daftar.
Izin baca adalah langkah terakhir, bukan satu-satunya
Membuka file mengharuskan kernel menelusuri dari akar atau direktori kerja melalui setiap komponen jalur. Direktori tanpa izin pencarian menghentikan penelusuran itu dengan kesalahan izin. Mode file itu sendiri tidak pernah diperiksa, sehingga kunci yang sepenuhnya dapat dibaca tampak tidak dapat dibaca. Kesalahan sering muncul saat membuka tanpa menyebut direktori, karena itu file terakhir yang disalahkan.
Untuk direktori, bit eksekusi berarti pencarian, bukan menjalankan isinya. Kunci tetap berupa data, dan tidak ada bagian dari perbaikan ini yang mengharuskan menandainya sebagai dapat dieksekusi.
Telusuri jalur sebagai akun layanan
Daftar setiap komponen beserta pemilik dan modenya, lalu ulangi pembacaan sebagai identitas layanan yang sebenarnya. Perbedaan antara shell Anda dan daemon sering kali merupakan seluruh jawabannya. Ikuti tautan simbolik ke target sebenarnya, karena jalur yang terselesaikan 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
Layanan juga dapat membuka file dalam lebih dari satu fase. Sebagian materi dibaca selama penyiapan berhak istimewa, sementara file lain dibuka setelah hak istimewa dilepas. Shell root yang membaca file tidak mereproduksi akses pekerja yang lebih belakangan. Ruang nama pemasangan dapat menampilkan tampilan berbeda dari jalur yang sama, terutama di dalam kontainer, jadi bandingkan tampilan sistem file daemon dengan milik Anda.
Ubah izin tersempit yang sesuai
Pilih pengaturan terkecil yang memberi proses akses: grup terkendali dengan pencarian pada direktori yang diperlukan, lokasi terkelola yang sudah dimiliki layanan, atau mekanisme lain yang terdokumentasi. Membaca file tidak memerlukan izin tulis pada direktorinya. Izin tulis grup yang luas pada konfigurasi berhak istimewa bukan perbaikan penelusuran yang normal. 0777 rekursif juga bukan solusi.
Catat komponen mana yang Anda ubah dan mengapa. Perubahan izin tanpa alasan tercatat sulit ditinjau dan mudah terlupakan.
Lihat melampaui mode hanya setelah penelusuran
Jika bit mode tampak cukup, pemeriksaan yang tersisa adalah ACL, kebijakan keamanan, dan pembatasan sandbox. ACL dapat memberikan akses yang menurut bit mode tidak ada, atau menolak akses yang tampaknya diizinkan. Pengaturan itu milik pemilik konfigurasi yang ada, dan harus disesuaikan secara sempit alih-alih dimatikan. Perbedaan akar atau direktori kerja juga dapat menjelaskan jalur absolut yang berfungsi dalam satu konteks dan gagal dalam konteks lain.
Jangan kehilangan gambaran tentang apa itu file saat memperbaiki akses. Sertifikat CA bersifat publik secara desain; kunci privat tidak. File yang ditulis ulang klien juga memerlukan hak tulis berbeda dari kunci identitas yang hanya-baca. Periksa metadata tanpa mencetak rahasia, lalu pastikan layanan itu sendiri berfungsi setelah perubahan. Catatan singkat dalam dokumentasi layanan menghemat penelusuran yang sama bagi orang berikutnya.