Pada sistem Linux, apache berjalan sebagai pengguna www-data (lalai), dan kumpulan penggunanya juga www-data.
Tetapi saya dapati direktori log apache /var/log/apache milik root, dan kumpulan itu adm
www-data tidak mempunyai kebenaran menulis pada direktori log, dan ia bukan pengguna kumpulan adm malah tidak mempunyai kebenaran membaca.
Tetapi kami mendapati bahawa terdapat proses apache2 berjalan sebagai root, yang sepatutnya menjadi proses utama. Adakah log semua proses kanak-kanak mula-mula dihantar ke proses utama melalui komunikasi proses dan kemudian direkodkan? Atau adakah mekanisme lain?
Saya tidak mempunyai Apache httpd di sini, jadi saya menulis program sendiri dan mencubanya. Data masih boleh ditulis ke fail selepas
write
时是不检查权限的,也就是说只要日志文件打开成功了,那么再改变用户 ID(setuid
). Sudah tentu, dalam kes ini, bagaimana untuk membuka semula fail log adalah masalah. Lihat sahaja kod sumber Apache httpd. Satu jejak mudah mungkin mendedahkan sesuatu.