Description
mPFM is basically a PHP driven File Manager released under the GPL and designed with security and functionality in mind and is intended primarly for Advanced Linux/Windows System Users who need a remote way to manage a System Partition's files.
It's a cross-browser web application which validates against W3.org's XHTML 1.0 and CSS2 Validators. It was tested in FF 3.0, IE 7.0 and Safari 3.1. Any other previous release of the mentioned browsers or any other browser may not work as intended or may not work at all.
Configuration
To run it correctly you just need a properly configured LAP (Linux Apache PHP). Try and use only the latest PHP4 or PHP5 versions.
To make it work you just need to input the desired settings the first time you use mPFM and you're good to go! (The first time it runs it will automatically check for some files/folders and then prompt you to create a configuration file.)
Once all configuration variables were correctly set, it creates 3 areas within the browser window: one with the folder tree containing the folders found through recursive scanning, one containing the folders and files found in the selected directory and one containing my name, my e-mail and W3.org XHTML and CSS validation logos.
Features
Since version 2.7 mPFM now features a very useful Key Bindings System which allows you to COMPLETELY control mPFM through a keyboard.
Since version 3.1 mPFM now features a MultiLingual Interface. To create another language option simply translate the file 'EN.ini' from the 'langs' folder and give the translation a name like <LN>.ini (yes, two letters) and mPFM will automatically pick it up!
Currently, mPFM can (if given proper permissions):
- help you to easily set it up first time it runs.
- edit/view/rename/create/delete/copy/move/chmod files and folders (creates needed directories). (For copy/move/delete actions, if errors are encountered, the files'/folders' paths which gave the error will be displayed.)
- create ZIP archives of either one or more files or whole directories (recursively).
- manage uploads of one or more files simultaneously.
- search for files and folders in current folder.
- display file's/folder's owner and group names.
- sort files and folders by Name/Type/Size/Owner/Group/Last Accessed and Last Modified dates.
- execute shell commands and display the result.
- display PHP code using pretty colours.
- please your eyes using eye-candy filetype, folder and action icons.
- restrict access based on users/groups, each group with its own set of allowed actions.
- show some useful Partition statistics.
- change file/folder ACLs (Access Control Lists) (if given proper permissions).
- automatically logs you out when your session time comes to an end.
Note1: *!! MIGHT BE A SECURITY HOLE !!*
How to be able to change File/Folder ACLs from within the File Manager:
First, check /etc/fstab to see wether the partition you wish to change ACLs on has 'acl' set as an option, else adding ACLs to files/folders won't work.
Second, Apache or Lighttpd web server drops root privileges as soon as they go into background. This makes executing root commands difficult.
Typically, Apache2 uses www-data username and Lighttpd uses lighttppd username to drop privileges.
First, type this command to find out where the `setfacl` command resides within the System's folders.
# which setfacl (should output something like: /usr/bin/setfacl)
Then login as root user and type the following command:
# visudo
Now allow your web server to execute a script (setfacl) w/o password. If you are using Apache web server, type the following command:
www-data ALL=NOPASSWD: /usr/bin/setfacl
ALTERNATIVELY, if you are using Ligtttpd web server, type the following command:
lighttpd ALL=NOPASSWD: /usr/bin/setfacl
OR, if none of the above work for you, check your `httpd.conf` (or whatever name your WebServer configuration file has) and check what username the WebServer uses to run under and use that value.
<webserver_rununder_name> ALL=NOPASSWD: /usr/bin/setfacl (w/o `<>`)
Save and close the file.
Reboot the System.
Note2: You may use any part of mPFM's source code only if you mention my name, this application's name and where you got it from within your source code (e.g.: as a comment somewhere). I also used a few bits of code released under the LGPL and some other few under a special Distributor's License. If you want to use their bits of code, do as I did and include their names in your source code and keep the necessary license's close to where your files reside.
Screenshots
Who needs ScreenShots when you can try the Live Demo directly!
(user: user | pass: pass)
Changelog
v3.1b - 30/09/2008
- Fixed insignificant display bug in Configuration window.
- Fixed almost insignificant bug in the log function.
v3.1a - 29/09/2008
- Fixed the Configuration Editor on mPFM's first run. It showed no explanation for any of the input fields presented.
v3.1 - 26/09/2008
- Added MultiLingual interface support. (If anyone translates it into a different language, please email me the language file, I would very much appreciate it and give You credit for it.) -> Only Install Script and the Login Window are in English.
- Fixed some minor bugs.
v3.0 - 25/09/2008
- Added the ability to run on Windows Webservers as well as on Linux Webservers.
- Added compatibility with IE 7.0+, Firefox 3.0+ and Safari 3.1+. Any other previous release of the mentioned browsers or any other browser may not work as intended or may not work at all. I personally tested the mentioned browsers. I hope all is well...
- Added a dynamic 'time to AutoLogout' counter. When it hits 0, it will automatically log you out.
- Added an option to clear the TMP directory (aka the Cache). It is located in the Configuration window.
- Fixed some minor bugs.
v2.8a - 17/09/2008
- Removed IE support. It works mostly, but the latest features introduced in v2.8 break the IE broswer. It's such a picky browser... Thank God for FireFox...
v2.8 - 17/09/2008
- Replaced the pop-up windows (MultiEditor) with an iFrame, providing exactly the same functionality, without the hassle of another window.
- Added a function to simplify the process of modifying the configuration file.
- The Log now logs the IP addresses as well. [I don't know why I didn't think of this from the beginning... It must have just slipped my mind...]
- Fixed some minor bugs.
v2.7 - 16/09/2008
- Added a sanitization function for URIs.
- Changed the way the file/folder rows are displayed by hiding the CheckBoxes.
- Implemented Key Bindings. The FM can now be used solely with a Keyboard. A list with all of the shortcuts is always shown in the upper left corner. -> IF ANYONE HAS ANY SUGGESTIONS REGARDING THE ACTUAL KEY BINDINGS, PLEASE E-MAIL ME!!
- Added live tracking of total selected items size (files/folders).
- Fixed the checking of permissions when displaying files and folders so that it displays/hides Edit/Rename actions based on file permissions.
- Fixed some minor bugs.
v2.6a - 02/07/2008
- Fixed Install.php so that it will not delete the configuration file, but instead it will warn about its existance and asks for its deletion.
- Fixed the last security improvement as there were still some uneeded direct uses of Cookie values in index.php.
- Fixed the lock action. The first time an account would get locked, two important configuration options would disappear.
v2.6 - 26/06/2008
- Minor bugfixes regarding file editing.
- Removed support for Creating RAR Files. (Reason: It sometimes generated unexpected results. Support for Creating ZIP Files still exists.)
- Rewrote multi_editor.php from scratch, optimizing it and fixing some bugs.
- Improved security by minimizing the need for Cookies (they still exist). All of the needed Login values are retrieved only once from Cookies, the rest of the time from the Login Trace.
- Removed TimeMCE Editor. (Reason: was annoying and it did not serve the purpouse of mPFM)
v2.5 - 25/06/2008
- Fixed Shell command so that it's output is displayed nicely in html.
- Fixed vulnerability which could allow a user not supposed to see the configuration file to actually see it.
- Added the option to define a list of words in the Visual Configuration Panel, which if found in the shell command, break the command.
- Added the option to define a list of disabled actions in the Visual Configuration Panel.
- Fixed the displaying of images. This feature has been broken a few releases back.
- Added an extra check to the Login System. It now checks for user login trace with each login, so if a trace already exists for a certain username, another person using the same username will not be able to login unless the username has been marked as Logged Out (aka Login trace gets deleted).
- Minor bugfixes.
v2.4 - 24/06/2008
- Created an Install Script to help with Setting up mPFM.
- Fixed working with ACLs.
- Added the possibility to change the ACLs of multiple files/folders at once.
- Added the possibility to Chmod multiple files/folders at once.
- Minor bugfixes.
v2.3 - 23/06/2008
- Added AutoLock of user accounts if wrong password is used for 3 times when logging in.
- Added option to edit Locked Accounts using the Visual Configuration Panel.
- Added option to Protect Groups from being locked using the Visual Configuration Panel.
- Added User Access/Action Log and an option to view and empty it.
- Greatly Improved security by preventing account hacking through manipulation of cookies. Implemented unique Login traces.
- Added AutoLogout after the number of seconds set in the Visual Control Panel.
- Improved checking for permissions when clicking on an action link.
- Added the possibility to change ACLs (Access Control Lists). (Note: Proper permissions needed. CHECK README.)
v2.2d - 06/06/2008
- Fixed main view color change on hover over file/folder names. Would not change color after deselecting a file/folder.
v2.2c - 06/06/2008
- Fixed main folder display - it did not show at all.
v2.2b - 06/06/2008
- Fixed minor display bug when setting Show Extensions to False.
- Minor Configuration Pannel fixes.
- Removed the scroll and fadein effects.
v2.2a - 06/06/2008
- Fixed the visual configuration panel. It had conflicting include's when run for the first time. It made the FM unusable.
v2.2 - 06/06/2008
- Added visual configuration panel. Removed the need to edit files directly. Used my own INI Parser. (Note: if you would like mPFM to detect more file types, you have to edit 'include/settings.php' ONLY the settings related to file extensions)
- Implemented user/group based access, each group with its own access to FM Actions.
v2.1 - 03/06/2008
- Fixed actions to work for current loaded folder.
- Fixed chmod for folders to chmod folders as well (it only chmoded files).
- Changed login style to rely on cookies rather than on sessions.
- Added checking for permissions when clicking on an action link.
- Fixed tree generation for files that contain dots, commas, inverted commas ("), whitespaces etc.
- Fixed the way the file manager looked in IE 7.0.
- Images can now be viewed even if the $scandir variable is set to an absolute path.
- Added some nice effects on first page load and for each folder contents load.
- Added TinyMCE WYSIWYG controls if they are needed when editing a source file. I also added TinyMCE Compressor PHP to reduce the loading time of TinyMCE.
v2.0 - 02/06/2008
- Redesigned mPFM using AJAX. (jQuery)
- Improved unique id generation for Tree view. (again)
- Added the display of symbolic folder link's real path.
v1.6 - 31/05/2008
- Improved unique id generation for Tree view.
- Added detection of symbolic links in Main view.
- Improved disk stats in Main view. (shows partition Free Space %, Free Space GB, Total Space GB)
- Minor code and visual improvements.
1.5 - 30/05/2008
- Redesigned the Tree view using the code from http://www.TreeView.net. (Distributor's License included)
- Added recognition of Symbolic links within the Tree view.
- Added a variable that controls wether the Tree view should refresh or not after N seconds (N is configurable).
- Added select file/folder by clicking anywhere on its row.
- Added setting for truncating filename names if their length is greater than this setting.
- Rearraged the Delete/Move/Copy/Download/Check All/Check None/Invert Check icons.
- Added version identifier in the main view, near the logo.
- Minor adjustments to multi_editor.php regarding the displayed text.
- Changed the top menu actions' appearance some more.
v1.4 - 28/05/2008
- Removed [] from top menu icons, changing their appearance.
- Modified a bit and centered the text from multi_editor.php based on window height and width.
- Changed Delete/Move/Copy/Download/Check All/Check None/Invert Check text to image icons in the main view.
- Made the tree view reflect the current folder by changing the last clicked link's style.
v1.3 - 26/05/2008
- Fixed bug introduced in v1.2 that made the FM unrecognize archive fily types.
- Fixed bug with files/folders that have ' ' (space) in their names, did not archive properly. Now the ' ' are replaced by '_'.
- Fixed bug with Downloading multiple folders AND files at once (with the checkboxes).
v1.2 - 25/05/2008
- Removed the Zip/Rar functions for archives, they can be downloaded directly.
v1.1a - 25/05/2008
- Fixed major bug introduced in previous version which made almost any action unusable.
v1.1 - 25/05/2008
- Added password protection.
- Fixed some minor bugs.
v1.0 - 24/05/2008
Please report any bugs using my email found at the bottom of this webpage.
Download
mPFM v3.1b *
mPFM v3.1a
mPFM v3.1
mPFM v3.0
mPFM v2.8a
mPFM v2.8
mPFM v2.7
mPFM v2.6a
mPFM v2.6
mPFM v2.5
mPFM v2.4
mPFM v2.3 (removed)
mPFM v2.2d
mPFM v2.2c
mPFM v2.2b (removed)
mPFM v2.2a
mPFM v2.2 (removed)
mPFM v2.1
mPFM v2.0 (removed)
mPFM v1.6
mPFM v1.5
mPFM v1.4
mPFM v1.3
mPFM v1.2
mPFM v1.1a
mPFM v1.1 (removed)
mPFM v1.0
* - Current Release