让PHP安全地编译ant版本

时间:2014-01-06 17:23:18

标签: centos security compilation apache

在CentOS上我想授予apache用户对主目录“ant release”的权限,它不拥有我该怎么做?我正在使用的ant release作为Android SDK的一部分 - 我有一个目录/home/myuser/android_project/ant relase从那里运行良好但我想给apache权限它需要运行它,所以我可以像

一样运行
<?php  shell_exec('/home/myuser/android_project/ant release') ?>. 

the gotcha

此外还有一个问题,因为我签署了ant release我想要在一个文件中处理密码,这个文件可以在某种程度上神奇地“签署”ant release

现在

注意:到Mr Tinker:抓住马 - 我知道这可能会与论坛主题警察发生冲突,但我认为这是unix issue。即我知道PHP如何执行shell_exec我不需要编程帮助。我知道如何手动运行ant release所以我不需要安装帮助:我想在linux(CentOS服务器)中将这两个不同的手册“东西”缝合在一起,所以我相信100%这是一个unix问题

1 个答案:

答案 0 :(得分:0)

正如您已经说过的,您需要授予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

这可以解释为拥有/etc/passwd文件的用户root和组root。 权限被读取为3个rwx个字符的组。第一组是拥有用户,第二组是拥有组,第三组是系统中的其他人。此示例中的权限表示root用户可以读取和写入文件,root组可以读取,其他人都可以读取。

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

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

您现在有足够的信息来理解上述chmod 777命令的工作原理。基本上,您将为系统上的每个人提供读取,写入和执行该ant文件的权限。

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