【问题标题】:Running SH script with sudo for PHPdoc使用 sudo 为 PHPdoc 运行 SH 脚本
【发布时间】:2009-08-30 11:11:55
【问题描述】:

如何在 PHPdoc 生成文档时运行以下脚本?

#1 sudo -code

sudo source makedoc.sh

我明白了

no command source

#2 没有 sudo

问题是sudo 没有命令source。 我试图通过将 ~/phpdoc/phpdoc 的权限更改为 777 然后运行来解决问题,但未成功

source makedoc.sh

我明白了

makedoc.sh:90: permission denied: /home/masi/phpdoc/phpdoc

#3 没有 sudo

我跑

 phpdoc -c makedoc.sh

我明白了

codes master $ phpdoc -c makedoc.sh
PHP Version 5.2.6-3ubuntu4.2
phpDocumentor version 1.4.2

Parsing configuration file phpDocumentor.ini...
   (found in /usr/share/php/data/PhpDocumentor/)...

done
Maximum memory usage set at 256M after considering php.ini...
using tokenizer Parser
a target directory must be specified
 try phpdoc -h

【问题讨论】:

    标签: php permissions sudo phpdoc


    【解决方案1】:

    文件 makedoc.sh 是否有一个 shebang 行(例如 !#/usr/bin/bash),因此可以使其可执行?

    chmod +x makedoc.sh
    

    那么

    sudo ./makedoc.sh

    看看会发生什么。

    ./ 表示在当前目录运行 makedoc.sh (它应该修复文件未找到错误)

    授予 777 权限允许任何人读取、写入或执行文件。这就是 Mike Arthur 提到的安全风险。这可能会带来更大的潜在风险,但让他人轻松修改、删除或执行您的文件绝不是一种好习惯。

    【讨论】:

    • 它有 shebang #!/bin/bash
    【解决方案2】:

    sudo source 没有什么意义,您正在以 root 用户身份创建一个新的 shell,然后尝试更改环境,然后该环境将被 root shell 销毁。

    另外,只有当你想在当前 shell 中改变你的环境时才使用源代码,我很确定你不想使用名为“makedoc.sh”的东西。

    你可能只想跑:

    sudo makedoc.sh
    

    另外,永远不要将事情设置为 777,这绝不是问题的解决方案,而且存在安全风险。

    【讨论】:

    • 我在运行你的最后一个命令后得到sudo: makedoc.sh: command not found。 --- 假设该文件夹仅包含权限为 777 的垃圾。这怎么会有安全风险?
    • 那么你需要直接指向makedoc.sh脚本,不管它在哪里。我查看了您的源代码,您不需要运行“源代码”,只需 sudo。 777 是一个安全风险,因为这意味着任何用户都可以写入该目录,除非它是自己的,否则它自己的分区(如 /tmp 应该是)他们可以填满你的驱动器。
    【解决方案3】:

    makedocs.sh 存在的一个原因是当你总是想重用相同的运行时设置时,它是一个方便的 shell 脚本。这不是 一般情况下运行phpDocumentor的方式

    如果您尝试简单地针对您自己的代码运行 phpDocumentor 以便为其创建文档,那么您需要编辑 makedocs.sh 以将所有运行时参数设置为您想要的。特别是,-t 参数指定应该写入文档的 target 位置。

    真的,没有必要使用 sudo 来执行 phpdoc,除非您尝试将生成的文档直接写入系统范围的 PEAR 安装的“doc_dir”位置。在这种情况下,由于 root 拥有 PEAR,因此需要 sudo。也许您的需求要求将您的文档写入该位置?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      • 2021-06-27
      • 2018-10-23
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      相关资源
      最近更新 更多