PHP-发现是否存在Debian包
我希望能够发现我们的生产服务器上是否安装了Debian软件包,其功能应该与之类似PHP-发现是否存在Debian包,php,linux,unix,package,Php,Linux,Unix,Package,我希望能够发现我们的生产服务器上是否安装了Debian软件包,其功能应该与之类似 有人能推荐一种方法吗?我只能假设我应该使用exec()并解析'command not found'的返回值,但我想知道是否有更安全/更好的选项。如果您有执行权限,则可以使用以下选项之一: whereis packagename apt-cache policy packagename 您可以为此编写一个简单的API。它应该执行如下操作: 让php将想要的包写入xml文件、文本文件或数据库,以及任何可以通过sh
有人能推荐一种方法吗?我只能假设我应该使用
exec()
并解析'command not found'的返回值,但我想知道是否有更安全/更好的选项。如果您有执行权限,则可以使用以下选项之一:
whereis packagename
apt-cache policy packagename
您可以为此编写一个简单的API。它应该执行如下操作:
- 让php将想要的包写入xml文件、文本文件或数据库,以及任何可以通过shell应用程序、perl应用程序或其他任何程序读取的内容
- 在服务器级别,读取文件、数据库,检查包是否存在,并在输出文件、数据库表或其他任何内容中返回值
- 用php读取输出文件并向用户显示
上述建议解决方案的缺点是需要一些时间,例如,您无法实时检查软件包的可用性。如果这实际上是强制性的,那么您可以编写一个php脚本,该脚本不接受任何输入,而是从数据库或文本文件中读取应该检查的包,其中的值已经过广泛的测试,例如使用正则表达式。通过这种方式,您可以确定恶意用户无法插入shell命令。在这种情况下,我确实可以访问
exec
,我喜欢使用where is
来代替我的方法,如果有人以某种方式检查是否关闭-h0
存在,服务器将死亡!谢谢非常感谢您的回答,这当然是一个有效的方法,但在这种情况下,最好立即回复+1.