[X2go-Commits] x2goserver.git - master (branch) updated: 3.0.99.9-15-g68c31a6

X2go dev team git-admin at x2go.org
Wed Feb 1 12:46:44 CET 2012


The branch, master has been updated
       via  68c31a60197982a605f9e38a6e4720ab05e56825 (commit)
      from  c6ecbeac0b53bea969d82c2cf8fe54ac28f762f8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 68c31a60197982a605f9e38a6e4720ab05e56825
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Feb 1 12:44:48 2012 +0100

    changelog cleanup

-----------------------------------------------------------------------

Summary of changes:
 debian/changelog               |    4 +-
 x2goserver/bin/x2gomountdirs   |  380 +++++++++++++++++++++++-----------------
 x2goserver/etc/x2goserver.conf |    4 +
 3 files changed, 222 insertions(+), 166 deletions(-)

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 58ff0d3..311a312 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,7 +2,7 @@ x2goserver (3.0.99.10-0~x2go1) UNRELEASED; urgency=low
 
   [ Mike Gabriel ]
   * New upstream version (3.0.99.10):
-    - Replace all string ,,X2Go.' with ,,X2Go''.
+    - Replace all string ,,X2go.' with ,,X2Go''.
     - Use $(MAKE) -C <subdir> calls to run Makefiles in subfolders.
     - Disable rastering in >= KDE4.8 and Qt4.8.
   * x2goserver.postinst script leaves the DB file alone if
@@ -19,7 +19,7 @@ x2goserver (3.0.99.10-0~x2go1) UNRELEASED; urgency=low
   * New upstream version (3.0.99.10):
     - Check whether the associated TCP/IP port is available before
       assigning a display number.
-  * Add net-tools packaged as dependency.
+  * Add net-tools package as dependency.
 
   [ John Williams ]
   * New upstream version (3.0.99.10):
diff --git a/x2goserver/bin/x2gomountdirs b/x2goserver/bin/x2gomountdirs
index 0d52a7b..883c3cb 100755
--- a/x2goserver/bin/x2gomountdirs
+++ b/x2goserver/bin/x2gomountdirs
@@ -22,6 +22,7 @@
 
 use strict;
 use Sys::Syslog qw( :standard :macros );
+use Config::IniFiles;
 
 use lib `echo -n \$(x2gobasepath)/lib/x2go`;
 use x2godbwrapper;
@@ -30,9 +31,20 @@ use x2gologlevel;
 openlog($0,'cons,pid','user');
 setlogmask( LOG_UPTO(x2gologlevel()) );
 
+if ( @ARGV lt 5 ) {
+	print("usage: x2gomountdirs <mount-type> <session-id> <user> <key> <client-folder-1> [<client-folder-2> [...]]\n");
+	exit -1;
+}
 
 syslog('info', "x2gomountdirs has been called with options: @ARGV");
 
+my $Config = Config::IniFiles->new( -file => "/etc/x2go/x2goserver.conf" );
+my $allow_foldersharing = $Config->val("clientshares", "folders", 1);
+my $allow_mimebox = $Config->val("clientshares", "mimebox", 1);
+my $allow_printing = $Config->val("clientshares", "printers", 1);
+
+syslog('debug', "allow client-side sharing... folders: $allow_foldersharing, printers: $allow_printing, mimebox: $allow_mimebox");
+
 my $type=shift;
 my $session=shift;
 my $user=shift;
@@ -98,227 +110,267 @@ close(F);
 chmod(0600,"$key");
 chmod(0600,"$key.ident");
 
-my $mdir="/tmp/$ENV{'USER'}_media";
-my $ldir="$ENV{'HOME'}/media";
-my $spooldir_lnk="$ENV{'HOME'}/.x2go/C-$session/spool";
-my $spooldir="/tmp/spool_$ENV{'USER'}";
-my $mimeboxdir_lnk="$ENV{'HOME'}/.x2go/C-$session/mimebox";
-my $mimeboxdir="/tmp/mimebox_$ENV{'USER'}";
+my $mdir;
+my $spooldir;
+my $mimeboxdir;
+my $plasmstamp;
 
-if (! -e $mdir)
-{
-	mkdir($mdir);
-}
-chmod(0700,$mdir);
 
-if (! -e "$mdir/disk")
+if ( $allow_foldersharing eq 1 )
 {
-	mkdir("$mdir/disk");
-}
-chmod(0700,"$mdir/disk");
+	$mdir="/tmp/$ENV{'USER'}_media";
+	my $ldir="$ENV{'HOME'}/media";
 
-if (! -e "$mdir/cd")
-{
-	mkdir("$mdir/cd");
-}
-chmod(0700,"$mdir/cd");
-
-if (! -e "$mdir/rm")
-{
-	mkdir("$mdir/rm");
-}
-chmod(0700,"$mdir/rm");
+	if (! -e $mdir)
+	{       
+		mkdir($mdir);
+	}
+	chmod(0700,$mdir);
 
-my $plasmstamp=$mdir."/".$session.".plasmoid";
+	if (! -e "$mdir/disk")
+	{
+		mkdir("$mdir/disk");
+	}
+	chmod(0700,"$mdir/disk");
 
-if (! -e $spooldir)
-{
-	mkdir($spooldir);
-}
-chmod(0700,$spooldir);
+	if (! -e "$mdir/cd")
+	{
+		mkdir("$mdir/cd");
+	}
+	chmod(0700,"$mdir/cd");
 
-$spooldir="$spooldir/$session";
-if (! -e $spooldir)
-{
-	mkdir($spooldir);
-}
-chmod(0700,$spooldir);
+	if (! -e "$mdir/rm")
+	{
+		mkdir("$mdir/rm");
+	}
+	chmod(0700,"$mdir/rm");
 
-if (! -e $mimeboxdir)
-{
-	mkdir($mimeboxdir);
-}
-chmod(0700,$mimeboxdir);
+	$plasmstamp=$mdir."/".$session.".plasmoid";
 
-$mimeboxdir="$mimeboxdir/$session";
-if (! -e $mimeboxdir)
-{
-	mkdir($mimeboxdir);
-}
-chmod(0700,$mimeboxdir);
+	if ( -d $ldir)
+	{
+		rmdir($ldir);
+	}
 
-if ( -d $ldir)
-{
-	rmdir($ldir);
+	if ( ! -l $ldir)
+	{
+		system ("ln -s $mdir $ldir");
+	}
 }
 
-if ( ! -l $ldir)
+if ( $allow_printing eq 1 )
 {
-	system ("ln -s $mdir $ldir");
-}
+	my $spooldir_lnk="$ENV{'HOME'}/.x2go/C-$session/spool";
+	$spooldir="/tmp/spool_$ENV{'USER'}";
+	if (! -e $spooldir)
+	{
+		mkdir($spooldir);
+	}
+	chmod(0700,$spooldir);
 
-if ( -d $spooldir_lnk)
-{
-	rmdir($spooldir_lnk);
-}
+	$spooldir="$spooldir/$session";
+	if (! -e $spooldir)
+	{
+		mkdir($spooldir);
+	}
+	chmod(0700,$spooldir);
+	if ( -d $spooldir_lnk)
+	{
+		rmdir($spooldir_lnk);
+	}
 
-if ( ! -l $spooldir_lnk)
-{
-	system ("ln -s $spooldir $spooldir_lnk");
+	if ( ! -l $spooldir_lnk)
+	{
+		system ("ln -s $spooldir $spooldir_lnk");
+	}
 }
 
-if ( -d $mimeboxdir_lnk)
+if ( $allow_mimebox eq 1 )
 {
-	rmdir($mimeboxdir_lnk);
-}
+	my $mimeboxdir_lnk="$ENV{'HOME'}/.x2go/C-$session/mimebox";
+	$mimeboxdir="/tmp/mimebox_$ENV{'USER'}";
 
-if ( ! -l $mimeboxdir_lnk)
-{
-	system ("ln -s $mimeboxdir $mimeboxdir_lnk");
-}
+	if (! -e $mimeboxdir)
+	{
+	mkdir($mimeboxdir);
+	}
+	chmod(0700,$mimeboxdir);
 
-my $uname=$ENV{'USER'};
+	$mimeboxdir="$mimeboxdir/$session";
+	if (! -e $mimeboxdir)
+	{
+		mkdir($mimeboxdir);
+	}
+	chmod(0700,$mimeboxdir);
 
-my @dirs=split(':',$dirlist);
-for (my $i=0;$i<@dirs;$i++)
-{
-	my $printspool=0;
-	my $mimeboxspool=0;
-	my $mntpath;
-	if(@dirs[$i]=~m/__PRINT_SPOOL_/)
+	if ( -d $mimeboxdir_lnk)
 	{
-		@dirs[$i]=~s/__PRINT_SPOOL_//;
-		$printspool=1;
-		$mntpath=$spooldir;
-		syslog('debug', "mounting $spooldir, mount point type is print spool directory");
+		rmdir($mimeboxdir_lnk);
 	}
-	elsif(@dirs[$i]=~m/__MIMEBOX_SPOOL_/)
+
+	if ( ! -l $mimeboxdir_lnk)
 	{
-		@dirs[$i]=~s/__MIMEBOX_SPOOL_//;
-		$mimeboxspool=1;
-		$mntpath=$mimeboxdir;
-		syslog('debug', "mounting $mimeboxdir, mount point type is MIME box directory");
+		system ("ln -s $mimeboxdir $mimeboxdir_lnk");
 	}
-	else
+}
+
+if ( $allow_foldersharing | $allow_printing | $allow_mimebox gt 0 )
+{
+	my $uname=$ENV{'USER'};
+
+	my @dirs=split(':',$dirlist);
+	for (my $i=0;$i<@dirs;$i++)
 	{
-		my $p=@dirs[$i];
-		if ($type ne "dir")
+		my $skip_mount=0;
+		my $printspool=0;
+		my $mimeboxspool=0;
+		my $mntpath;
+		if(@dirs[$i]=~m/__PRINT_SPOOL_/)
 		{
-			$p=~s/\/ramdrive\/mnt\///;
-			if ($p =~ m/CDROM/)
+			if ( $allow_printing eq 1 )
 			{
-				$mdir=$mdir."/cd";
+				@dirs[$i]=~s/__PRINT_SPOOL_//;
+				$printspool=1;
+				$mntpath=$spooldir;
+				syslog('debug', "mounting $spooldir, mount point type is print spool directory");
+			} else {
+				syslog('warning', "client tried to mount $spooldir which is denied by server configuration");
+				print "\nX2Go server denied client-side printing.\n";
+				$skip_mount=1;
 			}
-			else
+		}
+		elsif(@dirs[$i]=~m/__MIMEBOX_SPOOL_/)
+		{
+			if ( $allow_mimebox eq 1 )
 			{
-				$mdir=$mdir."/rm";
+				@dirs[$i]=~s/__MIMEBOX_SPOOL_//;
+				$mimeboxspool=1;
+				$mntpath=$mimeboxdir;
+				syslog('debug', "mounting $mimeboxdir, mount point type is MIME box directory");
+			} else {
+				syslog('warning', "client tried to mount $mimeboxdir which is denied by server configuration");
+				print "\nX2Go server denied MIME box usage.\n";
+				$skip_mount=1;
 			}
 		}
 		else
 		{
-			$mdir=$mdir."/disk";
+			if ( $allow_foldersharing eq 1 )
+			{
+				my $p=@dirs[$i];
+				if ($type ne "dir")
+				{
+					$p=~s/\/ramdrive\/mnt\///;
+					if ($p =~ m/CDROM/)
+					{
+						$mdir=$mdir."/cd";
+					}
+					else
+					{
+						$mdir=$mdir."/rm";
+					}
+				}
+				else
+				{
+					$mdir=$mdir."/disk";
+				}
+				$p=~s/\//_/g;
+				$p=~s/ /_/g;
+				$p=~s/_cygdrive_//g;
+				$p=~s/~//g;
+				mkdir("$mdir/$p");
+				$mntpath="$mdir/$p";
+			} else {
+				syslog('warning', "client tried to mount $mdir which is denied by server configuration");
+				print "\nX2Go server denied client-side folder sharing.\n";
+				$skip_mount=1;
+			}
 		}
-		$p=~s/\//_/g;
-		$p=~s/ /_/g;
-		$p=~s/_cygdrive_//g;
-		$p=~s/~//g;
-		mkdir("$mdir/$p");
-		$mntpath="$mdir/$p";
-	}
 
-	if (db_insertmount( $session, $mntpath, $host))
-	{
-		my $code_conv=$ENV{'X2GO_ICONV'};
-		if ($code_conv ne "")
-		{
-			$code_conv="-o $code_conv";
-		}
-		$msg = "sshfs $code_conv -o idmap=user,uid=`id -u`,gid=`id -g`,ServerAliveInterval=300,Cipher=blowfish,IdentityFile=$key,UserKnownHostsFile=$key.ident \"$user\"\@$host:\"@dirs[$i]\" \"$mntpath\" -p $port";
-		syslog('debug', "executing: $msg");
-		print "inserted, $msg\n";
-		if (system("sshfs  $code_conv -o idmap=user,uid=`id -u`,gid=`id -g`,ServerAliveInterval=300,Cipher=blowfish,IdentityFile=$key,UserKnownHostsFile=$key.ident \"$user\"\@$host:\"@dirs[$i]\" \"$mntpath\" -p $port 2>>~/mounts.log")==0)
+		if ( ( $skip_mount eq 0 ) && ( db_insertmount( $session, $mntpath, $host) ) )
 		{
-			print "mount @dirs[$i] ok\n";
-			syslog('notice', "successfully mounted $user\@$host:$port at dirs[$i] to $mntpath");
-			# check if kde4 plasmoid running
-			my $useplasmoid=0;
-			if ( -e $plasmstamp )
+			my $code_conv=$ENV{'X2GO_ICONV'};
+			if ($code_conv ne "")
 			{
-				open(STMP,"<$plasmstamp");
-				my $stamp=<STMP>;
-				close (STMP);
-				if (abs($stamp-time())<15)
-				{
-					$useplasmoid=1;
-				}
+				$code_conv="-o $code_conv";
 			}
-			if (! $printspool && ! $mimeboxspool && ! $useplasmoid )
+			$msg = "sshfs $code_conv -o idmap=user,uid=`id -u`,gid=`id -g`,ServerAliveInterval=300,Cipher=blowfish,IdentityFile=$key,UserKnownHostsFile=$key.ident \"$user\"\@$host:\"@dirs[$i]\" \"$mntpath\" -p $port";
+			syslog('debug', "executing: $msg");
+			print "inserted, $msg\n";
+			if (system("sshfs  $code_conv -o idmap=user,uid=`id -u`,gid=`id -g`,ServerAliveInterval=300,Cipher=blowfish,IdentityFile=$key,UserKnownHostsFile=$key.ident \"$user\"\@$host:\"@dirs[$i]\" \"$mntpath\" -p $port 2>>~/mounts.log")==0)
 			{
-				my $fname="$ENV{'HOME'}/Desktop";
-				my $current_desktop = "";
-				if ($session =~ m/stDGNOME/)
+				print "mount @dirs[$i] ok\n";
+				syslog('notice', "successfully mounted $user\@$host:$port at dirs[$i] to $mntpath");
+				# check if kde4 plasmoid running
+				my $useplasmoid=0;
+				if ( -e $plasmstamp )
 				{
-					$current_desktop="-gnome";
+					open(STMP,"<$plasmstamp");
+					my $stamp=<STMP>;
+					close (STMP);
+					if (abs($stamp-time())<15)
+					{
+						$useplasmoid=1;
+					}
 				}
-				elsif ($session =~ m/stDLXDE/)
+				if (! $printspool && ! $mimeboxspool && ! $useplasmoid )
 				{
-					$current_desktop="-lxde";
-				}
+					my $fname="$ENV{'HOME'}/Desktop";
+					my $current_desktop = "";
+					if ($session =~ m/stDGNOME/)
+					{
+						$current_desktop="-gnome";
+					}
+					elsif ($session =~ m/stDLXDE/)
+					{
+						$current_desktop="-lxde";
+					}
 
-				my $p=@dirs[$i];
-				$p=~s/\/cygdrive\///g;
-				$p=~s/\//_/g;
-				$fname="$fname/$p";
-				if ($type eq "dir")
-				{
-					$fname="$fname\ (sshfs-disk$current_desktop)";
-					syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: client-side folder on harddrive");
-				}
-				else
-				{
-					if ($fname =~ m/CDROM/)
+					my $p=@dirs[$i];
+					$p=~s/\/cygdrive\///g;
+					$p=~s/\//_/g;
+					$fname="$fname/$p";
+					if ($type eq "dir")
 					{
-						$fname="$fname\ (sshfs-cdrom$current_desktop)";
-						syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: optical disc");
+						$fname="$fname\ (sshfs-disk$current_desktop)";
+						syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: client-side folder on harddrive");
 					}
 					else
 					{
-						$fname="$fname\ (sshfs-removable$current_desktop)";
-						syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: removable device");
+						if ($fname =~ m/CDROM/)
+						{
+							$fname="$fname\ (sshfs-cdrom$current_desktop)";
+							syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: optical disc");
+						}
+						else
+						{
+							$fname="$fname\ (sshfs-removable$current_desktop)";
+							syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: removable device");
+						}
+						$fname=~s/_ramdrive_mnt_//;
 					}
-					$fname=~s/_ramdrive_mnt_//;
+					print "fname: $fname\n";
+					open(F,">$fname");
+					print F "$mntpath\n$session\n\n\0";
+					close(F);
 				}
-				print "fname: $fname\n";
-				open(F,">$fname");
-				print F "$mntpath\n$session\n\n\0";
-				close(F);
+			}
+			else
+			{
+				$msg = "mounting of @dirs[$i] failed";
+				print "$msg\n";
+				syslog('warning', "WARNING: $msg");
+				db_deletemount( $session, $mntpath);
+				rmdir($mntpath);
 			}
 		}
 		else
 		{
-			$msg = "mounting of @dirs[$i] failed";
-			print "$msg\n";
+			$msg = "insertion of @dirs[$i] failed (already mounted? access denied?), not mounting";
 			syslog('warning', "WARNING: $msg");
-			db_deletemount( $session, $mntpath);
-			rmdir($mntpath);
+			print "$msg\n";
 		}
 	}
-	else
-	{
-		$msg = "insertion of @dirs[$i] failed (already mounted?), not mounting";
-		syslog('warning', "WARNING: $msg");
-		print "$msg\n";
-	}
 }
 
 unlink($key);
diff --git a/x2goserver/etc/x2goserver.conf b/x2goserver/etc/x2goserver.conf
index 5fa6baf..7dac7a9 100644
--- a/x2goserver/etc/x2goserver.conf
+++ b/x2goserver/etc/x2goserver.conf
@@ -4,6 +4,10 @@
 [limit groups]
 #bar-group=1
 
+[clientshares]
+printers=0
+folders=1
+
 [log]
 # possible levels are: emerg, alert, crit, err, warning, notice, info, debug
 loglevel=notice


hooks/post-receive
-- 
x2goserver.git (X2Go Server)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "x2goserver.git" (X2Go Server).




More information about the x2go-commits mailing list