Finished Rsync service implementation

This weekend i finished to implement the Rsync service. OpenMediaVault will act as Rsync server if this is enabled. Also scheduled Rsync jobs are supported which can be local or remote, where remote also support the push and pull modes. The user permission thing is a little bit tricky for Rsync modules when acting as a server, but i think i’ve found a good solution where everybody will be happy. If a rsync server module is read/write enabled only users with read/write and read-only permissions are allowed to contact the module if this is not public/anonymous. If the module is write-only then only users with read/write permissions are allowed to use this module.

Thanks to the ability to execute commands asynchronously it is also possible to run a job from within the WebUI. For those of you that are interested how it works: There are several RPC methods (start/stop/content) to manage the async command execution and displaying the command output in the WebUI. It was a little bit difficult to find the best implementation because i did not want to give away sensible informations about the command from the backend to the WebUI, on the other hand is should be easy and clear to understand and use. At the end a token (currently the pid of the command) is used to identify the async running command in a RPC call. But stop, there are some additional security checks in the backend that ensure that a RPC can not be used to stop any running command on the server. The pid is used as key to access a structure with all necessary informations which is stored in session. So it is not possible to use this feature to attack the system.

Finished generic SMB/CIFS service

The general SMB/CIFS service frontend and backend has been finished. Currently no Active Directory support has been implemented because i do not have enough knowledge about this feature, also i do not have a Windows Server installation for testing. But the backend has been designed that way to allow users with more knowledge to implement it via community plugin.

Finished S.M.A.R.T. management

The S.M.A.R.T. management has been finished now. It is possible to view and configure various S.M.A.R.T. parameters like the scan interval, temperature monitoring and scheduled tests. If the email notification is enabled the user will be notified in case of a S.M.A.R.T. error.

Week review

This week the progress slows down again a little bit due another backend refactoring. While implementing the WebGUI user administration i realized that the current implementation was lacking. Due this i began to refactor the PHP/bash script backend and also improved the Debian package postinst script which manages the initial configuration after installing the package.

Now it is possible to modify the password for the WebGUI administrator account ‘admin’ via the default user management.

Also it is possible to enable/disable/force SSL/TLS for the WebGUI.

Maybe you’ve also noticed that the navigation panel has been redesigned. The plugins are now able to define the order of appearance in the list.