[X2Go-Commits] [[X2Go Wiki]] page changed: doc:howto:tce
wiki-admin at x2go.org
wiki-admin at x2go.org
Tue Nov 21 11:56:53 CET 2017
A page in your DokuWiki was added or changed. Here are the details:
Date : 2017/11/21 10:56
Browser : Mozilla/5.0 (X11; Linux x86_64; rv:52.9) Gecko/20100101 Goanna/3.4 Firefox/52.9 PaleMoon/27.6.0
IP-Address : 134.3.37.90
Hostname : HSI-KBW-134-3-37-90.hsi14.kabel-badenwuerttemberg.de
Old Revision: https://wiki.x2go.org/doku.php/doc:howto:tce?rev=1511259080
New Revision: https://wiki.x2go.org/doku.php/doc:howto:tce
Edit Summary: [Live-Patching the Build] various style changes as suggested by ionic, also updated detection based on what's currently checked in to git
User : stefanbaur
@@ -146,14 +146,16 @@
# this is a minidesktop environment, which uses
# username "x2gothinclient" regardless of whether
# it runs on X2Go-TCE-Live or X2Go-TCE-NFS
$user='x2gothinclient';
- } elsif ( -d "/lib/live/config" ) {
+ }
+ elsif ( -d "/lib/live/config" ) {
# this is X2Go-TCE-Live, but not with a minidesktop
# (if
it were, the first condition would have matched),
# so we use Debian-Live's standard username "user"
$user='user';
- } else {
+ }
+ else {
# this is X2Go-TCE-NFS or something completely different,
# so we'll play it safe and pick the username "x2gothinclient"
# just like previous versions of this script did
$user='x2gothinclient';
@@ -164,47 +166,53 @@
# Some last-ditch efforts to fulfill the prerequisites for File Sharing:
# - This is stuff that should already have happened earlier in the boot process.
# - Also, if a directory already exists, we silently assume that ownership and
- # permissions are correct. This is so that users that deliberately set
+ # permissions are correct. This is so that users that deliberately set
# different ownership/permission values don't have their settings silently
# overwritten.
- unless ( -d expand_filename("~$user/mounts")) {
+ unless ( -d
expand_filename("~$user/mounts") ) {
mkdir expand_filename("~$user/mounts");
chmod 0700, expand_filename("~$user/mounts");
chown $uid, $gid, expand_filename("~$user/mounts");
}
- unless ( -d expand_filename("~$user/export")) {
+ unless ( -d expand_filename("~$user/export") ) {
mkdir expand_filename("~$user/export");
chmod 0700, expand_filename("~$user/export");
chown $uid, $gid, expand_filename("~$user/export");
}
- unless ( -d expand_filename("~$user/logins")) {
+ unless ( -d expand_filename("~$user/logins") ) {
mkdir expand_filename("~$user/logins");
chmod 0700, expand_filename("~$user/logins");
chown $uid, $gid, expand_filename("~$user/logins");
}
openlog($0,'cons,pid','user');
setlogmask( LOG_UPTO(LOG_NOTICE) );
+ sub check_x2gothinclientd {
+ my $ret = 0;
- sub check_x2gothinclientmode {
- # check if X2GoClient is running in thinclient mode
-
# old code would check if x2gothinclientd was running,
- # which fails on X2Go-TCE-live
- my $x=`ps u -C x2goclient`;
- if ( $x=~m/\W*--thinclient\W*/ )
- {
- return 1;
+ # Check for x2gothinclientd first...
+ my $x=`ps ax | grep x2gothinclient`;
+ if ( $x=~m/thinclientd/ ) {
+ $ret = 1;
}
- return 0;
+
+ # And for x2goclient --thinclient if nothing was found.
+ if ( !$ret ) {
+ $x=`ps u -C x2goclient`;
+ if ( $x=~m/\W*--thinclient\W*/ ) {
+ $ret = 1;
+ }
+ }
+ return $ret;
}
- if ( check_x2gothinclientmode() || ( -d "/usr/share/doc/x2gothinclient-minidesktop" ) )
+ if ( check_x2gothinclientmode() || ( -x "/etc/x2go/x2gothinclient-minidesktop_start" ) )
{
open (F,">>/var/log/usb");
@@ -216,15 +224,18 @@
my $ldev=@ldev[@ldev-1];
#
mntdir is not the directory where the mountpoint will be rooted,
# but where tracking of mount states takes place
my $mntdir;
- if ( -d expand_filename("~$user/mounts")) {
+ if ( -d expand_filename("~$user/mounts") ) {
$mntdir=expand_filename("~$user/mounts");
- } elsif ( -d "/var/run" ) {
+ }
+ elsif ( -d "/var/run" ) {
$mntdir="/var/run";
- } elsif ( -d "/run" ) {
+ }
+ elsif ( -d "/run" ) {
$mntdir="/run";
- } else {
+ }
+ else {
die "No directory found that we could use as \$mntdir..."
}
my $name="${vendor}_${model}";
@@ -235,10 +246,9 @@
mkdir("/media");
mkdir("/media/$name");
print F "$name\n";
- if ( $action eq "add")
- {
+ if ( $action eq "add" ) {
###
### ACTION: mount device after
it has been added to USB subsystem
###
@@ -248,9 +258,8 @@
# prepare mount points
mkdir("/media");
mkdir("/media/$name");
mkdir("/media/$name/$ldev");
-
# mount the USB device
# sync is supported by all file systems
# uid is supported by vfat (via fat),ntfs,hfs,hpfs
@@ -259,97 +268,85 @@
# would only cause a mount of the iso9660 raw device,
# blocking the mount of individual partitions
# real optical media ->x2gocdmanager/x2gothinclient-cdmanager package
- if(system("mount -tvfat,ntfs $dev /media/$name/$ldev -o uid=$user,sync,uni_xlate")==0)
- {
+ if ( system("mount -tvfat,ntfs $dev /media/$name/$ldev -o uid=$user,sync,uni_xlate")==0 ) {
syslog('notice', "USB device $name ($ldev) successfully mounted (probably
vfat or ntfs)");
# if mounted, inform x2goclient about it...
system("touch $mntdir/$ldev.mounted");
open (D,">",expand_filename("~$user/export/$name.$ldev"));
print D "export=/media/$name/$ldev\n";
close (D);
}
- elsif(system("mount -t hfs $dev /media/$name/$ldev -o uid=$user,sync")==0)
- {
+ elsif ( system("mount -t hfs $dev /media/$name/$ldev -o uid=$user,sync")==0 ) {
syslog('notice', "USB device $name ($ldev) successfully mounted (hfs detected)");
# if mounted, inform x2goclient about it...
system("touch $mntdir/$ldev.mounted");
open (D,">",expand_filename("~$user/export/$name.$ldev"));
print D "export=/media/$name/$ldev\n";
close
(D);
}
- elsif(system("mount -t hpfs $dev /media/$name/$ldev -o uid=$user,sync")==0)
- {
+ elsif ( system("mount -t hpfs $dev /media/$name/$ldev -o uid=$user,sync")==0 ) {
syslog('notice', "USB device $name ($ldev) successfully mounted (hpfs detected)");
# if mounted, inform x2goclient about it...
system("touch $mntdir/$ldev.mounted");
open (D,">",expand_filename("~$user/export/$name.$ldev"));
print D "export=/media/$name/$ldev\n";
close (D);
}
- elsif(system("fuseext2 $dev /media/$name/$ldev -o ro")==0)
- {
+ elsif ( system("fuseext2 $dev /media/$name/$ldev -o ro")==0 ) {
syslog('notice', "USB device $name ($ldev) successfully mounted readonly (ext*fs detected)");
# if mounted, inform x2goclient about it...
system("touch $mntdir/$ldev.mounted");
open (D,">",expand_filename("~$user/export/$name.$ldev"));
print D "export=/media/$name/$ldev\n";
close (D);
}
- else
- {
+ else {
# the mount failed, let's assume that the device is encrypted...
my $enc=`ls -1 $mntdir | grep .encrypted`;
- if( $enc eq "" )
- {
+ if ( $enc eq "" ) {
# use cryptsetup to decrypt the device...
system("/sbin/cryptsetup --key-file /etc/keys/keystick.key luksOpen $dev keystick");
# mount the ,,decrypted'' USB device via devmapper...
-
if(system("mount /dev/mapper/keystick /media/$name/$ldev ")==0)
- {
+ if ( system("mount /dev/mapper/keystick /media/$name/$ldev")==0 ) {
# inform x2goclient about this...
system("touch $mntdir/$ldev.encrypted");
system("chown -R $user /media/$name/$ldev/dsa.key");
open (D,">",expand_filename("~$user/logins/$name.$ldev"));
print D "login=/media/$name/$ldev\n";
close (D);
}
- else
- {
+ else {
# on mount failures release the decrypted device again
system("/sbin/cryptsetup luksClose keystick");
}
}
- else
- {
+ else {
print F "cryptodisk already present\n";
}
}
}
- elsif ( $action eq "remove" )
- {
+ elsif ( $action eq "remove" ) {
###
### ACTION: unmount device after it has been removed from the USB subsystem
###
syslog('notice', "device remove action called");
# we rely on our own mount logistics here...
- if ( -e "$mntdir/$ldev.mounted" )
- {
+ if ( -e "$mntdir/$ldev.mounted" ) {
# inform x2goclient that the device has been removed
system ("umount -ff /media/$name/$ldev");
unlink ("$mntdir/$ldev.mounted");
open ( D,">",expand_filename("~$user/export/$name.$ldev.unexport"));
print D "unexport=/media/$name/$ldev\n";
close (D);
syslog('notice', "USB device $name ($ldev) successfully unmounted");
}
- elsif ( -e "$mntdir/$ldev.encrypted" )
- {
+ elsif ( -e "$mntdir/$ldev.encrypted" ) {
# inform x2goclient that the device has been removed
# release the encrypted device mapping
unlink ("$mntdir/$ldev.encrypted");
open ( D,">",expand_filename("~$user/logins/$name.$ldev.unexport"));
--
This mail was generated by DokuWiki at
https://wiki.x2go.org/
More information about the x2go-commits
mailing list