The branch, build-baikal has been updated via 6ec99657c4be82fe659cf3d13614be7a9734a380 (commit) from 881eb49831cf84440670f3fb8a10cf116c2a1e01 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: debian/control | 11 +-- debian/rules | 117 ++---------------------------- debian/{dirs => x2goserver.dirs} | 4 +- debian/{init.d => x2goserver.init} | 0 debian/x2goserver.install | 32 ++++++++ debian/{postinst => x2goserver.postinst} | 22 ++++++ debian/x2goserver.postrm | 37 ++++++++++ sql | 2 +- x2godbwrapper.pm | 38 +++++----- x2gosqlitewrapper | 23 +++--- 10 files changed, 134 insertions(+), 152 deletions(-) delete mode 100644 debian/docs rename debian/{dirs => x2goserver.dirs} (72%) rename debian/{init.d => x2goserver.init} (100%) create mode 100644 debian/x2goserver.install rename debian/{postinst => x2goserver.postinst} (59%) create mode 100644 debian/x2goserver.postrm The diff of changes is: diff --git a/debian/control b/debian/control index db467de..a322e54 100644 --- a/debian/control +++ b/debian/control @@ -7,8 +7,9 @@ Standards-Version: 3.7.2 Package: x2goserver Architecture: all -Depends: x2goagent, sudo, lsof, openssh-client, openssh-server, libconfig-simple-perl, makepasswd, libdbd-pg-perl, libdbd-sqlite3-perl +Depends: x2goagent, perl-suid, lsof, openssh-client, openssh-server, libconfig-simple-perl, makepasswd, libdbd-pg-perl, libdbd-sqlite3-perl, adduser Recommends: sshfs +Breaks: x2goserver-one Description: x2goserver (daemon and tools) x2go is a serverbased computing environment with - session resuming @@ -16,9 +17,9 @@ Description: x2goserver (daemon and tools) - LDAP support - client side mass storage mounting support - audio/arts support - - authentification by smartcard and usb-stick - - kde control-center modules for administration - - kde based tools for just in time messaging and client surveillance + - authentication by smartcard and usb-stick + - KDE control-center modules for administration + - KDE based tools for just in time messaging and client surveillance . x2goserver contains the main daemon and tools for - session administrations (scripts). \ No newline at end of file + session administrations (scripts). diff --git a/debian/docs b/debian/docs deleted file mode 100644 index e69de29..0000000 diff --git a/debian/rules b/debian/rules index ac4ff98..dc98d08 100755 --- a/debian/rules +++ b/debian/rules @@ -1,128 +1,24 @@ #!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - - - - -CFLAGS = -Wall -g - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif - -configure: configure-stamp -configure-stamp: - dh_testdir - # Add here commands to configure the package. - - touch configure-stamp - - -build: build-stamp - -build-stamp: configure-stamp - dh_testdir - - # Add here commands to compile the package. - #docbook-to-man debian/x2goserver.sgml > x2goserver.1 - - touch $@ clean: dh_testdir dh_testroot - rm -f build-stamp configure-stamp - - # Add here commands to clean up after the build process. - dh_clean -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - # Add here commands to install the package into debian/x2goserver. - install x2gochangestatus $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gocmdexitmessage $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gocreatesession $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gogetagent $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gogetdisplays $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gogetports $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gogetservers $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goinsertport $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goinsertsession $(CURDIR)/debian/x2goserver/usr/bin/ - install x2golistsessions $(CURDIR)/debian/x2goserver/usr/bin/ - install x2golistdesktops $(CURDIR)/debian/x2goserver/usr/bin/ - install x2golistsessions_root $(CURDIR)/debian/x2goserver/usr/bin/ - install x2golistsessions_sql $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gomountdirs $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goresume $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goresume-session $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goruncommand $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goshowblocks $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gosqlitewrapper $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gostartagent $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gosuspend-session $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gosuspend-agent $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goterminate $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goterminate-session $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goumount $(CURDIR)/debian/x2goserver/usr/bin/ - install x2goumount_session $(CURDIR)/debian/x2goserver/usr/bin/ - install x2gosessionlimit $(CURDIR)/debian/x2goserver/usr/bin/ - - +build: + dh_prep - - cp sql $(CURDIR)/debian/x2goserver/etc/x2go/x2gosql/ - cp x2goserver.conf $(CURDIR)/debian/x2goserver/etc/x2go/ - cp x2godbwrapper.pm $(CURDIR)/debian/x2goserver/usr/lib/x2go/ - install x2gocleansessions $(CURDIR)/debian/x2goserver/usr/sbin/ - install x2godbadmin $(CURDIR)/debian/x2goserver/usr/lib/x2go/script - - - - -# Build architecture-independent files here. -binary-indep: build install # We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install +binary-indep: build +binary-arch: build dh_testdir dh_testroot + dh_installdirs + dh_install dh_installchangelogs dh_installdocs - dh_installexamples -# dh_install -# dh_installmenu -# dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_python - dh_installinit -R -# dh_installcron -# dh_installinfo - dh_installman - dh_link - dh_strip dh_compress dh_fixperms -# dh_perl -# dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol @@ -130,4 +26,3 @@ binary-arch: build install dh_builddeb binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/debian/dirs b/debian/x2goserver.dirs similarity index 72% rename from debian/dirs rename to debian/x2goserver.dirs index 8d37723..29d4959 100644 --- a/debian/dirs +++ b/debian/x2goserver.dirs @@ -1,7 +1,5 @@ -usr/bin -usr/sbin etc/x2go etc/x2go/x2gosql etc/x2go/x2gosql/passwords usr/lib/x2go/script -var/db/x2go \ No newline at end of file +var/lib/x2go diff --git a/debian/init.d b/debian/x2goserver.init similarity index 100% rename from debian/init.d rename to debian/x2goserver.init diff --git a/debian/x2goserver.install b/debian/x2goserver.install new file mode 100644 index 0000000..f6627fd --- /dev/null +++ b/debian/x2goserver.install @@ -0,0 +1,32 @@ +x2gochangestatus /usr/bin/ +x2gocmdexitmessage /usr/bin/ +x2gocreatesession /usr/bin/ +x2gogetagent /usr/bin/ +x2gogetdisplays /usr/bin/ +x2gogetports /usr/bin/ +x2gogetservers /usr/bin/ +x2goinsertport /usr/bin/ +x2goinsertsession /usr/bin/ +x2golistsessions /usr/bin/ +x2golistdesktops /usr/bin/ +x2golistsessions_root /usr/bin/ +x2golistsessions_sql /usr/bin/ +x2gomountdirs /usr/bin/ +x2goresume /usr/bin/ +x2goresume-session /usr/bin/ +x2goruncommand /usr/bin/ +x2goshowblocks /usr/bin/ +x2gosqlitewrapper /usr/bin/ +x2gostartagent /usr/bin/ +x2gosuspend-session /usr/bin/ +x2gosuspend-agent /usr/bin/ +x2goterminate /usr/bin/ +x2goterminate-session /usr/bin/ +x2goumount /usr/bin/ +x2goumount_session /usr/bin/ +x2gosessionlimit /usr/bin/ +sql /etc/x2go/x2gosql/ +x2goserver.conf /etc/x2go/ +x2godbwrapper.pm /usr/lib/x2go/ +x2gocleansessions /usr/sbin/ +x2godbadmin /usr/lib/x2go/script diff --git a/debian/postinst b/debian/x2goserver.postinst similarity index 59% rename from debian/postinst rename to debian/x2goserver.postinst index 67086e0..d81b6ce 100755 --- a/debian/postinst +++ b/debian/x2goserver.postinst @@ -23,6 +23,28 @@ case "$1" in chmod 700 /etc/x2go/x2gosql/passwords touch /etc/x2go/x2gosql/passwords/pgadmin chmod 600 /etc/x2go/x2gosql/passwords/pgadmin + + # setup x2gouser and group + if ! getent group x2gousers >/dev/null; then + echo "Creating x2gouser user." >&2 + addgroup --system x2gousers + else + echo "User x2gouser already exists." >&2 + fi + if ! getent passwd x2gouser >/dev/null; then + echo "Creating x2gouser user." >&2 + adduser --system --no-create-home \ + --disabled-password --disabled-login \ + --shell /bin/false --group --home /var/lib/x2go x2gouser + else + echo "User x2gouser already exists." >&2 + fi + + if [ ! -f /var/lib/x2go/x2go_sessions ]; then + /usr/lib/x2go/script/x2godbadmin --createdb + fi + + dpkg-statoverride --add --update x2gouser x2gousers 6755 /usr/bin/x2gosqlitewrapper || true ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/debian/x2goserver.postrm b/debian/x2goserver.postrm new file mode 100644 index 0000000..9cc8f3a --- /dev/null +++ b/debian/x2goserver.postrm @@ -0,0 +1,37 @@ +#! /bin/sh +# postrm script for x2goserver +# +# see: dh_installdeb(1) +# summary of how this script can be called: +# * <postrm> `remove' +# * <postrm> `purge' +# * <old-postrm> `upgrade' <new-version> +# * <new-postrm> `failed-upgrade' <old-version> +# * <new-postrm> `abort-install' +# * <new-postrm> `abort-install' <old-version> +# * <new-postrm> `abort-upgrade' <old-version> +# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version> +# for details, see /usr/share/doc/packaging-manual/ + +set -e + + +case "$1" in + purge) + dpkg-statoverride --remove /usr/bin/x2gosqlitewrapper || true + echo "Removing x2go session database" >&2 + rm -vf /var/lib/x2go/x2go_sessions + getent passwd x2gouser >/dev/null && deluser x2gouser + getent group x2gousers >/dev/null && delgroup x2gousers + ;; + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 0 +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# diff --git a/sql b/sql index dfbfca0..f3052d7 100644 --- a/sql +++ b/sql @@ -1,5 +1,5 @@ #postgres or sqlite -backend=postgres +backend=sqlite [postgres] host=localhost diff --git a/x2godbwrapper.pm b/x2godbwrapper.pm index 3d78b4b..ebadcff 100644 --- a/x2godbwrapper.pm +++ b/x2godbwrapper.pm @@ -80,7 +80,7 @@ sub dbsys_rmsessionsroot } if($backend eq 'sqlite') { - `sudo -u x2gouser x2gosqlitewrapper rmsessionsroot $sid`; + `x2gosqlitewrapper rmsessionsroot $sid`; } } @@ -110,7 +110,7 @@ sub dbsys_listsessionsroot } if($backend eq 'sqlite') { - return split("\n",`sudo -u x2gouser x2gosqlitewrapper listsessionsroot $server`); + return split("\n",`x2gosqlitewrapper listsessionsroot $server`); } } @@ -139,7 +139,7 @@ sub dbsys_listsessionsroot_all } if($backend eq 'sqlite') { - return split("\n",`sudo -u x2gouser x2gosqlitewrapper listsessionsroot_all`); + return split("\n",`x2gosqlitewrapper listsessionsroot_all`); } } @@ -165,7 +165,7 @@ sub dbsys_getmounts } if($backend eq 'sqlite') { - return split("\n",`sudo -u x2gouser x2gosqlitewrapper getmounts $sid`); + return split("\n",`x2gosqlitewrapper getmounts $sid`); } } @@ -191,7 +191,7 @@ sub db_getmounts } if($backend eq 'sqlite') { - return split("\n",`sudo -u x2gouser x2gosqlitewrapper getmounts $sid`); + return split("\n",`x2gosqlitewrapper getmounts $sid`); } } @@ -209,7 +209,7 @@ sub db_deletemount } if($backend eq 'sqlite') { - `sudo -u x2gouser x2gosqlitewrapper deletemount $sid \"$path\"`; + `x2gosqlitewrapper deletemount $sid \"$path\"`; } } @@ -234,7 +234,7 @@ sub db_insertmount } if($backend eq 'sqlite') { - if( `sudo -u x2gouser x2gosqlitewrapper insertmount $sid \"$path\" $client` eq "ok") + if( `x2gosqlitewrapper insertmount $sid \"$path\" $client` eq "ok") { $res_ok=1; } @@ -258,7 +258,7 @@ sub db_insertsession } if($backend eq 'sqlite') { - my $err=`sudo -u x2gouser x2gosqlitewrapper insertsession $display $server $sid`; + my $err=`x2gosqlitewrapper insertsession $display $server $sid`; if($err ne "ok") { die "$err: x2gosqlitewrapper insertsession $display $server $sid"; @@ -288,7 +288,7 @@ sub db_createsession } if($backend eq 'sqlite') { - my $err= `sudo -u x2gouser x2gosqlitewrapper createsession $cookie $pid $client $gr_port $snd_port $fs_port $sid`; + my $err= `x2gosqlitewrapper createsession $cookie $pid $client $gr_port $snd_port $fs_port $sid`; if($err ne "ok") { die $err; @@ -312,7 +312,7 @@ sub db_insertport } if($backend eq 'sqlite') { - `sudo -u x2gouser x2gosqlitewrapper insertport $server $sid $sshport`; + `x2gosqlitewrapper insertport $server $sid $sshport`; } } @@ -332,7 +332,7 @@ sub db_resume } if($backend eq 'sqlite') { - `sudo -u x2gouser x2gosqlitewrapper resume $client $sid`; + `x2gosqlitewrapper resume $client $sid`; } } @@ -351,7 +351,7 @@ sub db_changestatus } if($backend eq 'sqlite') { - `sudo -u x2gouser x2gosqlitewrapper changestatus $status $sid`; + `x2gosqlitewrapper changestatus $status $sid`; } } @@ -378,7 +378,7 @@ sub db_getdisplays } if($backend eq 'sqlite') { - return split("\n",`sudo -u x2gouser x2gosqlitewrapper getdisplays $server`); + return split("\n",`x2gosqlitewrapper getdisplays $server`); } } @@ -405,7 +405,7 @@ sub db_getports } if($backend eq 'sqlite') { - return split("\n",`sudo -u x2gouser x2gosqlitewrapper getports $server`); + return split("\n",`x2gosqlitewrapper getports $server`); } } @@ -431,7 +431,7 @@ sub db_getservers } if($backend eq 'sqlite') { - return split("\n",`sudo -u x2gouser x2gosqlitewrapper getservers`); + return split("\n",`x2gosqlitewrapper getservers`); } } @@ -458,7 +458,7 @@ sub db_getagent } if($backend eq 'sqlite') { - $agent=`sudo -u x2gouser x2gosqlitewrapper getagent $sid`; + $agent=`x2gosqlitewrapper getagent $sid`; } return $agent; } @@ -485,7 +485,7 @@ sub db_getdisplay } if($backend eq 'sqlite') { - $display=`sudo -u x2gouser x2gosqlitewrapper getdisplay $sid`; + $display=`x2gosqlitewrapper getdisplay $sid`; } return $display; } @@ -516,7 +516,7 @@ sub db_listsessions } if($backend eq 'sqlite') { - return split("\n",`sudo -u x2gouser x2gosqlitewrapper listsessions $server`); + return split("\n",`x2gosqlitewrapper listsessions $server`); } } @@ -547,7 +547,7 @@ sub db_listsessions_all } if($backend eq 'sqlite') { - return split("\n",`sudo -u x2gouser x2gosqlitewrapper listsessions_all`); + return split("\n",`x2gosqlitewrapper listsessions_all`); } } diff --git a/x2gosqlitewrapper b/x2gosqlitewrapper index 55b8e43..744c780 100755 --- a/x2gosqlitewrapper +++ b/x2gosqlitewrapper @@ -1,31 +1,28 @@ #!/usr/bin/perl + use strict; use DBI; use POSIX; -my $realuser=$ENV{SUDO_USER}; -my ($uname, $pass, $uid, $pgid, $quota, $comment, $gcos, $homedir, $shell, $expire) = getpwuid(getuid()); - -if($uname ne "x2gouser") +if ($< eq $>) { - die "Use \"sudo -u x2gouser\" to run this programm"; + die "Please install this program as SUID x2gouser!\n"; } -my $cmd=shift or die "command not specified"; - -my $user="x2gouser"; -my ($name, $pass, $uid, $pgid, $quota, $comment, $gcos, $dir, $shell, $expire) = getpwnam($user); -my $dbfile="$dir/x2go_sessions"; - +my $realuser=$<; +my ($uname, $pass, $uid, $pgid, $quota, $comment, $gcos, $homedir, $shell, $expire) = getpwuid(getuid()); +my $dbfile="/var/lib/x2go/x2go_sessions"; my $dbh=DBI->connect("dbi:SQLite:dbname=$dbfile","","",{AutoCommit => 1}) or die $_; +my $cmd=shift or die "command not specified"; + if($cmd eq "rmsessionsroot") { checkroot(); my $sid=shift or die "argument \"session_id\" missed"; my $sth=$dbh->prepare("delete from sessions where session_id=?"); - $sth->execute($id)or die; + $sth->execute($sid)or die; $sth->finish(); } @@ -115,7 +112,7 @@ elsif($cmd eq "createsession") my $sid=shift or die "argument \"session_id\" missed"; my $sth=$dbh->prepare("update sessions set status='R',last_time=datetime('now','localtime'),cookie=?,agent_pid=?, client=?,gr_port=?,sound_port=?,fs_port=? where session_id=? and uname=?"); - $sth->execute($cookie, $pid, $client, $gr_port, $snd_port, $fs_port, $sid, $realuid)or die; + $sth->execute($cookie, $pid, $client, $gr_port, $snd_port, $fs_port, $sid, $realuser)or die; $sth->finish(); print "ok"; } 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).