Softpanorama

May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

Less is More: The Orthodox File Manager (OFM) Paradigm

by Dr Nikolai Bezroukov

Content : Foreword : Ch01 : Ch02 : Ch03 : Ch04 : Ch05 : Ch06 : Ch07 : OFM1999 : OFM2004 : OFM2012


 Prev Contents  Next

Ch. 7: The History of Client-server and Web-based OFM implementations

Introduction

Starting from version 3 Norton Commander has client-server capabilities (initially via serial null modem line). It was clear even in times of DOS that OFM actually consists of two parts:

Now those capabilities are reimplemented using more modern technology. Client part can be implemented as a an extension of a browser and there is at least one such an implementation: Firecommander  in Google Projects

CGI interface looks pretty adequate for communication with various OFM components that perform user actions. Moreover CGI-based interface between client and server parts of OFM make it almost infinitely portable: all you need to run it on a new platform is some basic web-server. Browser with JavaScript capabilities can be on other  platform.  And Web server implementations exist for any platform.  Historically most CGI-based file managers were written in Perl and PHP, but few tried to implement Orthodox File Managers interface.

The second approach for the creating of truly portable OFM is to use Java for both parts. Java can be run inside the browser and that solve the client part of equation. And Java can run on any server and that solve that server part of equation.

In other words the principal idea here is to split OFM into two independent parts communicating using well established and refined HTTP or HTTPS protocol.

This is also provides an interesting capability for X11 based remote solutions such as  VNC  for administering servers over dial-up lines or other low bandwidth communication lines.  Also in this case keyboard emulation can be perfect and does not depend on idiosyncrasies of terminfo database on a particular platform -- the issue that hunts Unix OFMs.

Another reason is the crisis of several implementations, like Midnight Commander, which grow codebase to the extent that it became a complex mess of different libraries that are typical only for Linux. Which created problems with portability and actually discourage usage such OFM as mc as portability outside a couple of platforms (Linux and Solaris) is problematic.

In this case, even usage of traditional implementation of OFM using Java, such as muCommander along with VNC represents much more portable solution as long as JVM is already installed (which is true for all Unix flavors).

JavaScript-based based clients

Firecommander

firecommander is Orthodox File Manager implemented as Firefox extension in Javascript. 

Java-based OFMs

The leading Java OFM implementation muCommander is not implemented as client -server. It uses Java just as a portable implementation language. But it can definitely serve as a prototype for a client-server based implementation due to portability of Java.

muCommander

muCommander  the most portable OFM in existence. It is written is Java and currently does not have client-server capabilities. Here is some info from Wikipedia article:

muCommander is a lighweight, cross-platform file manager that will run on any operating system supporting Java. It features a Norton Commander style, dual-pane interface to allow easy manipulation of files with many keyboard shortcuts. Pre-compiled builds are available for Mac OS X, Microsoft Windows, Linux, Solaris, FreeBSD, OpenVMS, and the software can be run from the Internet via Java Web Start.

In 2009, muCommmander was recognized as one of the best file managers on Linux[2]. In 2010, it ranked 76th on the best free software list of PCMag[3].

It is actively maintained. It is pretty stable and contain most basic feature of OFM although it is far from compliance even to OFM standard 1999

muCommander is a cross-platform file manager. It features a Norton Commander style interface and runs on any OS supporting the Java 2 Platform, Standard Edition (Windows, Mac OS X, Solaris, Linux, *BSD...).

Here's a short list of what you'll find:

Ragework

RageWork 2.4 takes your resources in the next level RageWork is a cross-platform file manager designed to manage your files and documents and do a lot of cool things User Interface Simple, Multilingual, Skinable, English and Polish languages support

It could replace standard Explorer and other file manager

Over 30 new features were added. You need RageWork 2.4!!!  Basic operation on files

fmweb

[Sept 17, 2003] fmweb - the universal web-based file manager -- not very portable (does not work on Win32).

fmweb is a web-based filemanger written in Java. It can be used to manage the local filesystem or via the TCP/IP network the filesystems of remote machines.
The communication is via HTTP or HTTPS. fmweb has a built-in WWW server.
Although fmweb is a platform-independent java application, it offers many functions that specialized file managers for the operating system provide.
fmweb is a multi-user application, for each user a "document root" can be defined.
fmweb's picture browsing and manipulation functions allow to use it as a web picture album.
fmweb can be used by webspace providers to give the users simple access to their files.
This latest version has been tested on Linux, Windows/NT, Windows 2000 and SUN Solaris. Previous versions also worked on AIX and OS/2 and the new version should work on these platforms too.

JFM - Java File Manager

 freshmeat.net Java File Manager 0.5

About: JFM is an Windows Commander, Krusader, MC, Norton Comander, etc. clone, but written entirely in Java. It has no native parts, and is intended to remain that way. You can use the same file manager in every OS that you run, not having to get used to a new file manager when you boot a new OS.

FileManager servlet

FileManager servlet is a Java(tm) servlet that implements FileManager. You can use this servlet for example for remote site management: upload/download files, copy/move files, edit files etc. The main advantage is the usage HTTP protocol only for access to your host. So this approach is free from any firewall's restrictions.

How to use it:

a) copy fmanagerPackage.jar into WEB-INF/lib

b) describe FileManager servlet in web.inf file:

   <servlet>     <servlet-name>FileManager</servlet-name>     <servlet-class>com.jsos.fmanager.FileManager</servlet-class>     <init-param>      <param-name>config</param-name>      <param-value>path_to_your_configuration_file</param-value>     </init-param>    </servlet>

c) define a mapping for FileManager servlet in your web.xml file.

   <servlet-mapping>     <servlet-name>FileManager</servlet-name>     <url-pattern>/servlet/FileManager</url-pattern>    </servlet-mapping>

now you can run this servlet:

http://your_host/servlet/FileManager

or


http://your_host/servlet/FileManager?some_your_directory

Parameter config is optional. This parameter lets you define some configuration settings as an initial parameter for your servlet. You must set a path to the configuration file as an initial parameter for FileManager servlet.

Configuration file is a text file, each line describes one parameter in the form of

    parameter=value

Empty lines and any line starts with # or // are ignored.

Current version supports the following list of parameters:

# base (initial) directory. By default it will be the root directory of your servletunner.
dir=your_directory

# title (by default is empty - no title)
title=My Files

# style. Describes a link for your CSS style file. By default is empty. E.g.:
style=/css/mystyle.css

# background color (by default is #3366FF)
bgcolor=your_color

# foreground color (by default is #FFFFFF)
fgcolor=your_color

# color for visited directories (default is #FFFF00)
visicolor=your_color

#font size (by default is current browser's font)
size=your_size

#font face (by default is current browser's font)
face=your_font_face

# file extensions for visible files. Here you can set commas separated
# list of extensions. Only such files will be visible. By default
# this parameter is empty (all files are visible)
show=txt,xml,ini

# file extensions for text editor. Here you can set commas separated list of
# extensions. All such files are editable through this servlet.
# By default it is:  txt,htm,shtml,html,java,jsp,cpp,h,jsp,pl,sh,csh,xml,bat,ini
# E.g. :
edit=log,ini,htm,,txt

# head. You can set here some file contains any html-code. This code will be
# outputted at the beginning of the each page. So you can set for example some banners.
# By default this value is empty
head=path_to_your_file

# Look and feel mode. By default it is 1 (list of files like Norton Commander for example)
# 2 means Explorer like view
mode=1

# security mode. Default value is 0 - user may see any available directory
# on your server. If you set it to 1 user may see only initial
# directory and any directory below
security=1

# enable/disable functions. Possible values are 1 (enabled) or
# 0 (disabled). By default all actions are enabled.

# enable/disable uploading. Default value is 1
upload_enabled=1

# enable/disable edit. Default value is 1
edit_enabled=1

# enable/disable create directories
mkdir_enabled=1

# enable/disable copy files
copy_enabled=1

# enable/disable move/rename files
rename_enabled=1

# enable/disable delete files
delete_enabled=1

# how to open files. Default value is 0 - open in place, 1 - open in the
# separate window
window=0

# maximal size for uploaded file (in bytes). By default size is unlimited
maxFileSize=10000

# authorization flag (See Authorization section below)
authorized=attribute_name

# login page
login=your_page

# Date format. By default will use full date.
# You may set here format for date. E.g.:
date=dd/MM/yyyy

# localization support. You can set character encoding for input parameters
# here. Default value is ISO-8859-1
encoding=Cp1251

Authorization

You may incorporate this servlet into your portal where your users will be authorized. In order to prevent access to files from not authorized visitors you may use authorized parameter in your config file. Servlet assumes that your authorization procedure will put some object into session (as a flag for authorized users). And name for this object should be described for FileManager as a parameter authorized. Servlet checks session and if there is no such attribute than request will be forwarded or redirected to the page, described as a parameter login.

If login value starts with http than request will be redirected to that site. Otherwise servlet assumes a local resource and forwards request.

Note:

1. You can save such configuration file anywhere on your server. Just use the proper path for setting servlet's parameter. Short path (just name of the file) means that your configuration file is saved under the root (docBase) directory of your container.

2. Evaluation version adds an exta � information to the edited file and restricts size for the uploaded files.

    For downloading:   fmanagerPackage.jar

    Sample of config file: fmconf

MCJ

mcj is a Midnight Commander clone. It links to Ncurses via the Cygnus Native Interface and includes Doxygen documentation.

MCJ is a Midnight Commander clone written in Java as supported by the Gnu Compiler for Java (GCJ). No Java runtime or JDK is required. Mcj links to Ncurses via the Cygnus Native Interface. Doxygen provides nice documentation for reusable projects.

CGI-based

Pure CGI does not provide sufficient flexibility for implementation of OFM. You need Ajax capabilities to have sufficient amount of freedom.  Even better is to use CGI as just a layer for communicating commands from client to the server part of OFM.

Drall

Drall by Henrik Edlund is Web-based implementation of OFM. Current version is 1.16.0.0. Very interesting idea and one of the two top news for 1999(see also news item about CGI-based implementation). Platforms: Linux and Perl (any system supporting perl)

Drall allows users to access their directories and files remotely without the need of using insecure ftp and telnet. It enables the user to treat the remote file system as if it was on their local hard disk trough a normal web browser. The interface resembles the well known Norton Commander (of DOS fame) and Midnight Commander (of UNIX fame). Drall relies on the server's HTTP authentication and SSL for security. Dual-frame interface makes it easy to overlook file system and the modular design means you only use the features you need. Written in Perl for easy customization and expansion.

SiteMgr

SiteMgr - a web site manager. This CGI script will perform most of the file operations required for web site maintenance. You can use it to copy, move, edit, delete and upload files, and to create, move and delete directories. Installation can be done by the user or at the system level.

Easy file manager

Easy File Manager allows: the creation of user groups, limiting files size and types on each user account, uploading multiple files from a local computer, URLS, or FTP sites, and management of web protection for certain folder types, among others. Easy File Manager also allows the extraction of archives, editing of existing files, and file archiving, among others.

Platform(s): Perl 5.005 or higher, Unix, CGI access

efileman

efileman is a web based file management solution written in perl with the following features: create, copy, move, rename, edit, delete, upload, download, zip, unzip or change permissions of files and directories; multifile operations; multiuser access, password protected with one or more entry points in a directory structure; full skinable, choose a design or create your own; disable or hide functions generally or per user web based user administration; email interface for communication between administrator and user, works with sendmail and the like or SMTP; multilanguage support; works with files inside and outside the html root, in last case the full path will be hidden; extra script part for automatic user account creation.

WebRSH

WebRSH is a CGI program which implements a general purpose web-based computing shell. It provides a command line interface, file manager, text editor, and a few other basic things, while being highly configurable and adaptable to various tasks. It can replace, to some extent, rsh, telnet, and ftp daemons.

WebRFM (Web-based Remote File Manager) is a CGI-Perl program aimed at providing a single solution for remote web-based file management. It can replace traditional FTP-based access for that purpose. It is suitable for managing websites, as well as for more general purpose file management tasks.

December 18, 1999 :

December 7, 1999 :

WebRFM 0.3b is now available. The main changes are listed in the changelog.

July 15, 1999 :

Glenn Ellingson is working on a modified version of WebRFM that adds some functionality (locking capability and some other things). His geeWebRFM variant can be found at the geeWebRFM site.

July 10, 1999 :

What is it?

WebRFM (Web-based Remote File Manager) is a CGI-Perl program aimed at providing a single solution for remote web-based file management. It can replace traditional FTP-based access for that purpose. It is suitable for managing websites, as well as for more general purpose file management tasks. WebRFM combines a "visible" HTML 3.2 compliant form-based layer (which is in the spirit of the tools currently provided by many large hosting services) along with a "hidden" direct HTTP layer that implements a class 1 WebDAV server. Support for some legacy HTTP methods (which are essentially borrowed from AOLserver and Netscape's Enterprise server) is also provided. While WebRFM can be installed and used by individual users, it is specifically designed to provide a secure system-wide solution that is suitable for usage by ISP's, web-space providers, etc. WebRFM currently runs on UNIX/Linux systems.

WebRFM's "visible" layer provides basic file management capabilities (including form-based file uploading and a built-in text editor) using any HTML 3.2 compliant web browser. The "hidden" layer provides server-side support for many existing clients, ranging from simple PUT-based publishing support for clients such as Amaya , StarOffice , and Netscape's Composer , to full fledged file management capabilities with clients such as AOLpress , Cadaver , DAV Explorer , and the Web Folders feature of Microsoft's Internet Explorer 5. Additional clients that work with WebRFM include SiteCopy , Microsoft's Office 2000 applications (they work with the Web Folders), and Netscape's Communicator Roaming Profiles.

WebRFM implements a virtual-root mechanism, such that each user's access is restricted to his own area (home directory, by default), and it is designed to run in the user's security context (UID/GID) such that OS-based access control and quota limits are also being imposed. A special setuid wrapper to enable this is included. Other wrappers (such as the Apache suEXEC wrapper) can also be used.

WebRFM is free software distributed under the terms of the GNU General Public License.

For more information, you can view the readme file. We also have a very rough static demonstration of WebRFM's primary form-based interface. At the primary site, there is also a Read-Only Live Demonstration.

WebRFM is a relative of WebRSH.

PHP-based

While PHP based OFM are WEB based they are discussed in the previous chapter as PHP is a scripting language, not that different from Perl, Python and Ruby. One example is FSGuide -- a Norton Commander clone used by many hosting firms and individuals for advanced file management through the Web. It features user management (password protection, and access control), advanced file selection dialogs, a multiple file uploader (which can also run any application after uploading), a text viewer, a binary file viewer, a source highlighting viewer, an internal text and binary editor, language support, and much more. 

 

 Prev Contents  Next



Etc

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater�s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D


Copyright � 1996-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March, 12, 2019