2010-11-01 24 views
1

我已经做了一个简单的服务器管理脚本bash脚本,我无法确定如何在php页面内安全地运行它:我想创建一个php管理页面,但我显然不想硬编码根密码任何软件。让我们做出了榜样(这是一个富脚本,当然)通过php运行shell脚本(使用root权限)的最佳方式是什么?

#!/bin/bash 
touch /$1 

这个简单的/愚蠢的脚本将无法工作,如果谁运行它作为/没有写作权限的用户。
其实脚本中添加apache虚拟主机,ftp用户等等...... 有什么想法吗?
感谢

+1

这听起来不像你想从网页访问脚本调用的东西。 – 2010-11-02 00:07:21

+0

我会再次对Jason发出警告。除非脚本写得很细致,否则很可能会用它来做......意想不到的事情。举个例子,你的示例脚本可以用来在/ var/db/sudo中触摸密码验证文件,或者触摸多个文件(因为'$ 1'没有双引号,如果它包含空格,它将被视为多个“touch”的参数)。你的真实剧本可能要复杂得多,这意味着它可能会有更多的恶作剧机会。 – 2010-11-02 04:29:31

回答

3

使用

sudo /path/to/executable/file 

和设置sudo,因此它可以为当前用户为根执行以下命令。

- 这里是sudoers手册,配置文件,你必须修改。

zerkms ALL = (ALL) NOPASSWD: /sbin/iptables -L FORWARD -n -v -x 

这是我的/etc/sudoers的示例。在这里我允许运行命令/sbin/iptables -L FORWARD -n -v -x作为root而不要求用户的密码zerkms

+0

好吧,这是一个答案,没有办法没有sudo呢? – ArtoAle 2010-11-02 01:11:13

+0

@ArtoAle:无论如何,我不知道任何 – zerkms 2010-11-02 02:49:05

+0

谢谢,我会继续与sudo =) – ArtoAle 2010-11-03 10:19:11

相关问题