Metadata-Version: 2.0
Name: netdrive-connector
Version: 1.2
Summary: GUI tool to setup mountable SFTP and WebDAV connections on Linux/UNIX systems.
Home-page: http://github.com/ethoms/netdrive-connector/
Author: Euan Thoms
Author-email: euan@potensol.com
License: BSD License
Keywords: connect remote network filesystem mount davfs webdav fuse sshfs sftp
Platform: UNKNOWN
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Utilities
Classifier: Topic :: System :: Networking
Classifier: Topic :: System :: Systems Administration

netdrive-connector
==================

**Utility to setup mountable SFTP and WebDAV connections on Linux/UNIX systems.**


Introduction
~~~~~~~~~~~~

netdrive-connector is a simple PyQt4 wrapper for the existing and standardized
way to get SFTP and WebDAV shared folders (remote filesystems) mounted into your
local filesystem. Usually a folder inside your home folder. With the optional 
addition of auto-mounting at desktop login and passwordless login.

It makes it quick and easy to get one of these shared folders up and running 
without having to know how to set them up manually.


Pros
~~~~

- Simple and effective.
- Uses robust existing technologies (sshfs, davfs2).
- No unnecessary config files or metadata.
- Saves learning how to set up these remote filesystems manually.


Cons
~~~~

- May inhibit learning of underlying techologies.


Current Limitations
~~~~~~~~~~~~~~~~~~~

- The auto unmount at logout is KDE centric (uses ~/.kde/shutdown). Please let me 
  know if there is a logout script for other DE's / WM's.
- No UI localization support (English only).
- Only available for Linux. Hopefully FreeBSD to follow soon (sshfs only).
- Makes some assumptions about the system configuration.


Installation Notes
~~~~~~~~~~~~~~~~~~

- Always check in your distributions' repository first.
- If no packages are available for your distribution, install distro specific
  dependencies then install from PyPi (pip).
- Slackware has a SlackBuild maintained by me (primary developer).
- I'll try to add more to the 'release' section as I get time and help to package 
  for more distributions.

**From PyPi (pip)**

Make sure dependencies are installed (see below).

.. code-block::

    pip install netdrive-connector

**From source**

Make sure dependencies are installed (see below).

.. code-block::

    git clone https://github.com/ethoms/netdrive-connector.git
    cd netdrive-connector
    python setup.py sdist
    pip install dist/netdrive-connector-*.tar.gz


**From basic rpm package**

Make sure dependencies are installed (see below).

*Caveats: this will create a very basic rpm package without dependency information.*

.. code-block::

    git clone https://github.com/ethoms/netdrive-connector.git
    cd netdrive-connector
    python setup.py bdist_rpm
    rpm -ivh netdrive-connector-*.noarch.rpm

This may be converted to other packaging systems using 'alien'.
See this `Alien How To <https://www.howtoforge.com/converting_rpm_to_deb_with_alien>`_.


Usage Notes
~~~~~~~~~~~

Any regular user accounts that intend to mount a connection may need additional
unix groups ( fuse, sshfs, davfs2). This varies depending on the distribution.

In addition to the main GUI tool, there are command line utilities to add and remove
connections. These are as follows:

**add-sftp-connector**

.. code-block::

    # add-sftp-connector

    Usage (1): /usr/bin/add-sftp-connector username@server_url mount_point
    Example  : /usr/bin/add-sftp-connector bill@host1.example.com:/shares /home/bill/Shares
    Example  : /usr/bin/add-sftp-connector bill@host1.example.com:22/shares /home/bill/Shares

    Usage (2): /usr/bin/add-sftp-connector username@server_url mount_point key
    Example  : /usr/bin/add-sftp-connector bill@host1.example.com:/shares /home/bill/Shares key
    Example  : /usr/bin/add-sftp-connector bill@host1.example.com:22/shares /home/bill/Shares key

    Usage (3): /usr/bin/add-sftp-connector username@server_url mount_point key sftp_password
    Example  : /usr/bin/add-sftp-connector bill@host1.example.com:/shares /home/bill/Shares key opensesame
    Example  : /usr/bin/add-sftp-connector bill@host1.example.com:22/shares /home/bill/Shares key opensesame
    !WARNING!: this method may save your password to the HISTFILE (command history)

    NOTE:    : options (2) and (3) will add a local ssh key to the remote authorized_keys for password-less login.

**remove-sftp-connector**

.. code-block::

    # remove-sftp-connector

    Usage (1): /usr/bin/remove-sftp-connector username@server_url mount_point
    Example  : /usr/bin/remove-sftp-connector bill@host1.example.com:22/shares /home/bill/Shares


**add-webdav-connector**

.. code-block::

    # add-webdav-connector

    Usage (1): /usr/bin/add-webdav-connector server_url mount_point
    Example  : /usr/bin/add-webdav-connector http://webdav.example.com:80/shares /home/bill/Shares

    Usage (2): /usr/bin/add-webdav-connector server_url mount_point username
    Example  : /usr/bin/add-webdav-connector http://webdav.example.com:80/shares /home/bill/Shares bill

    Usage (3): /usr/bin/add-webdav-connector server_url mount_point username password
    Example  : /usr/bin/add-webdav-connector http://webdav.example.com:80/shares /home/bill/Shares bill opensesame
    !WARNING!: this method may save your password to the HISTFILE (command history)

    NOTE:    : options (2) and (3) will add an entry to the ~/.davfs2/secrets file for password-less login.

**remove-webdav-connector**

.. code-block::

    # remove-webdav-connector

    Usage (1): /usr/bin/remove-webdav-connector server_url mount_point
    Example  : /usr/bin/remove-webdav-connector http://webdav.example.com:80/shares /home/bill/Shares


Packaging Notes
~~~~~~~~~~~~~~~

- I'm always willing to assist in packaging for as many distros as possible. Create
  an 'Issue' if you need assistance from me.
- Subject to the distribution and it's fuse, davfs2, sshfs packages, a user may need 
  adding to additional groups (fuse, davfs/davfs2 etc.). In Slackware, only the davfs2 
  group is required.
- An ssh-askpass program should be installed and configured to work with sshfs.
- At some point in the operation of adding/removing connections, a temporary 
  script is placed in /tmp and given execute permission. After use it is deleted. 
  A regular user will need permissions to do this.
- *WARNING: The webdav connection script 'add-webdav-connector' will turn the setuid 
  bit on /usr/bin/mount.davfs*.


Dependencies
~~~~~~~~~~~~

- **python** v2.7 or above (not python 3).
- **PyQt4** v4.8 or above (python-qt4 on debian based distros).
- **ssh-askpass**, or a variant of. Tested with *x11-ssh-askpass*.
- **expect** (version 5.x or above should be OK).
- **fuse**.
- **sshfs** (*sshfs-fuse*) v2.4 or above recommended.
- **davfs2** v1.4.6 or above recommended.
- **openssh-client**.
- awk, grep, ls, cut, chown, cat, chmod, sed, uname, who.

*Note: Either davfs2 or sshfs are not required if that connection type is unused.*


Screenshots
~~~~~~~~~~~

**netdrive-connector Main Window**

.. image:: https://github.com/ethoms/netdrive-connector/blob/master/screenshots/netdrive-connector1.png


