在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问题
答案 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执行文件所需的最低权限,我将把这些作为练习留给读者。