簡體   English   中英

無法使用PHP和bash腳本刪除Linux用戶

[英]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');

這兩個文件都在同一目錄中。

可能是什么問題呢?

  1. del_user.sh不帶參數,因此您可以對腳本中的任何硬編碼用戶運行腳本。 除非您修改腳本以允許命令行參數,否則它將無法正常工作。
  2. 盡管可以通過PHP完成此任務,但它當然不是主要功能,應該委托給更合適的應用程序。

順便說一句,您尚未說明目標是什么或該腳本應該執行的操作。 這是某個用戶管理應用程序的一部分,還是僅僅是完成一些小任務?

答:要啟用此功能,您必須使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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM