让 PHP 安全地编译 ant 发行版



在CentOS上,我想授予apache用户在它不拥有的主目录上"ant release"的权限。我该怎么做?我使用的ant release是android SDK的一部分-我有一个目录/home/myuser/android_project/ant relase从那里运行得很好,但我想给apache运行它所需的权限,这样我就可以作为运行

<?php  shell_exec('/home/myuser/android_project/ant release') ?>. 

抓住

还有一个问题,因为我签署了ant release,我希望在一个文件中处理密码,也许php可以神奇地"签署"ant release

现在。

注:对Mr Tinker:小心——我知道这可能会与论坛主题警察发生冲突,但在我深思熟虑后认为这是unix issue。我知道PHP是如何执行shell_exec的,我不需要编程帮助。我知道如何手动运行ant release,所以我不需要安装帮助:我想在linux(CentOS服务器)中将这两个完全不同的手动"东西"缝合在一起,所以我相信这100%是unix问题

如前所述,您需要授予apache用户执行/home/myuser/android_project/ant文件的权限。

tl;dr:运行以下命令(请注意,这可能不是世界上最安全的东西):

chmod 777 /home/myuser/android_project/ant

如果您对这可能解决问题的原因感兴趣,请继续阅读下面的内容。

首先,你需要获得更多的信息。运行以下命令:

ls -l /home/myuser/android_project/ant

ls -l命令将为您提供指定文件的读取、写入和执行权限,以及所有权信息。第一列包含权限信息。第3列表示拥有用户,第4列表示拥有组。

例如:

$ ls -l /etc/passwd
-rw-r--r--. 1 root root 2177 Aug 26 21:23 /etc/passwd
^^^
|----------- All Users & Groups
^^^
|-------------- Specified Group Owner
^^^
|------------------ Specified User Owner

这可以解释为用户root和组root拥有/etc/passwd文件。权限以3个rwx字符为一组读取。第一组用于拥有用户,第二组用于拥有组,第三组用于系统中的其他所有人。本例中的权限意味着根用户可以读取和写入文件,根组可以读取,其他所有人都可以读取。

现在,每组权限可以表示为一个八进制数字:

--- == 0
--x == 1
-w- == 2
-wx == 3
r-- == 4
r-x == 5
rw- == 6
rwx == 7

您现在有足够的信息来理解上面的chmod 777命令工作的原因。基本上,您已经授予系统中每个人读取、写入和执行ant文件的权限。

理想情况下,您只需要提供允许apache执行该文件所需的最低权限,我将把这部分留给读者练习。

最新更新