Security
了解如何以受限使用者身份安全地執行腳本
我一直在建構這個(http://tryperl.com)來學習 linux。所以,我的問題只是一些我不完全了解的 *nix 東西。
我想做的一件事是以受限使用者身份執行生成的腳本(在我的應用程序中)。所以我創建了一個
limiteduser
. 然後我可以像這樣設置說分叉限制:limiteduser hard nproc 300
。這是執行腳本的正確方法
limiteduser
嗎:sudo -u limiteduser perl myscript.pl
其次,如果我有並發請求,使用不同的腳本同時分叉、執行和執行上述程式碼怎麼辦。這會引起問題嗎?我聽說它會,如果兩個程序在同一個使用者或什麼東西上執行?
具體來說,我在 ubuntu 上執行,但我認為這適用於任何 *nix 發行版?
更新:另外,如果腳本花費的時間太長,我計劃使用Time::Out來超時,所以理想情況下我應該執行有限數量的程序。
首先,sudo 是作為受限使用者執行腳本的好方法。
其次,同時執行多個腳本實例是否會出現問題將取決於腳本實際執行的操作。它(通常)與各種實例是否由同一使用者執行無關 - 相反,您需要考慮腳本是否嘗試編輯文件,在這種情況下,兩個實例可能會嘗試同時編輯同一個文件時間,這可能會使文件處於意外狀態。
此外,當然,如果您限制允許使用者執行多少程序,或者允許消耗多少記憶體,那麼在某些時候您可能會遇到限制並且腳本將無法執行您想要的操作. 但這是整個限制系統的一個特點。(如果你沒有限制,那麼一個寫得不好的程序可能會導致你的整個系統停止執行。但同樣,這是因為程序是如何編寫的,而不是因為誰執行它(除非你執行以 root 身份執行程序,那麼破壞東西就容易多了,這就是為什麼你有有限的使用者執行東西是件好事)。)