[英]Unable to delete Linux user using PHP and bash script
我可以使用./del_user.sh
命令直接從外殼中刪除Linux用戶
del_user.sh如下
#!/bin/sh
userdel username
當我從PHP頁面運行此腳本時,它不起作用。
echo shell_exec('./del_user.sh');
這兩個文件都在同一目錄中。
可能是什么問題呢?
順便說一句,您尚未說明目標是什么或該腳本應該執行的操作。 這是某個用戶管理應用程序的一部分,還是僅僅是完成一些小任務?
答:要啟用此功能,您必須使Apache具有sudo的功能,以便它可以獲得臨時提出的特權。 您可能需要根據自己的操作系統對如何執行此操作進行一些谷歌搜索,但是此鏈接提供了有關如何在Ubuntu中執行此操作的一些指導: Ubuntu論壇
我也建議不要使用bash腳本,因為這樣做並非真正必要。 您可以使用接受命令行參數的PHP腳本。 因此,在您的主腳本中,您可能會遇到這樣的事情: shell_exec('php /path/to/del_user.php username');
然后在del_user.php中,您將擁有類似於shell_exec('userdel '.$argv[1]);
。 有關命令行參數的更多信息,請參見: $ argv
最后,您可以將其直接放入主腳本中,而不必兩次使用shell_exec。 換句話說,只需使用shell_exec('userdel '.$username);
而不是調用腳本。 由於Apache將能夠sudo,因此它應該能夠直接執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.