Maison >développement back-end >tutoriel php >Comment exécuter des commandes racine en PHP sur un système Linux avec l'autorité utilisateur Apache ?

Comment exécuter des commandes racine en PHP sur un système Linux avec l'autorité utilisateur Apache ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-16 18:38:03508parcourir

How to Execute Root Commands in PHP on a Linux System with Apache User Authority?

Exécution des commandes racine via PHP

Problème :

Dans un système Linux avec l'autorité utilisateur Apache, comment pouvez-vous exécuter commandes shell qui nécessitent les privilèges root en utilisant PHP, sans recourir à des solutions ou sudoers dangereux règles ?

Solution 1 : Wrapper binaire (avec suid Bit)

  1. Créer un script Shell :

    • Créez un script contenant les commandes racine que vous souhaitez exécuter (par exemple, php_shell.sh).
  2. Définir les autorisations de script :

    • Définir root comme propriétaire du fichier et accorder uniquement les autorisations d'écriture pour rooter.
  3. Créer un binaire Wrapper :

    • Créez un programme C qui exécute le script shell avec des autorisations de bits suid.
  4. Compilez et définissez les autorisations :

    • Compilez le wrapper (wrapper.c) et accordez-le autorisations root, y compris le bit suid.

Alternative :

Si vous n'avez pas besoin de modifier fréquemment les commandes, vous peut les écrire directement dans le programme wrapper, éliminant ainsi le besoin d'un script externe.

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!

Déclaration:
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