Linux 提供的外部执行的 API 有
system()
exec 系列
但有人说 system()少用,尽量用 fork()+exec,但我不解的是 system() 定义也是
fork+exec+wait
到底是为何要少用? 网络上所有的部落格都是复制这句话
"在编写具有SUID/SGID权限的程式时请勿使用system(),system()会继承环境变
数,通过环境变量可能会造成系统安全的问题"
1 继承环境变量?这是啥意思?有没有范例证明他会继承?
2 就算继承了环境变量,有SUID权限的程式呼叫了 system() 又为何不安全了?
请多指教,谢谢。