如何使用root权限启用cgi-perl脚本?

时间:2012-05-02 16:59:22

标签: perl cgi authorization

我是我自己的网络服务器的根,我确实编写了一个perl脚本来维护我的网站。从浏览器调用此脚本显示用于维护的用户界面。为了能够从我的浏览器启动这个脚本,我必须输入用户名和密码,所以除了我之外没人能运行这个脚本。

我希望当我点击相应按钮时,此脚本会重命名服务器上的某些文件。从perl脚本我调用shell命令`mv oldFilename newFilename`,但没有任何反应。 Apache的错误日志显示以下消息:

  

[ timestring ] [error] [client nnnn ] mv:无法将 oldFilename 移动到 newFilename :权限否认,引用者:推荐人

filename 的所有者是root,权限设置为0644(每个人都可以读取,只有root可以写)

这个问题的最佳解决方案是什么?有没有比将文件权限更改为0666更好的方法?我想避免更改权限。我会优先考虑一个解决方案,其中perl-script对shell说:“亲爱的shell,这是root的密码。现在请将文件X重命名为Y!

3 个答案:

答案 0 :(得分:4)

这不是Unix组要解决的确切问题吗?将文件权限设置为0664,将目录权限设置为0775,并将文件和目录分配给Web服务器用户所属的组。

答案 1 :(得分:1)

不要忽视安全性。使用sudo

答案 2 :(得分:0)

我维护一个包含html页面和Java脚本的Perl网站。所有程序文件都受root权限保护。

即使您通过网站上的用户名和密码限制对此程序的访问,root也应该拥有程序chown root:root <full-path-to-your-program-name>,程序文件应该受到保护chmod 755 <full-path-to-your-program-name>