背景:我正在为允许用户通过Web界面创建FTP帐户的公司编写脚本。在此背景下,脚本必须运行一串命令:通过PHP/Perl脚本在Linux上作为特权用户运行命令
- 将用户添加到系统(useradd的)
- 打开并编辑各种文件
- 邮件通过sendmail的用户
和其他一些东西...
我基本上是寻找最安全的这样做的方式。我听说过setuid方法,sudo方法,当然还有,运行httpd作为priviledged用户。在执行任何命令之前,将对输入的数据进行健全性检查(即,仅用户名中的字母数字字符)
流行脚本(例如webmin)使用什么方法,因为它必须是相当安全?
与此唯一的问题是:1)我需要立即创建帐户,我不能等待cron的......这将导致2)我不想每分钟运行一次cron,不会给服务器带来很大的压力吗? – jtd 2010-05-12 20:45:05
这就是为什么另一种选择是编写监视队列并立即执行操作的守护进程(后台进程)的原因。只要你没有使用共享主机(这听起来像你不是,如果你添加用户),这可能是可行的。 – 2010-05-12 21:01:39
对,有很多方法可以去做。如果可以等待一分钟,每分钟cron都可以。它不会对服务器造成任何可观的负载 - 大部分时间,它只会看到队列是空的并退出。我可能会写一个守护进程,每隔一秒钟检查队列。出于您的目的,单进程,非线程守护进程就足够了。唯一的缺点是你现在需要确保守护进程总是运行 - 但这很容易解决。 – timdev 2010-05-12 21:06:01