我需要从远程计算机调用一个PHP脚本,它将调用远程服务器来更改DNS记录。这可能吗?我在测试环境中一切正常,但PHP无权访问/var/namdd/mydomain.com.db
。这是我的一个VPS,我有root访问权限,所以访问不成问题。我只是想让脚本为我做。有任何想法吗?具有root权限的PHP脚本?
回答
假设其他服务器正在运行BIND,这些文件可能由named命名,而不是root。将是一个更简单的选择。此外,你可以让他们777,然后让PHP简单地编辑它们。
更改权限以便PHP可以编辑它们可能是个好主意,但777几乎不是一个好主意。 – icktoofay
他们拥有我的'命名'。我担心把它们设置为777,认为它可能会让其他事情混乱起来。 Cpanel通常会编辑它们。我会试试看,最坏的情况是我将权限设置恢复正常。 –
我知道777永远不是好主意,但它是一个域名。我有一台服务器在家里,这将调用一个PHP脚本,如果我的家庭IP更改PHP脚本将编辑DNS并重新启动命名。我的托管服务器有DNS,因为我想保留邮件(MX记录),以防我的家庭服务器出问题,我不会放弃电子邮件。几乎只是一个开发设置。没有关键。 –
三种方式立刻浮现在脑海:
- 更改文件的权限。
- 创建一个守护进程来完成它。
- 创建一个命令,并配置
sudo
无需密码即可运行它。
更改文件
最简单的情况是改变文件的权限权限。要做到这一点,你可能至少要知道
- 用户读取文件,并
- 你的PHP脚本运行的用户。
如果用户相同,那么答案当然很简单:将所有者更改为该用户。否则,如果文件不包含敏感信息,则可以将所有者更改为PHP用户,并授予所有用户的读取权限。最后,您可能能够创建一个包含这两个用户的新组,并更改该文件的组。然后,您可以将该文件的用户更改为PHP用户并授予写入权限,将该组更改为您创建的组并授予读取权限,并且不授予其他任何人。
创建一个后台程序来完成它
这是相当复杂的;我不能说我会推荐这个选项。从本质上讲,你有一个后台进程以任何必要的权限运行。这个过程可以完成任何需要完成的任务,并与较低特权的进程进行通信。当PHP脚本需要修改该文件时,它可以将请求发送到守护程序,然后可以代表PHP脚本更改该文件。
命令与sudo
这可能是做到这一点的最佳途径之一。从本质上讲,你需要创建一些命令来执行你需要的文件。那么一旦你知道它运行在root
(或者最好是一些权限较低的用户仍然拥有必要的权限)时,你可以配置sudo
让PHP用户以没有密码的更多特权用户身份执行它。
- 1. bash脚本可能需要root权限
- 2. NMAP没有root权限的EXEC()PHP
- 3. 如何使用PHP的root权限运行shell脚本?
- 4. “sudo:必须是setuid root”但已具有root权限和's'权限
- 5. php apache root写入权限
- 6. 允许PHP使用root权限执行bash脚本
- 7. PHP库oci8.so没有root权限
- 8. 对命令有选择性root权限的Bash脚本
- 9. 重新加载没有root权限的django wsgi脚本
- 10. 没有root权限的mysqlworkbench
- 11. 没有root权限的Mysql
- 12. 使用root权限从python脚本调用shell脚本
- 13. 即使_www具有root权限,php exec也会失败
- 14. 本地安装pip(没有root权限)
- 15. PHP脚本/目录有什么权限?
- 16. mysql root @ localhost没有权限
- 17. 我该如何运行需要root权限的perl脚本?
- 18. 如何在脚本中执行需要root权限的命令?
- 19. 删除root权限
- 20. 的mkdir权限被拒绝PHP脚本
- 21. 具有root权限的Mac网络服务器?
- 22. RVM不CentOS的没有root权限
- 23. 安装没有root权限的zsh?
- 24. 安装没有root权限的pygobject
- 25. 文件权限,root bash脚本,用户编辑
- 26. 如何在Linux中使用root权限运行脚本
- 27. 如何确定shell脚本是否以root权限运行?
- 28. 权限问题,无法以root身份运行脚本
- 29. 具有权限结构的PHP网站
- 30. 获得iOS的root权限
几种可能性:1.更改权限,因此您不需要“root”权限; 2。创建一个PHP文件可以与之通信的守护进程,其唯一目的是修改该记录; 3.创建一个修改DNS记录的命令,并配置'sudo'以允许PHP用户在没有密码的情况下运行该命令(并且只有该命令)。 – icktoofay