背景:我正在爲允許用戶通過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