Git Product home page Git Product logo

proftpd-mod_case's People

Contributors

castaglia avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

proftpd-mod_case's Issues

Alterations done to the path by mod_case do not affect the log files.

I have found that while changes made by mod_rewrite are reflected in the log files, changes made by mod_case are not.

P.S. I want to thank you for all of your help. It has been most appreciated. ๐Ÿ˜„

ProFTPD Version and Configuration

Ubuntu 20.04 LTS HyperV image - ProFTPD Version 1.3.6c installed using sudo apt-get install proftpd.
A custom compilation was not used. Additional info can be provided if required.
I have essentially the same configuration that I have used for other issues.

What I Did

I executed a LIST command where the case in the specified path was wrong and an incorrect directory separator was used. The correct path is V14/Release_4.6/Update.txt.

What I Expected

I expected the that log file would reflect the changes made by mod_case, just like they reflect the changes made by mod_rewrite.

More Information

You can see in the log file that mod_rewrite changed the path from v14\Release_4.6/Update.txt to v14/Release_4.6/Update.txt (replaced the first directory separator). This change is reflected in all subsequent paths in the log for that FTP command.
The change that mod_case did, however, is not reflected in the log - from v14/Release_4.6/Update.txt to V14/Release_4.6/Update.txt (from lower case 'v' to upper case 'V').

I do find it interesting that the FTP command is NOT dispatched to mod_case immediately after mod_rewrite, but is instead dispatched after other pre_cmd methods have received it (mod_tls, and mod_core 2x?). I doubt that has any bearing on this.

Note that this is NOT a critical issue for me, but I can see that this could help when debugging issues, and seems like an inconsistency to me.

proftpd.log:

2021-07-29 16:18:45,900 FTP proftpd[138729] FTP: ProFTPD 1.3.6c (maint) (built Thu Feb 27 2020 19:34:56 UTC) standalone mode STARTUP
2021-07-29 16:19:35,881 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): AuthOrder in effect, resetting auth module order
2021-07-29 16:19:35,881 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): connected - local  : 172.30.118.36:21
2021-07-29 16:19:35,881 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): connected - remote : 172.30.112.1:57667
2021-07-29 16:19:35,881 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): FTP session opened.
2021-07-29 16:19:35,881 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'USER testuser' to mod_exec
2021-07-29 16:19:35,881 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'USER testuser' to mod_rewrite
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'USER testuser' to mod_tls
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'USER testuser' to mod_core
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'USER testuser' to mod_core
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'USER testuser' to mod_delay
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'USER testuser' to mod_auth
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching CMD command 'USER testuser' to mod_ratio
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching CMD command 'USER testuser' to mod_auth
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'USER testuser' to mod_exec
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'USER testuser' to mod_delay
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'USER testuser' to mod_log
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'USER testuser' to mod_delay
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_exec
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_rewrite
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_tls
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_core
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_core
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_ifsession
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): ROOT PRIVS at mod_auth_file.c:855
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at mod_auth_file.c:858
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): mod_auth_file/1.0: using passwd file '/etc/proftpd/ftpd.passwd'
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): retrieved UID 1001 for user 'testuser'
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): ROOT PRIVS at mod_auth_file.c:615
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at mod_auth_file.c:618
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): mod_auth_file/1.0: using group file '/etc/proftpd/ftpd.group'
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): retrieved group 'TestGroup' for GID 1001
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): retrieved group ID: 1001
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): retrieved group name: TestGroup
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_shaper
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): ROOT PRIVS at mod_shaper.c:2064
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at mod_shaper.c:2066
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_wrap2
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_ban
2021-07-29 16:19:35,882 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_wrap
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_radius
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_delay
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASS (hidden)' to mod_auth
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching CMD command 'PASS (hidden)' to mod_auth
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): ROOT PRIVS at mod_auth_file.c:855
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at mod_auth_file.c:858
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): mod_auth_file/1.0: using passwd file '/etc/proftpd/ftpd.passwd'
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): retrieved UID 1001 for user 'testuser'
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): ROOT PRIVS at mod_auth_file.c:615
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at mod_auth_file.c:618
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): mod_auth_file/1.0: using group file '/etc/proftpd/ftpd.group'
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): retrieved group ID: 1001
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): retrieved group name: TestGroup
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): user 'testuser' authenticated by mod_auth_file.c
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): ROOT PRIVS at auth.c:1813
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at auth.c:1816
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): USER PRIVS 1001 at mod_auth.c:1608
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at mod_auth.c:1610
2021-07-29 16:19:35,883 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): retrieved UID 1001 for user 'testuser'
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): 
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): Config for test ftp server:
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): /ftp
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]):  Limit
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]):   DenyAll
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]):  HideNoAccess
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]):  TransferLog
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]):  RequireValidShell
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]):  AllowOverwrite
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]):  RewriteRule
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]):  CaseIgnore
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): TransferLog
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): MaxLoginAttempts
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RequireValidShell
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): DefaultRoot
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): AllowOverwrite
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): Protocols
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): AuthOrder
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): AuthGroupFile
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): AuthUserFile
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): DebugLevel
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RewriteEngine
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RewriteMap
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RewriteRule
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): CaseEngine
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): CaseIgnore
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): CaseLog
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): ROOT PRIVS at mod_auth.c:1698
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): opening TransferLog '/var/log/proftpd/xfer/ftptestserver.log'
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): setting group ID: 1001
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at mod_auth.c:1740
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): USER PRIVS 1001 at mod_auth.c:963
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at mod_auth.c:966
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): TZ environment variable already set to ':/etc/localtime'
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): Preparing to chroot to directory '/ftp'
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): ROOT PRIVS at auth.c:1948
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): RELINQUISH PRIVS at auth.c:1951
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): Environment successfully chroot()ed
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): ROOT PRIVS at mod_auth.c:1789
2021-07-29 16:19:35,884 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): SETUP PRIVS at mod_auth.c:1811
2021-07-29 16:19:35,885 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): in dir_check_full(): path = '/', fullpath = '/ftp/'
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_exec
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_ifsession
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_copy
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_ratio
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_shaper
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_wrap2
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_ban
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_quotatab
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_radius
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_tls
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_lang
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_cap
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): mod_cap/1.1: uid = 1001, euid = 1001, gid = 1001, egid = 1001
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): mod_cap/1.1: capabilities '= cap_chown,cap_setgid,cap_setuid,cap_net_bind_service,cap_audit_write+ep'
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_delay
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_log
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_ls
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_auth
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_rlimit
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_xfer
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASS (hidden)' to mod_core
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'PASS (hidden)' to mod_log
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'PASS (hidden)' to mod_readme
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'PASS (hidden)' to mod_ratio
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'PASS (hidden)' to mod_delay
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'PASS (hidden)' to mod_auth
2021-07-29 16:19:35,886 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): USER testuser: Login successful.
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'CWD /' to mod_exec
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'CWD /' to mod_rewrite
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'CWD /' to mod_tls
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'CWD /' to mod_core
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'CWD /' to mod_core
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'CWD /' to mod_case
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'CWD /' to mod_ratio
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching CMD command 'CWD /' to mod_ratio
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching CMD command 'CWD /' to mod_core
2021-07-29 16:19:35,887 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): in dir_check_full(): path = '/', fullpath = '/ftp/'
2021-07-29 16:19:35,888 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'CWD /' to mod_exec
2021-07-29 16:19:35,888 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'CWD /' to mod_readme
2021-07-29 16:19:35,888 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'CWD /' to mod_log
2021-07-29 16:19:36,607 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'TYPE A' to mod_exec
2021-07-29 16:19:36,607 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'TYPE A' to mod_rewrite
2021-07-29 16:19:36,607 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'TYPE A' to mod_tls
2021-07-29 16:19:36,607 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'TYPE A' to mod_core
2021-07-29 16:19:36,607 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'TYPE A' to mod_core
2021-07-29 16:19:36,607 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching CMD command 'TYPE A' to mod_xfer
2021-07-29 16:19:36,607 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'TYPE A' to mod_exec
2021-07-29 16:19:36,607 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'TYPE A' to mod_log
2021-07-29 16:19:36,608 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASV' to mod_exec
2021-07-29 16:19:36,608 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASV' to mod_rewrite
2021-07-29 16:19:36,608 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASV' to mod_tls
2021-07-29 16:19:36,608 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASV' to mod_core
2021-07-29 16:19:36,608 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'PASV' to mod_core
2021-07-29 16:19:36,608 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching CMD command 'PASV' to mod_core
2021-07-29 16:19:36,609 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): Entering Passive Mode (172,30,118,36,177,53).
2021-07-29 16:19:36,609 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'PASV' to mod_exec
2021-07-29 16:19:36,609 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'PASV' to mod_log
2021-07-29 16:19:36,611 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'LIST v14\Release_4.6/Update.txt' to mod_exec
2021-07-29 16:19:36,611 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'LIST v14\Release_4.6/Update.txt' to mod_rewrite
2021-07-29 16:19:36,611 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'LIST v14/Release_4.6/Update.txt' to mod_tls
2021-07-29 16:19:36,611 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'LIST v14/Release_4.6/Update.txt' to mod_core
2021-07-29 16:19:36,611 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'LIST v14/Release_4.6/Update.txt' to mod_core
2021-07-29 16:19:36,611 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'LIST v14/Release_4.6/Update.txt' to mod_case
2021-07-29 16:19:36,612 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching PRE_CMD command 'LIST v14/Release_4.6/Update.txt' to mod_ratio
2021-07-29 16:19:36,612 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching CMD command 'LIST v14/Release_4.6/Update.txt' to mod_ls
2021-07-29 16:19:36,612 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): passive data connection opened - local  : 172.30.118.36:45365
2021-07-29 16:19:36,612 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): passive data connection opened - remote : 172.30.112.1:57668
2021-07-29 16:19:36,614 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'LIST v14/Release_4.6/Update.txt' to mod_exec
2021-07-29 16:19:36,614 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching POST_CMD command 'LIST v14/Release_4.6/Update.txt' to mod_ratio
2021-07-29 16:19:36,614 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'LIST v14/Release_4.6/Update.txt' to mod_log
2021-07-29 16:19:36,614 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): dispatching LOG_CMD command 'LIST v14/Release_4.6/Update.txt' to mod_ls
2021-07-29 16:19:38,623 FTP proftpd[138734] FTP.XXXXX.priv (localpc.XXXXX.priv[172.30.112.1]): FTP session closed.

mod_case fails to handle multi-directory case-insensitive path matching

The mod_case module currently does case-insensitive matching for the target file in the path, the last component. However, it fails if the path contains components which themselves require case-insensitive matching.

Consider a path like /path/To/Some/FileBearing/Directory/File.txt. Given a download command like so:

RETR /path/To/Some/FileBearing/Directory/file.txt

the mod_case module can properly match "File.txt" with "file.txt".

However, given this command to download that same file:

RETR /path/to/some/filebearing/directory/file.txt

the mod_case module fails, because it does not perform case-insensitive matching the full path.

The scope of this issue is to rework the mod_case internals, so that it will properly handle both of the commands above, as expected.

Case sensitivity when using full dir path

Our FTP directory is located on an NFS share.

We installed proftpd with mod_case to support clients case insensitive
commands.

The path on the file system is:

/ftp/DDD/FILES/FUT/House

This is the scenario from the client side:

Case sensitive

ftp> cd DDD/Files/FUT/HOUSE
550 RBS/Files/FUT/HOUSE: No such file or directory

Case insensitive

ftp> cd DDD/FILES/FUT/House
250 CWD command successful

The server ignores the case when the client change one directory at a time

ftp> cd DDD
250 CWD command successful
ftp> cd Files
250 CWD command successful
ftp> cd Files
250 CWD command successful
ftp> cd fUt
250 CWD command successful
ftp> cd hOuSe
250 CWD command successful

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.