fmweb

the universal web-based file manager


Introduction

fmweb is a java based filemanger for local or remote access. It runs on OS/2, Linux, AIX, Windows/95 and Windows/NT.
The output of fmweb is HTML. The user needs a WEB-Browser (currently only Netscape is supported) to access fmweb from the same machine or from anywhere over the TCP/IP network. Although fmweb is a plattform-independent java application, it offers many functions that specialized file managers for the operating system provide.

Security

fmweb provides an authentication mechanism based on userid and password as well as a list of allowed hosts (IP addresses). If fmweb receives a request from a Web-Browser it checks first if the IP address of the incomming request is in the list of allowed addresses. If yes, the user is being asked for userid and password. If they are correct, the IP address is set authenticated and following requests from this address are served. To make it more difficult for hackers to use such an authenticated IP address for unallowed access, the authentication is time-limited and expires after a configurable time period.
The userid and password are prompted by a java applet that encodes the password and sends it to the fmweb server host. If the browser has disabled java in the security preferences, it does not load the Authentication applet. For this case fmweb can be startet without client java support. Userid and password are then prompted by a HTML form and transmitted via HTTP. The disadvantage of this method is that the password is visible in the location field of the browser for short time and it is not encoded. For a better security it is highly recommended to use the first authentication method wich requires java on browser side.
The profile containing userid, password and access list should be placed in a secure directory with restricted access (for example in AIX : /etc/security). If fmweb runs on UNIX, the user of fmweb gets the same access rights to the filesystem as the userid that started fmweb. If fmweb was started by user root or from the inittab, the fmweb user gets all access rights of user root.

Multi-user capabilities

fmweb can handle multiple users simultaneously, if they are not located on the same TCP/IP host. fmweb does not use session keys, so it cannot distinguish between two users comming from the same host. fmweb holds "session information" based on the IP address of the client, for example the current directory path.

Software Requirements

fmweb has been tested on the following operating systems : fmweb requires the Java Runtime Environment to be installed. The following combinations of java and operating systems have been tested : If running on OS/2 fmweb requires a HPFS partition. On client side a frames-capable Netscape version is required.
fmweb now uses Javascript, but still runs when javascript is disabled.
fmweb needs java 1.1 on browser side for the authentication applet. With lower security fmweb can be run in a mode that does not require client side java.

Installation

Unzip the the fmweb.zip file (OS/2, Windows and Linux) or Un-tar the fmweb.tar file (AIX) into a separate directory.
Edit the configuration files as described later. The sample config files will not work without customization for your environment.

Configuration

fmweb reads its configuration parameters from the config file and from 3 additional profiles :

The main configuration file fmweb.conf

This file must be located in the same directory as the .class files of fmweb. The statement Port defines on wich TCP/IP port fmweb should listen.
FmwebRoot must point to the installation directory containing for example all the .GIF files.
AccessLog gives the name of the log file where all transactions are logged.
AuthorizationFile is the name of the security file containing userid, password and the list of IP addresses allowed to access fmweb.
SystemEditor is the path and filename of the system editor used to edit files if the access to fmweb is from the local machine.
SearchProgram is the fully qualified file name of an external search program that is called from fmweb via the search button and gets the actual directory as the only parameter. This parameter is only meaningful for local access to fmweb.
AuthRefreshInterval is the time in minutes after wich new authentication with userid and password is required.
ClientJava must be set to "off" if the Web-browser has java disabled, wich means a lower security in the password authentication procedure.

The security file FMAUTH.PRO

The first line contains userid and password. The other lines are IP addresses of hosts that are allowed to access fmweb.

The Association file fmassoc.pro

With this file you can associate application programs to file patterns, for example file extensions.
Each line contains a file name mask, that can include the asterisk (*) as a place holder, and the path and name of the application program that should be started to work with these files.

The list of mime types mimetypes.conf

This file tells fmweb wich mime type to associate to a given file extension. The mime type is sent as part of the header of each HTML page to the Web Browser to tell how the browser should handle this document. If you have files with extensions not contained in the mimetypes.conf file, add them by editing the list.

Starting fmweb

The PATH environment variable should contain the directory where the java virtual machine executable (java) is located. If the CLASSPATH environment variable does not contain the installation directory of fmweb, you must change to this directory before calling
 java fmweb 
from the command prompt.
When the message
listening on port ... 
is displayed, fmweb is ready for connections from Web-Browsers.
The URL for accessing fmweb is :
 http://ipaddr_or_hostname:port/_fmweb 
for example :
 http://localhost:1998/_fmweb 

Navigation

To navigate through the directory tree, click on the folder icon in front of the directory name. If you want the files of a directory to be displayed in the right frame, click on the directory name.
You can quickly return to a previosly visited directory via the

fastpath button. The most frequently visited directories are displayed on top of the fastpath list.
If running on OS/2 or Windows fmweb shows a drive window, wich is refreshed every 120 seconds to include new mounted network drives or exclude dismounted drives.

File Functions

Some frequently needed opeartions on files can be accessed via the icons in front of the filename :
View the file in the Browser
Edit the file
Delete the file
Copy or Rename/Move the file
If fmweb is being accessed from the local machine, the edit function starts the system editor as defined in the the configuration file fmweb.conf . Otherwise, the file content is loaded in an edit window in the browser.
More functions on files can be accessed from the file meu, wich is opened by a mouse click on the file's name.
One function is the compression/decompression of files.
OS/2 and Windows :
Info-ZIP's ZIP and UNZIP package must be installed and the executables must be in a PATH directory. If multiple files are selected and the compress button is pressed, you must also specify the name of the destination ZIP file in the input field.
UNIX :
fmweb uses the compress/uncompress command to perform this function.
If multiple files are selected and the compress button is pressed, fmweb first creates a tar archive from the files wich is then compressed. Extracting files is the a two step function : first uncompress, then un-tar from the file funtion menu.
Important Note : The compress functions removes the original files after successfull compression! The uncompress function removes the .ZIP or .Z file after successfull decompression !

Known Problems

Under OS/2 fmweb may cause "drive not ready" popup messages for diskette or CD drives to appear when fweb queries the available drives and there is no medium in the drive. To circumvent this, place the following statement in the config.sys :
AUTOFAIL=YES
Currently there is no support for NLS special characters and spaces in file or directory names (for example German umlauts).
Under OS/2 there seems to be a 64 KB size limit for multi-line text areas. The result is that you cannot load more than 64 KB of text in the fmweb editor, wich consists of a html text area displayed in the Netscape browser (Netscape for OS/2 crashes if larger text is loaded into a text area).
Looping symbolic links are a problem for fmweb's FindFile and Directory Statistics functions, because java reports no difference between a symbolic link and a true directory. The result is a looping thread of fmweb. So avoid having such links or don't use these functions for directories containing looping links.
To run fmweb on Windows/NT a user must be logged on (it cannot be run as a service).
fmweb does not use the copy functions of the underlying operating system. Instead, fmweb does the read and write operations by itself. This gives platform-independence, but the result is that the copy destination file gets a new "last update" date and time. While the content of the file is still the same after copy, the date/time is not. A second disadvantage of this copy method is that additional attributes of the file (for example OS/2 EA's) are not copied.

Contact the author

If you find a bug or have suggestions for improvement please send an e-mail to the author
frank_hoehnel@hotmail.com .