[X2Go-Commits] [python-x2go] 01/01: Support server-side Telekinesis versions that ship their own (teki-)sftpserver.

git-admin at x2go.org git-admin at x2go.org
Wed Oct 1 11:01:41 CEST 2014


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository python-x2go.

commit 2ff5f60484743e2ecd831251f7aff85ad1ef77a1
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Oct 1 11:01:37 2014 +0200

    Support server-side Telekinesis versions that ship their own (teki-)sftpserver.
---
 debian/changelog    |    2 ++
 x2go/telekinesis.py |   26 +++++++++++++++++++-------
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index c8be003..c82ca2d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -92,6 +92,8 @@ python-x2go (0.5.0.0-0x2go1) UNRELEASED; urgency=low
     - Don't use compression on  TeKi sshfs mounts.
     - Handle duplicate profile names gracefully (i.e. append a " (1)",
       " (2)", ... to the session profile name). (Fixes: #500).
+    - Support server-side Telekinesis versions that ship their own
+      (teki-)sftpserver.
   * debian/control:
     + Add dependencies: python-requests, python-simplejson.
   * python-x2go.spec:
diff --git a/x2go/telekinesis.py b/x2go/telekinesis.py
index d649c37..1bedf6b 100644
--- a/x2go/telekinesis.py
+++ b/x2go/telekinesis.py
@@ -326,13 +326,25 @@ class X2GoTelekinesisClient(threading.Thread):
             if e.errno == 17:
                 # file exists
                 pass
-        telekinesis_sshfs_command = ['sshfs',
-                                     '-o', 'compression=no',
-                                     '-o', 'follow_symlinks',
-                                     '-o', 'directport={tekidata_port}'.format(tekidata_port=self.local_tekidata_port),
-                                     '127.0.0.1:{remote_home}/.x2go/C-{sid}/telekinesis/remote/'.format(remote_home=self.session_instance.get_remote_home(), sid=self.session_info),
-                                     '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info),
-                                    ]
+        if self.session_instance.has_server_feature('X2GO_TELEKINESIS_TEKISFTPSERVER'):
+            # the Perl-based SFTP-Server shipped with Telekinesis Server (teki-sftpserver) supports
+            # chroot'ing. Let's use this by default, if available.
+            telekinesis_sshfs_command = ['sshfs',
+                                         '-o', 'compression=no',
+                                         '-o', 'follow_symlinks',
+                                         '-o', 'directport={tekidata_port}'.format(tekidata_port=self.local_tekidata_port),
+                                         '127.0.0.1:/',
+                                         '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info),
+                                        ]
+        else:
+            # very first Telekinesis Server implementation used OpenSSH's sftp-server
+            # that lacks/lacked chroot capability
+            telekinesis_sshfs_command = ['sshfs',
+                                         '-o', 'compression=no',
+                                         '-o', 'follow_symlinks',
+                                         '-o', 'directport={tekidata_port}'.format(tekidata_port=self.local_tekidata_port),
+                                         '127.0.0.1:{remote_home}/.x2go/C-{sid}/telekinesis/remote/'.format(remote_home=self.session_instance.get_remote_home(), sid=self.session_info),
+                                         '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info),
         self.logger('forking threaded subprocess: %s' % " ".join(telekinesis_sshfs_command), loglevel=log.loglevel_DEBUG)
         self.telekinesis_sshfs = subprocess.Popen(telekinesis_sshfs_command,
                                                   env=self.TEKICLIENT_ENV,

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/python-x2go.git


More information about the x2go-commits mailing list