Comment puis-je exécuter des applications en ligne de commande en tant qu'utilisateur spécifique à partir de PHP ?

DDD
Libérer: 2024-10-31 11:25:02
original
668 Les gens l'ont consulté

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

Exécuter des applications en ligne de commande à partir de PHP à l'aide d'un utilisateur spécifique

Pour contrôler la lecture de Rhythmbox à partir d'un script PHP exécuté en tant qu'utilisateur www, il est Il est crucial que l'application s'exécute en tant qu'utilisateur prévu plutôt qu'en tant qu'utilisateur www par défaut. Une solution efficace consiste à utiliser sudo.

En tirant parti de sudo, le script PHP peut appeler la commande rythmebox-client avec des privilèges élevés. Cependant, pour garantir que seules des commandes spécifiques sont autorisées, il est conseillé de configurer le fichier sudoers en conséquence. Par exemple :

wwwuser ALL=/usr/bin/rhythmbox-client
Copier après la connexion

En limitant l'invocation sudo à une commande spécifique, vous pouvez sécuriser votre environnement et empêcher Apache d'exécuter des commandes arbitraires.

Dans les cas où le client Rhythmbox peut avoir du mal à identifiez l'instance correcte à contrôler, envisagez de créer un script bash pour établir l'environnement approprié et exécuter la commande. Le script ci-dessous illustre cette approche :

#! /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
Copier après la connexion

En intégrant ce script dans l'exécution PHP, vous pouvez accorder à wwwuser la possibilité de contrôler la lecture de manière ciblée, activant la fonctionnalité souhaitée de pause de la musique lors de la prise du téléphone et je le reprends une fois raccroché.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal