【问题标题】:How to enable a cgi-perl-script to do things with root-authorization?如何启用 cgi-perl-script 以 root 授权执行操作?
【发布时间】:2012-05-03 05:40:19
【问题描述】:

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

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

[timestring] [error] [client n.n.n.n] mv: cannot move oldFilename to newFilename: Permission拒绝,推荐人:推荐人

文件名的所有者是root,权限设置为0644(所有人都可以读,只有root可以写)

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

【问题讨论】:

    标签: perl cgi authorization


    【解决方案1】:

    这不正是 Unix 小组想要解决的问题吗?将文件权限设置为0664,将目录权限设置为0775,并将文件和目录分配给webserver用户所属的组。

    【讨论】:

    • 你不一定想让他把系统中的所有目录都改成0775,把所有文件改成0664,对吧?
    【解决方案2】:

    不要忽视安全性。使用sudo

    【讨论】:

      【解决方案3】:

      我维护一个带有 html 页面和 Java 脚本的 Perl 网站。所有程序文件均受根所有权保护。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-16
        • 1970-01-01
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        • 1970-01-01
        • 2018-01-13
        • 2023-03-07
        相关资源
        最近更新 更多