2010-01-14 5 views
1

Comme vous le savez. Vous devez écrire open_basedir = '/var/home' etcComment puis-je écrire open_basedir comme ceci -> open_basedir = 'var/home/* /'

Je veux écrire comme ceci: open_basedir = '/var/home/*/'

que je veux est php doit limiter chaque répertoire qui est dans le répertoire de la maison, pour tous les répertoires différents.

Question courte: Comment puis-je écrire open_basedir comme ceci: open_basedir = 'var/home/*/'?

Merci beaucoup.

Répondre

1

Si vous souhaitez restreindre PHP propre répertoire personnel de chaque utilisateur que vous avez besoin d'une configuration de PHP dans lequel:

  1. PHP fonctionne avec les informations d'identification utilisateur
  2. PHP accepte une configuration

par utilisateur un cas typique est un CGI (ou FastCGI) configuration, plutôt que de courir PHP comme module Apache. Ensuite, vous pouvez fournir un fichier php.ini personnalisé pour chaque utilisateur.

BTW, je ne l'ai pas testé, mais peut-être open_basedir = "~" fonctionne comme prévu ...

====== ====== EDIT

Quelques précisions qui découlent de la OP de commentaire:

  1. shells Unix, "~" est synonyme de "répertoire personnel de l'utilisateur actuel" il est donc "/ var/home/john" si vous êtes john et il est «/var/home/michael "Si vous êtes Michael. "var/home/~ /" n'a pas de signification particulière: c'est juste un répertoire qui s'appelle ~.

  2. De nombreux programmes utilisent cette convention shell. Je ne sais pas si PHP le fait. CGI permet d'exécuter des programmes arbitraires sur le serveur afin qu'il soit moins sécurisé que le HTML statique de la même manière qu'un skateboard est moins sécurisé qu'une navette spatiale. Mais nous ne parlons pas d'exécuter des programmes arbitraires: nous parlons d'exécuter l'interpréteur PHP. Ce sera aussi sûr que PHP et votre environnement.

  3. Si vous êtes intéressé (e) par le sujet, Google pour FastCGI (une implémentation CGI avec des performances améliorées). De nombreux hébergeurs l'utilisent.

+0

J'ai testé open_basedir = 'var/home/~ /' ne fonctionnait pas. Merci pour votre réponse. Souhaitez-vous envoyer une URL d'aide pour l'installation CGI pour fournir php.ini personnalisé pour chaque utilisateur. Dernière question: J'ai entendu dire que CGI avait des problèmes de sécurité. Est-ce vrai ? Merci encore. – ONSC

+0

Merci beaucoup. – ONSC

0

Vous pouvez. Vous devez spécifier chaque chemin dans la directive:

open_basedir = "/var/home/path1/:/var/home/path2/:/var/home/path3/" 
+0

Merci beaucoup. Mais existe-t-il une définition de répertoire automatique? ? Parce qu'il y a beaucoup de répertoires. – ONSC

Questions connexes