Bagaimana saya bisa membuat symlink ke direktori yang dimiliki oleh root yang dapat dibaca oleh apa saja?

1

Saya mencoba menyiapkan sertifikat aman mandiri menggunakan CertBot dan membuat tautan simbolis ( ./public/certbot ) dari server saya sehingga saya dapat memasukkan sertifikat tanpa sebenarnya berada di bawah pohon direktori server (ini adalah Linode yang saya gunakan untuk pengujian dan pengembangan, jadi saya akan menggunakan berbagai perangkat lunak server) Sertifikat berhasil diinstal di bawah /etc/letsencrypt/, dan seperti yang diperintahkan dalam dokumentasi CertBot , instalasi dilakukan menggunakan sudo, jadi semua file dimiliki oleh root. Saya telah mencoba semua yang saya bisa pikirkan untuk membuat symlink yang dapat dibaca server, tetapi saya terus mendapatkan kesalahan izin. Saat ini, file symlink, /etc/letsencrypt/live, folder domain, dan semua file di dalam folder domain telah sudo chmod ded ke 777, dan saya mencoba membuat file symlink tanpa sudo, tapi itu tidak membiarkan saya. Sebagai pengguna normal, saya bisa cd ke dalam file symlink dan ls folder domain tanpa sudo, jadi saya bisa melihat semuanya di sana, tetapi ketika saya memulai server saya (saat ini webpack-dev-server ), itu tidak memiliki izin. Pesan kesalahan dari server menunjukkan bahwa jalan sedang diselesaikan dengan benar (karena itu memberi saya kesalahan akses, bukan ENOENT ).

Saya juga sudah mencoba membuat yang nyata public/certbot folder dan masing-masing symlink ke file sertifikat, dengan kesalahan yang sama.

Harus ada sedikit celah dalam pengetahuan saya tentang izin Linux. Apakah ada jalan keluarnya? Terima kasih.

Holland Wilson
sumber

Jawaban:

0

sehingga saya dapat memasukkan sertifikat tanpa sebenarnya berada di bawah pohon direktori server

Sebagian besar perangkat lunak tidak memiliki persyaratan ini sejak awal, dan dapat mengakses sertifikat langsung dari `/ etc / letsencrypt / live saja.

Apakah masalah Anda saat ini disebabkan oleh izin file atau chroot, symlink ini tidak akan membantu sama sekali . Jika Anda memiliki cukup izin untuk mengikuti symlink ke / etc / letsencrypt / live / foo /privkey.pem, maka Anda juga memiliki cukup izin untuk mengakses file yang sama secara langsung.

Saat ini, file symlink, ...

Izin "file symlink" tidak relevan dan Anda tidak dapat mengubahnya di Linux. Mereka selalu dilaporkan sebagai "lrwxrwxrwx", tetapi hanya file target itu sendiri yang penting, bukan symlink ke sana.

... / etc / letsencrypt / live, folder domain, dan semua file di dalam folder domain, ...

Lihat file-file di bawah /etc/letsencrypt/live; perhatikan bahwa mereka sendiri adalah symlink ke direktori lain, archive. Direktori itu juga tidak dapat dibaca dunia secara default.

Menggunakan namei -l ./public/certbot/example.com/privkey.pem untuk dengan cepat melihat setiap komponen di jalur (termasuk resolusi symlink) dan izinnya.

... telah sudo di-chod ke 777.

Jangan mencoba "menyelesaikan" masalah izin dengan palu godam. Memberi semua orang menulis izin untuk folder itu sama sekali tidak perlu.

grawity
sumber