Linux 提供的外部執行的 API 有
system()
exec 系列
但有人說 system()少用,盡量用 fork()+exec,但我不解的是 system() 定義也是
fork+exec+wait
到底是為何要少用? 網路上所有的部落格都是複製這句話
"在編寫具有SUID/SGID許可權的程式時請勿使用system(),system()會繼承環境變
數,通過環境變數可能會造成系統安全的問題"
1 繼承環境變數?這是啥意思?有沒有範例證明他會繼承?
2 就算繼承了環境變數,有SUID權限的程式呼叫了 system() 又為何不安全了?
請多指教,謝謝。