Web-enabled software applications and tools

IT Manager's Corner


Just For Fun



FileManager - Web-based File Management Package for Linux and Unix
Version 0.972 Download 158K

FileManager is a multi-user, web-based file, directory, and remote command manager for Linux and Unix-like operating systems. It displays directory information, allows file viewing and editing, assists in directory navigation, and can execute any command for which the user account has privilege. FileManager is written in Perl and comes with its own SSL web server for extra security.

FileManager is cross-browser compatible and has context-sensitive menus for quick navigation and file/directory commands. FileManager also comes with a built-in, full-screen, text editor for quick editing and file updates.

Patch for version 0.972 users: Problem: files with non-alphanumeric characters are not properly handled by te context menus. Solution: In the file /usr/local/fm/fm.cgi in the subroutine FixCommand change the code (near line 818) from

  $cmd =~ s/[^\w \/,:\+\-\$\.\*]//;
  $cmd =~ s/\s+$//;
  $cmd =~ s/^\s+//;
  $arg1 =~ s/[^\w \/,:\.\+\-\$\\\*]//;
  $arg2 =~ s/[^\w \/,:\.\+\-\$\\\*]//;


  $cmd =~ s/[^\w \/,:\+\-\$\.\*\'\?]//;
  $cmd =~ s/\s+$//;
  $cmd =~ s/^\s+//;
  $arg1 =~ s/[^\w \?\/,:\.\+\-\$\\\*]//;
  $arg2 =~ s/[^\w \?\/,:\.\+\-\$\\\*]//;
Bug first reported by Robert Geranio.

Patch for Red Hat 9 users: When running FileManager on a "clean install" of Red Hat 9, the login fails. (This is not a problem for Red Hat 9 upgrades.) To fix the problem change line 881 in /usr/local/fm/etc/fm_miniserv.pl from
$sid = lc(unpack('h*', $tmpsid));
$sid = lc(unpack('h*', $tmpsid));
$sid = substr($sid, 0, 32);

Patch courtesy of Oktay Altunergil.

Bugfix for Red Hat users: If you receive the message: Malformed UTF-8 character (unexpected end of string) at ... the problem is the LANG environment variable. Fix: remove the ".UTF-8" portion of the variable by inserting export LANG=en_US in the /usr/local/fm/etc/start file after the line begining with echo .

If you would like to subscribe to the FileManager Developers/Testers mailing list, send an email with the subject "Subscribe" to fmdevel@horsburgh.com.

You can click on any of the thumbnail screen shots to see an enlarged view.

Icon view

Icon view (with context-sensitive menu shown)

Properties pop-up window

Detailed directory view sorted by size

Required Software

Linux/Unix (a modern version)
Perl Version 5.005 or later (http://www.cpan.org/)

Changes from Version 0.97 to 0.972
  1. Bug Fix: The find function now works for non-root, jailed users.
  2. New Feature: A new option (AllowJailOut) controls whether or not the directory string at the top of the files area allows a user to "click" outside (or above) their home directory.
  3. Bug Fix: The AllowRootUser parameter now works. Setting it to zero (0) will disable the 'root' user. To change it back, edit the /usr/local/fm/fm_preferences.pl file and change the AllowRootUser parameter back to one (1); First reported by: umuta at sabanciuniv.edu
  4. Bug Fix: Discovered and plugged a SECURITY HOLE that allowed users to view any file on the system accessible root. You can still enable the security hole, during setup, for personal use machines and retain more of the "QuickView" features. First reported by: ville.ahlgren at smarttrust.com
  5. Bug Fix: Fixed a bug that prevented non-root Jailed users from creating subdirectories.
  6. Update: Updated the security certificate to extend the termination date.
  7. Update: Added info about how to recreate the security certificate to the README file.
  8. Bug Fix:Fixed a directory creation bug that affected non-root users. First reported by: jimmc at irobot.com
  9. Bug Fix:Fixed a "group" permissions problem that prevented users from accessing group read/write/execute files. First reported by: tdavis at birddog.com
  10. Bug Fix:Fixed a bug in the "Command Line" box which prevented using the asterisk "*" wildcard.
  11. Update: Added support for 29 more OS types.
  12. Update: Updated miniserv.pl to version 0.92 in webmin

Changes from Version 0.963 to 0.97
  1. New Feature: Added the ability to "Jail" users by limiting the directory and the valid commands. Note that this severely limits the functionality of FileManager, but restricts the users more than the normal OS controls.
  2. New Feature: Added ability to specify maximum file upload size during installation.
  3. New Feature: Preferences are now saved across FileManager updates.
  4. New Feature: Only files in the current directory can be edited.
  5. New Feature: Setup.sh now checks for the Filesys::Df module and optionally loads it from CPAN. If it is not found, a warning message is printed.
  6. Updated: Replaced the menu.js code with separate DOM, NS4, and IE4 javascript modules. These are based on the HierMenu routines. FileManager now supports NS4+ (including mozilla), IE4+ (non-Mac), IE5+, and any DOM compliant browsers. Currently that excludes Konqueror and Opera.
  7. Updated: admin.pl to include a "browser-cache-buster."
  8. Updated: prefs.pl and editor.pl to include a "browser-cache-buster."
  9. Bug Fix: Fixed QuickDir anomalies when specifying relative directories.
  10. Updated: The link target specification in List Mode changed from italics to red text preceeded with '->'.
  11. Updated: Minor formatting changes to "root" statistics display.

Changes from Version 0.962 to 0.963
  1. Bug Fix: A logic error affecting system and MD5 encrypted passwords has been fixed. Hopefully the username/password problems have now been solved!
  2. New: Added 11 additional file icons.
  3. New: Added support for additional OS's.
  4. Updated fm_miniserv (enhanced stability)
  5. Updated system password support. Now uses either the FileManager handled password files, or the system files. Also now supports MD5 encryption.

Changes from Version 0.961 to 0.962
  1. Bug Fix: A possible security hole associated with the effective UID on some operating systems has been fixed.
  2. New Feature: Additional code was added to combat browser caching problems.
  3. New Feature: The "Root" status commands for uptime, memory, and disks are now configurable.
  4. Enhancement: The user enable/disable selection capability was enhanced.

Changes from Version 0.96 to 0.961
  1. Bug Fix: Quick View and other context-menu file I/O operations were broken. It should be fixed now. --First reported by Bryan K. Wright <bryan at ayesha.phys.virginia.edu>
  2. New Feature: Added an "enable all" and "disable all" feature to the Users Setup page.
  3. New Feature: A new file fm_disable.users contains a list of users that do not have access to FileManager.

Changes from Version 0.95 to 0.96
  1. New Feature: Added uptime and memory usage on systems that support the uptime and free commands. Displayed only for the "root" user.
  2. New Feature: added a "forkcgis" parameter to the web server to handle non-standard CGI routines (especially file uploads).
  3. New Feature: added the ability to change the icon file types via the admin settings section "File Types."
  4. New Feature: Eliminated reliance on CGI.pm.
  5. New Feature: Eliminated client-side cookies, replaced them with server-side cookies (kookie) that allows a user to retain settings when logging in from different machines (or browsers).
  6. New Feature: For linked (alias) files/directories the "mode" column now displays the target file/directory relative to the current directory.
  7. New Feature: Setup.sh now checks version numbers. If upgrading and version is less than 0.94 then the configuration files are purged before installation.
  8. Bug Fix: Added the missing routine "escapeHTML" to cgi-lib.pl. --First reported by "Fabio Cardillo" <fabio at alfaprint.com.br>
  9. Bug Fix: Variable $now in fm_editor was not pre-defined and caused an error when using the "strict" pragma.
  10. Bug Fix: Changed the default web server processing execution mode to "forked" processing. This seems to fix the logout problem and some upload errors.
  11. Bug Fix: Changed "getpwent" to "getpwnam" in setup.sh to handle root passwords better.
  12. Bug Fix: The correct username is shown in the Editor window
  13. Bug Fix: The menu button bar (home,help,settings,prefs) is shown in the Editor header.
  14. Bug Fix: The logout link is shown on the Editor pages.
  15. Bug Fix: The server no longer throws an exception when a user tries to access an unaccessible file. An error message is now displayed.

Changes from Version 0.94 to 0.95
  1. Added the ability to customize the pop-up context menus.
  2. Added the ability to view all valid system login accounts, not just those with a UID >= 500.
  3. Added a Perl module pre-check and auto-install capability in setup.sh.
  4. Added additional information to the Properties window.
  5. Updated the mini-server and session_login scripts to be more error tolerant.
  6. Fixed a bug which caused the login script to hang on some systems when using SSL.
  7. Fixed a bug in the QuickDir command which did not properly reset the current working directory.
  8. The setup.sh routine no longer asks for the "root" password.

Changes from Version 0.93 to 0.94

  1. Fixed a bug in the "Folder Delete" code which did not allow a folder to be deleted on some systems.
  2. Complete re-write of internal file and user handling code.
  3. Separated administration program from main program.
  4. Now uses system usernames/passwords for authentication --First requested by Martin Foster <martinf at control-f1.com>
  5. Fixed a ".readme" display error.
  6. Fixed the directory duplication command.

Changes from Version 0.92 to 0.93

  1. Documentation updated.
  2. Fixed a bug in the "Quick Dir" section.
  3. Added OS detection support for 30 more systems.
  4. Added the ability to display ".readme" files when entering a directory. This feature is controled by the "ShowReadme" parameter on the AdminSettings/Configuration page. --First requested by Filippo Dini <phil at yatta-it.com>

Changes from Version 0.91 to 0.92

  1. Fixed an upload bug which resulted in a "Short Read" error. --First reported by Filippo Dini <phil at yatta-it.com>
  2. All CGI's in the fm_miniserv.pl routinue are now forked as a separate process by default.
  3. Fixed a download bug that only allowed "home" directory downloads.

Changes from Version 0.9 to 0.91

  1. General code optimization.
  2. Added SSL support. --First suggested by Vito Sansevero <zues1 at home.com>
  3. Added multi-user (session) support. --First suggested by Vito Sansevero <zues1 at home.com>
  4. Disabled the "External Web Server" option. (It's still available, just commented out in setup.sh.
  5. Added a download option to the pop-up menus.
Copyright © 2001, Horsburgh.com. All Rights Reserved.