首頁 >後端開發 >php教程 >如何以特定使用者身分從 PHP 執行命令列應用程式?

如何以特定使用者身分從 PHP 執行命令列應用程式?

DDD
DDD原創
2024-10-31 11:25:02675瀏覽

How Can I Execute Command-Line Applications as a Specific User from PHP?

使用特定使用者從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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn