hallo zusammen,
hier erstmal meine config:
<Anonymous /home/ftp>
Group ftpuser
AnonRequirePassword on
RequireValidShell off
# Resume
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
# Wir wollen das alle rauf geladenen Dateien dem Benutzer "ftpuser" gehören
# und von Benutzer und Gruppe geschrieben werden können.
GroupOwner ftp
Umask 770
# Hier beschränken wir die maximale Anzahl Clients, wenn sich mehr anmelden
# wollen, dann werden sie mit der Meldung in den Anführungszeichen abgewiesen.
# das %m zeigt die maximale Anzahl Benutzer die erlaubt ist, den Rest kann man
# mit einer eigenen Meldung ersetzen.
MaxClients 5 "Sorry, max %m users -- try again later"
<Limit LOGIN>
DenyGroup !ftpuser
</Limit>
</Directory>
</Anonymous>
RequireValidShell steht auf off. Trotzdem kann ich mich nur mit usern enloggen, die eine gueltige shell haben.
Hier der relevante Debug Auszug fuer den user test ohne eigene Shell.
localhost.localdomain - ProFTPD 1.2.10 (stable) (built do mrt 22 18:28:32 CET 2001) standalone mode STARTUP
localhost.localdomain (localhost.localdomain[127.0.0.1]) - FTP session requested from unknown class
localhost.localdomain (localhost.localdomain[127.0.0.1]) - connected - local : 127.0.0.1:21
localhost.localdomain (localhost.localdomain[127.0.0.1]) - connected - remote : 127.0.0.1:45488
localhost.localdomain (localhost.localdomain[127.0.0.1]) - FTP session opened.
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'USER test' to mod_rewrite
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'USER test' to mod_tls
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'USER test' to mod_core
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'USER test' to mod_core
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'USER test' to mod_delay
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'USER test' to mod_auth
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching CMD command 'USER test' to mod_ratio
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching CMD command 'USER test' to mod_auth
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching POST_CMD command 'USER test' to mod_delay
localhost.localdomain (localhost.localdomain[127.0.0.1]) - mod_delay/0.4: delaying for 262 usecs
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching LOG_CMD command 'USER test' to mod_log
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'PASS (hidden)' to mod_rewrite
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'PASS (hidden)' to mod_tls
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'PASS (hidden)' to mod_core
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'PASS (hidden)' to mod_core
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'PASS (hidden)' to mod_delay
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'PASS (hidden)' to mod_wrap
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'PASS (hidden)' to mod_radius
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'PASS (hidden)' to mod_auth
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching CMD command 'PASS (hidden)' to mod_auth
localhost.localdomain (localhost.localdomain[127.0.0.1]) - USER test (Login failed): Invalid shell: ''
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching POST_CMD_ERR command 'PASS (hidden)' to mod_delay
localhost.localdomain (localhost.localdomain[127.0.0.1]) - mod_delay/0.4: delaying for 2373740 usecs
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching LOG_CMD_ERR command 'PASS (hidden)' to mod_log
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching LOG_CMD_ERR command 'PASS (hidden)' to mod_auth
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'SYST' to mod_rewrite
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'SYST' to mod_tls
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'SYST' to mod_core
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching PRE_CMD command 'SYST' to mod_core
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching CMD command 'SYST' to mod_core
localhost.localdomain (localhost.localdomain[127.0.0.1]) - dispatching LOG_CMD command 'SYST' to mod_log
localhost.localdomain - ProFTPD terminating (signal 2)
localhost.localdomain (localhost.localdomain[127.0.0.1]) - ProFTPD terminating (signal 2)
localhost.localdomain - ProFTPD 1.2.10 standalone mode SHUTDOWN
localhost.localdomain - deleting existing scoreboard '/var/run/proftpd/proftpd.scoreboard'
localhost.localdomain (localhost.localdomain[127.0.0.1]) - FTP session closed.
Wie ich unschwer erkennen kann, beschwert proftpd sich ueber eine invalide shell. Muss ich in der config noch etwas beachten ausser requirevalid shell off?
danke fuer eure hilfe,
tomber
ps wir die /etc/passwd nach bearbeiten direkt neu eingelesen? oder kann ich das so aehnlich wie mit der /home/user/.bashrc mit source machen?