web-dev-qa-db-fra.com

Impossible d'effectuer des modifications via FTP sur mon serveur Ubuntu

Je suis très nouveau dans le domaine de la gestion de serveur, je l'ai littéralement mis en place pour la première fois il y a quelques semaines, je ne sais absolument pas ce que je fais.

Afin de permettre à WordPress d'exécuter des mises à jour, apparemment, tout doit appartenir à www-data, mais si tout appartient à www-data, je ne peux pas utiliser FTP avec l'utilisateur revxx14. Lorsque j'essaie, je ne peux effectuer aucun changement (suppressions, ajouts, mises à jour de fichiers, rien. Je reçois des erreurs d'autorisation refusées à tous les niveaux). Existe-t-il un moyen de donner à mon utilisateur les mêmes autorisations que www-data, afin que je puisse conserver le propriétaire de www-data, tout en pouvant effectuer des modifications via FTP?

Merci.

2
JacobTheDev

Dans la fenêtre de votre terminal, vous pouvez taper ls -l pour afficher les autorisations de fichier actuelles, ainsi que l'utilisateur et le groupe propriétaire du fichier. Cet article de la communauté Ubuntu explique comment les autorisations de fichiers sont générées:
https://help.ubuntu.com/community/FilePermissions

Maintenant, pour répondre à votre question, si vous souhaitez modifier un fichier ou un dossier en tant qu’utilisateur, vous devez soit:

  • le propriétaire/créateur du fichier (reportez-vous à nouveau à ls -l) ou;
  • membre du groupe auquel appartient le fichier/avec lequel il a été créé.

Ainsi, si ls -l affiche quelque chose comme -rw-rw-r-- root www-data, le fichier appartient à root et fait partie du groupe www-data. Il peut donner un accès en lecture et en écriture à l'utilisateur et au groupe et uniquement un accès en lecture au monde. . Puisque revxx14 n'est pas une racine, ni dans le groupe www-data, vous ne pouvez pas éditer le fichier.

Maintenant, dans le terminal, vous pouvez vous ajouter au groupe www-data:
usermod -a -G www-data revxx14

Maintenant que vous faites partie du groupe, vous avez également un accès en lecture/écriture au fichier. Si vous obtenez toujours des erreurs de permission après vous être ajouté au groupe, assurez-vous que le fichier se trouve dans le groupe www-data (vous pouvez le modifier avec chgrp www-data somefile.txt) et que le fichier est accessible en écriture pour le groupe (vous pouvez le modifier avec chmod g+w somefile.txt).

Enfin et surtout, si vous souhaitez créer un fichier dans un dossier, vous devez avoir un accès en écriture à ce dossier. Le fichier créé appartiendra à vous et au primaire auquel vous appartenez. Il devrait donc avoir un accès en lecture/écriture par défaut.

1
royarisse

Oui, vous pouvez. Je ne connais pas WordPress, mais il semble que ce soit juste un problème de permissions. Vous pouvez faire l'une de plusieurs choses. Premièrement, si l'utilisateur www-data peut utiliser le protocole FTP, ce serait utile, mais peut-être moins sûr que vous le souhaitez, car www-data ne devrait pas disposer d'autorisations FTP pour des raisons de sécurité. Vous pouvez également modifier votre utilisateur revxx14 pour rejoindre le groupe auquel appartient www-data et modifier les autorisations de fichiers pour autoriser les modifications de groupe. Cela vous permettrait de placer les fichiers en place, mais vous devrez peut-être quand même modifier les autorisations de fichier.

Cependant, la meilleure solution est ce que je fais. Je crée un répertoire temporaire dans le répertoire de base des utilisateurs (dans ce cas, revxx14). Je FTP les fichiers là-bas. Ensuite, je SSH dans et copiez les fichiers du répertoire temporaire sur le site Web avec les autorisations appropriées. Vous utiliseriez cp pour copier les fichiers de votre répertoire temporaire vers la destination, chown pour changer la propriété du fichier de destination, chgrp pour changer la propriété du groupe de fichiers de destination et enfin chmod pour modifier les autorisations des fichiers de destination. Enfin, utilisez ls pour vérifier que vous avez bien travaillé. Prenez note de la propriété du fichier, du groupe et des autorisations avant de commencer.

Si vous n'êtes pas familiarisé avec ce processus, créez une situation dans laquelle vous vous entraînerez à utiliser ces commandes, sans que vous fassiez une erreur. Peut-être d'un utilisateur à un autre utilisateur répertoires temporaires. Vous devrez peut-être utiliser mk pour créer les répertoires temporaires.

N'oubliez pas que les fichiers de l'espace Web sont définis spécifiquement pour des raisons de sécurité et que cela ne devrait pas changer. Si vous copiez ces fichiers de votre répertoire temporaire vers l'espace Web, ils auront alors la propriété des utilisateurs revxx14, la propriété du groupe et les droits d'accès par défaut. Cela signifie que pour chaque fichier que vous copiez, vous devez définir les autorisations de propriété, de propriété de groupe et de fichier par défaut afin qu'elles correspondent au fichier d'origine ou à d'autres fichiers similaires. Par exemple, certains peuvent avoir des autorisations d'exécution tandis que d'autres ont seulement lire ou lire/écrire.

Pour ma part, je connais nativement la propriété et les autorisations de mes fichiers, ce qui me permet de modifier en masse la propriété de fichiers et les autorisations à l'aide de caractères génériques. Je ne recommanderais d'utiliser des jokers que lorsque vous êtes sûr de ce que vous faites. Si vous vous sentez à l'aise avec les commandes ci-dessus, vous pouvez également utiliser des caractères génériques.

0
closetnoc