Je galère depuis 2 jours et j'espère trouver un peu d'aide ici pour résoudre un problème un peu pointu avec mon Raspberry Pi 3 (Raspbian Stretch).
J'explique rapidement :
J'ai créé un serveur web sur Rpi pour partager des pages sur un réseau local non connecté à internet.
Le site est sur un serveur apache2 et j'ai installé Proftpd pour l'alimenter
Le site Web est situé sur /var/www/html en partie directement et en partie sur une clé USB (NTFS ou FAT32) insérée dans le Rpi et montée sur le répertoire /var/www/html/usbdisk (l'objectif est de pouvoir alimenter le site facilement depuis un PC directement sur la clé.
Je pense avoir géré correctement les permissions (dossiers en 770 et fichiers en 660) et owner (www-data) de ces dossiers locaux, celles du montage USB, le paramétrage de la config de Proftpd
mon utilisateur est un utilisateur linux dont le dossier personnel est /var/www/html et qui fait partie du groupe www-data
mais j'ai un problème :
Je n'arrive pas à créer en FTP des dossiers sur ma clé USB (/var/www/html/usbdisk)
alors que :
La lecture et l'écriture de fichiers marche bien sur la clé en FTP
La création de dossiers fonctionne sur la racine du site (/var/www/html)
La création de dossiers fonctionne avec le même utilisateur en connexion direct local sur le Rpi ou en SSH
Le log de proftpd indique :
NOTICE: directory '/usbdisk/essai/.dstXXovcdye' has unexpected mode 0770 (expected 0700)
chmod(/usbdisk/essai/.dstXXovcdye) failed: Opération non permise
Si quelqu'un a une idée ou besoin de plus d'info n'hésitez pas.
Désolé de n'avoir pas répondu avant mais j'ai été obligé de décrocher sur d'autres activités.
Si la question est d'avoir essayé de passer les droit de montage de la clé en 0700, oui je l'ai testé : c'est pas mieux.
Voilà comment je monte ma clé dans mon /etc/fstab :
/dev/sda1 /var/www/html/usbdisk auto noatime,fmask=0117,dmask=0077,uid=33,gid=33,nofail 0 0
Voilà le contenu de mon proftpd.conf :
#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
#
# Includes DSO modules
Include /etc/proftpd/modules.conf
# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6 on
# If set on you can experience a longer connection delay in many cases.
IdentLookups off
ServerName "FTP Techno"
# Set to inetd only if you would run proftpd by inetd/xinetd.
# Read README.Debian for more information on proper configuration.
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
# Use this to jail all users in their homes
DefaultRoot ~
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RequireValidShell off
# Port 21 is the standard FTP port.
Port 21
# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts 49152 65534
# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress 1.2.3.4
# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 000 000
# Normally, we want files to be overwriteable.
AllowOverwrite on
# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off
# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c
# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on
# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime. If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or <Anonymous>), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default.
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf
#
# This is used for FTPS connections
#
#Include /etc/proftpd/tls.conf
#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf
# A basic anonymous configuration, no upload directories.
# <Anonymous ~ftp>
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
# <Directory *>
# <Limit WRITE>
# DenyAll
# </Limit>
# </Directory>
#
# # Uncomment this if you're brave.
# # <Directory incoming>
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# # <Limit READ WRITE>
# # DenyAll
# # </Limit>
# # <Limit STOR>
# # AllowAll
# # </Limit>
# # </Directory>
#
# </Anonymous>
# Include other custom configuration files
Include /etc/proftpd/conf.d/
<Global>
<Directory /var/www/html>
AllowRetrieveRestart on
AllowStoreRestart on
GroupOwner www-data
UserOwner www-data
Umask 000 000
</Directory>
</Global>
Si quelqu'un a une idée ou besoin de plus d'info...
Après avoir mis en doute mes paramétrages, j'ai fini par contacter un développeur linux qui m'a dépanné. Le problème ne venait pas de moi mais d'un bug de Proftpd dans sa version stable 1.3.5.
Lors de la création d'un dossier, proftp cré le dossier puis modifie les droits du dossier pour les mettre en 0700 mais comme dans mon cas nous sommes sur une clé ntfs montée avec les droits 0777, il s'aperçoit que la modification n'a pas fonctionné et supprime le dossier qu'il vient de créer.
Le bug est corrigé dans la version 1.3.6 encore en testing.
PS : Ma solution n'était pas une solution de facilité mais celle qui correspondait à mes contraintes.
Fabrice
help problème de droits en FTP sur Rpi
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Zeste de Savoir | Kali Linux n'est pas une distribution pour débuter ni pour être utilisée tous les jours | Pour choisir une distribution Linux