Propriétaire des fichiers

Bonjour à tous & joyeux noël ! :wink:

Je vous contacte car j’ai un petit problème sur mon serveur dédié. Je précise que je débute dans la manipulation de serveur. J’ai installé plusieurs logiciels et, notamment, PHP ainsi qu’un serveur FTP. Lorsque j’upload un fichier par FTP, celui-ci appartient à un propriétaire défini. Lorsque j’upload un fichier par PHP, celui-ci appartient à un autre propriétaire. Le problème est que PHP ne peux manipuler les fichiers de FTP, et vice-versa. Est-il possible d’avoir un seul et même propriétaire que les deux logiciels pourraient ainsi manipuler ? Si oui, comment faire.

Merci d’avance à tous. :slightly_smiling:

Bonjour,
une recherche sur le forum fera ton bonheur car ce sujet à déjà été abordé plusieurs fois…
bonne chance :wink:

Merci d’avoir répondu mais j’ai déjà cherché, avant même de créer ce sujet. Que ce soit avec la recherche interne du forum ou sur Google, lorsque je recherche, par exemple, “propriétaire ftp php”, je ne trouve pas de résultat satisfaisant. 4 réponses sur ce forum et aucune répondant à cette question malheuresement … cependant, je me doute bien que cette question à déjà été abordé. :neutral_face:

Ou alors peut-être que je ne recherche pas les bons mots clés. :confused:

[quote=“Gaylord.P”]Merci d’avoir répondu mais j’ai déjà cherché, avant même de créer ce sujet. Que ce soit avec la recherche interne du forum ou sur Google, lorsque je recherche, par exemple, “propriétaire ftp php”, je ne trouve pas de résultat satisfaisant. 4 réponses sur ce forum et aucune répondant à cette question malheuresement … cependant, je me doute bien que cette question à déjà été abordé. :neutral_face:

Ou alors peut-être que je ne recherche pas les bons mots clés. :confused:[/quote]
Le problème peu venir du fait qu’apache s’approprie les fichiers php une fois exécutés et donc, le propriétaire change.
De ce fait tu ne peux donc plus les modifier avec ton client ftp.
La solution est soit d’installer le module suphp ou le module suexec.

Pour suphp il y a un tutoriel sur le forum je pense.
Pour suexec, si ton espace web se trouve dans /var/www alors tu peux l’activer via la commande ‘a2enmod suexec’ (reload apache).
Sinon tu vas devoir, soit changer ton espace web de place et le placer dans /var/www ou soit recompiler apache pour que le module pointe sur la racine absolue de ton espace web (entre nous, je préfère la première solution pour suexec).

Encore merci d’avoir répondu.

N’y a t-il donc pas d’autres alternatives ?.. comment font les hébergeurs qui font des offres en mutualisé, pour que tout soit paramétrable par PHP et FTP ?

Ils le font avec suexec.

  1. ils ajoutent un utilisateur —> adduser toto (le groupe est automatiquement crée, ici ça sera toto aussi)
  2. Sont répertoire web utilisateur se trouve dans (par ex.) /var/www/vhosts/toto (skelette) pré-parametré dans /etc/skel pour créer l’arborescence auto à la création de l’utilisateur.
  3. L’utilisateur est chrooté dans sont répertoire web sur le serveur ftp.
    (donc lorsqu’il se connectera avec son client ftp, il se retrouvera dans /var/www/vhosts/toto avec tous ses fichiers avec comme propriétaire toto et groupe toto.
  4. Le documentroot du virtualhost utilisateur (pour la config apache) sera /var/www/vhosts/toto/www (module suexec chargé)
  5. Lorsqu’il placera ses fichiers dans www ils serons directement accessible via toto.domaine.com
    Lorsqu’il exécutera ses fichiers cgi (par ex. php) se sera toto qui les exécutera et non plus www-data.

Voici un exemple de config de virtualhost apache chez un hébergeur professionnel:

<VirtualHost *:80> DocumentRoot /var/www/toto/www ServerName toto.domain.com SuexecUserGroup toto toto AddHandler php4-script .php .php3 .php4 AddHandler php5-script .php5 ScriptAlias /php-exec/ "/var/php/toto/" CustomLog /logs/toto-access.log combined </Virtualhost>

C’est juste un exemple, à toi de faire comme tu veux, c’est pour t’aider à comprendre.

Bonjour,

Ce problème de propriétaires ftp-php existe chez les hébergeurs pro que je connais, et on vit très bien avec. Il n’a en fait que 2 conséquences pratiques:

1-quand on installe un cms (blog, forum, galerie, …), il faut élargir par ftp les droits des répertoires dans lesquels les scripts php devront créer des fichiers, et élargir les droits des fichiers que les scripts php devront modifier. Ces opérations sont bien décrites dans les notices d’installation de ces cms.

2- quand on veut supprimer ces cms par ftp, il y a des répertoires qu’on ne peut pas supprimer directement: ceux qui ont été créés par php et dans lesquels php a créé des fichiers dedans. La seule manière pour cela est d’uploader par ftp et d’appeler un script php fait pour effacer les fichiers créés par php. J’en ai fait un pour cela: http://www.jpvweb.com/linux/mesrecetteslinux/effacement_par_php.