vsFTPd les autorisations de fichiers téléchargés par défaut sur Ubuntu ne fonctionnent pas

14

J'ai un serveur exécutant Ubuntu 12.10 x64 et la dernière version de vsFTPd.

Mon dossier example.com a son dossier d'accueil défini /var/www/example.com,

J'ai créé un dossier public_html à l'intérieur et lui ai donné des 777autorisations, et j'ai supprimé les autorisations d'écriture du dossier de l'utilisateur domestique. Tout fonctionne bien mais:

Chaque fichier que je télécharge par FTP (à l'aide de SmartFTP) obtient un chmod de 0.

Mon vsftpd.confavait une seule ligne liée:

local_umask=022.

J'ai essayé de changer pour:

file_open_mode=777
local_umask=002

Mes fichiers seraient donc récupérés 775dès leur téléchargement.

Mais seuls mes dossiers téléchargés obtiennent des 775autorisations.

Mes fichiers téléchargés obtiennent 1411 permissions

Quelqu'un peut-il m'aider à résoudre ce problème?

lucasmx
la source
vous devez donner la permission à l'utilisateur FTP.
Gex

Réponses:

11

J'ai fini par utiliser

file_open_mode=0777
local_umask=022

sur le vsftpd.conf. Le problème était que l'utilisateur FTP et l'utilisateur www-data avaient besoin d'autorisations pour écrire, j'ai donc dû joindre www-data et ftpuser au groupe d'utilisateurs www-data, et CHMOD -R 775 tous les fichiers sur / var / www - de cette façon, avec 775 CHMOD, le groupe aurait la permission de lire, écrire et exécuter. Maintenant, cela fonctionne parfaitement.

lucasmx
la source
1
n'oubliez pas de redémarrer le serveur FTP: sudo service vsftpd restart
Nahid
7

J'ai ma réponse:

Comme le www-data est l'utilisateur responsable du serveur web et votre utilisateur normal est responsable du serveur ftp, vous devez d'abord les faire tous les deux membres du même groupe: le groupe www-data.

Création d'un utilisateur personnalisé:

useradd –d /var/www/asasd.com -g www-data -m yourusername de cette façon, le répertoire personnel sera le /var/www/asasd.com et votre utilisateur sera dans le groupe www-data .

après cela, modifiez la passe utilisateur en tapant passwd.

Ensuite, vous devez créer un dossier public_html dans votre dossier de départ de votre nom d'utilisateur, car le FTP ne pourra pas écrire à la racine de votre dossier de départ, vous devez créer un sous-dossier.

Supprimer les autorisations d'écriture de votre dossier yourusernamechmod a-w /var/www/asasd.com

Ensuite, appliquez de nouvelles autorisations pour le sous-dossier: chmod -R 775 /var/www/asasd.com/public_html (notez que vous devez utiliser 775 chmod car vous avez besoin d'autorisations d'écriture de groupe, pas d'autorisations d'écriture utilisateur, comme vous voulez que tout le groupe (ftp et www-data) puisse écrire) Ensuite, détenez le dossier pour le www-data chown -R www-data:www-data /var/www/asasd.com/public_html

De cette façon, vous devez pouvoir utiliser FTP et avoir un serveur Web fonctionnel.

Bonne chance!

Drôle, cette information est si difficile à trouver. Les gens ne partagent-ils plus leurs connaissances?

lucasmx
la source
"vous devez d'abord les faire tous les deux membres du même groupe: le groupe www-data" Comment mettre mon utilisateur ftp dans le groupe www-data?
Black
Fonctionne parfaitement. Merci @lucasmx
Enrique Becerra
0

J'ai également eu un problème comme l'autorisation de fichier est modifiée lorsque je télécharge un fichier via mon ftp. Ceci est corrigé avec un changement de ligne dans monvsftpd.conf

local_umask=val(like 022,007,etc.,)

vijay
la source
Voulez-vous améliorer et ouvrir cela un peu? Pourquoi est - ce mieux que les alternatives précédentes et ce que cela fait faire , puisque ce genre de syntaxe n'est pas décrite dans la page de manuel du tout: local_umaskdoit être seule valeur, et il doit avoir 0comme préfixe pour la valeur octal.
Esa Jokinen
-4

vous devez changer la propriété de ce fichier:

chown root:root /home/username
Gex
la source