使用特定使用者從PHP 執行命令列應用程式
要從以www 使用者身分執行的PHP 腳本控制Rhythmbox 播放,請執行以下操作:至關重要的是應用程式以目標使用者而不是預設的www 使用者的身份執行。一種有效的解決方案是利用 sudo。
透過利用 sudo,PHP 腳本可以以提升的權限呼叫 Rhythmbox-client 指令。但是,為了確保僅允許特定命令,建議相應地配置 sudoers 檔案。例如:
wwwuser ALL=/usr/bin/rhythmbox-client
透過將 sudo 呼叫限制為特定命令,您可以保護您的環境並防止 Apache 執行任意命令。
在 Rhythmbox-client 可能難以執行的情況下確定要控制的正確實例,考慮建立 bash 腳本來建立適當的環境並執行命令。下面的腳本舉例說明了這種方法:
#! /bin/bash DBUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/*/environ 2> /dev/null| sed 's/DBUS/\nDBUS/g' | tail -n 1` if [ "x$DBUS_ADDRESS" != "x" ]; then export $DBUS_ADDRESS /usr/bin/rhythmbox-client --pause fi
透過將此腳本整合到PHP 執行中,您可以授予wwwuser 以有針對性的方式控製播放的能力,從而實現在拿起電話時暫停音樂及播放音樂的所需功能。掛斷後恢復。
以上是如何以特定使用者身分從 PHP 執行命令列應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!