The branch, master has been updated via 9628cb541a6618e1ad96c8a49411028133e4b1cb (commit) via b64868c5c11843ee44b12fd6cc171946e63bca88 (commit) via 3223f23c40474d8a5062274c9b54beca6a336850 (commit) via 82c6545adef362a9d759b5ddf41473af052156c7 (commit) via a694aaca92f9f8c6cbc81d200b09beb48b06b79d (commit) via 04fc757c55d1e6a3f95b1e1058865569033d4bfb (commit) via 1f1ea43f2bfbfce51bf153b512db1f38d377cd6c (commit) via 5c60ad18f7db28c0e397c0f74715eedc1ae1cbf4 (commit) from ac7854d8ba9599f09a3861365a7b504c1e97a954 (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 9628cb541a6618e1ad96c8a49411028133e4b1cb Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Thu Jul 14 14:07:37 2011 +0200 Provide C wrapper for setuid call of x2gosqlitewrapper.pl. Remove dependency from perlsuid. ----------------------------------------------------------------------- Summary of changes: Makefile | 4 ++ debian/changelog | 2 + debian/control | 6 +- debian/rules | 1 + debian/x2goserver.install | 6 ++- debian/x2goserver.postinst | 8 +++- .../html/man8/x2gosetkeyboard.8.html | 2 +- .../.build_man2html/html/man8/x2goversion.8.html | 2 +- x2goserver-extensions/Makefile | 2 + .../html/man8/x2gocleansessions.8.html | 2 +- .../html/man8/x2gocmdexitmessage.8.html | 2 +- .../html/man8/x2golistdesktops.8.html | 2 +- .../html/man8/x2golistsessions.8.html | 2 +- .../.build_man2html/html/man8/x2gomountdirs.8.html | 2 +- .../.build_man2html/html/man8/x2goprint.8.html | 2 +- .../html/man8/x2goresume-session.8.html | 2 +- .../html/man8/x2goruncommand.8.html | 2 +- .../html/man8/x2goshowblocks.8.html | 2 +- .../html/man8/x2gostartagent.8.html | 2 +- .../html/man8/x2gosuspend-session.8.html | 2 +- .../html/man8/x2goterminate-session.8.html | 2 +- .../html/man8/x2goumount-session.8.html | 2 +- x2goserver/Makefile | 8 +++- x2goserver/lib/x2godbwrapper.pm | 2 +- .../{x2gosqlitewrapper => x2gosqlitewrapper.pl} | 13 ++++-- x2goserver/x2gosqlitewrapper.c | 45 ++++++++++++++++++++ 26 files changed, 100 insertions(+), 27 deletions(-) rename x2goserver/lib/{x2gosqlitewrapper => x2gosqlitewrapper.pl} (97%) create mode 100644 x2goserver/x2gosqlitewrapper.c The diff of changes is: diff --git a/Makefile b/Makefile index 444112f..eee6d3d 100755 --- a/Makefile +++ b/Makefile @@ -8,6 +8,10 @@ clean: cd x2goserver && make $@ cd x2goserver-extensions && make $@ +build-arch: + cd x2goserver && make $@ + cd x2goserver-extensions && make $@ + build-indep: cd x2goserver && make $@ cd x2goserver-extensions && make $@ diff --git a/debian/changelog b/debian/changelog index df33435..f5b8dd6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,8 @@ x2goserver (3.0.99.5-0~x2go3) UNRELEASED; urgency=low * Tab'ified all script files, proper indentation, coding style. * Fix for x2gomountdirs, now also usernames containing blanks can use local folder sharing. + * Provide C wrapper for setuid call of x2gosqlitewrapper.pl. Remove dependency + from perlsuid. [Martin Oehler] * Removes old debug code fragment, fixes x2golistsessions parsing. diff --git a/debian/control b/debian/control index 8fcc957..3919e2a 100644 --- a/debian/control +++ b/debian/control @@ -13,11 +13,11 @@ Vcs-Git: git://code.x2go.org/x2goserver.git Vcs-Browser: http://code.x2go.org/gitweb?p=x2goserver.git;a=summary Package: x2goserver -Architecture: all +Architecture: any Depends: + ${shlibs:Depends}, ${misc:Depends}, x2goagent, - perl-suid, lsof, openssh-client, openssh-server, @@ -65,7 +65,7 @@ Package: x2goserver-extensions Architecture: all Depends: ${misc:Depends}, - x2goserver (= ${source:Version}), + x2goserver (>= ${source:Version}), x2goserver (<< ${source:Version}.1~), x11-xkb-utils Description: X2go server daemon scripts (extensions) X2go is a serverbased computing environment with diff --git a/debian/rules b/debian/rules index c34429d..a5143a5 100755 --- a/debian/rules +++ b/debian/rules @@ -4,3 +4,4 @@ dh $@ override_dh_auto_install: + make -f Makefile build-arch \ No newline at end of file diff --git a/debian/x2goserver.install b/debian/x2goserver.install index acfb3b8..33c7f5a 100644 --- a/debian/x2goserver.install +++ b/debian/x2goserver.install @@ -3,10 +3,13 @@ x2goserver/sbin/x2go* /usr/sbin/ x2goserver/etc/x2gosql/sql /etc/x2go/x2gosql/ x2goserver/etc/x2goserver.conf /etc/x2go/ x2goserver/lib/x2godbwrapper.pm /usr/lib/x2go/ +x2goserver/lib/x2gosqlitewrapper.pl /usr/lib/x2go/ x2goserver/VERSION.x2goserver /usr/share/x2go/versions/ +x2goserver/x2gosqlitewrapper /usr/bin # the following executables should go to /usr/lib/x2go x2goserver/lib/x2gochangestatus /usr/bin x2goserver/lib/x2gocreatesession /usr/bin +x2goserver/lib/x2goresume /usr/bin x2goserver/lib/x2gogetagent /usr/bin x2goserver/lib/x2gogetdisplays /usr/bin x2goserver/lib/x2gogetports /usr/bin @@ -14,8 +17,7 @@ x2goserver/lib/x2gogetservers /usr/bin x2goserver/lib/x2goinsertport /usr/bin x2goserver/lib/x2goinsertsession /usr/bin x2goserver/lib/x2gosessionlimit /usr/bin -x2goserver/lib/x2gosqlitewrapper /usr/bin x2goserver/lib/x2golistsessions_sql /usr/bin x2goserver/lib/x2golistsessions_root /usr/bin # compatibility -x2goserver/bin/compat/x2go* /usr/bin +x2goserver/compat/bin/x2go* /usr/bin diff --git a/debian/x2goserver.postinst b/debian/x2goserver.postinst index 4e75de8..bed72b7 100755 --- a/debian/x2goserver.postinst +++ b/debian/x2goserver.postinst @@ -44,7 +44,13 @@ case "$1" in x2godbadmin --createdb fi - dpkg-statoverride --add --update x2gouser x2gousers 6755 /usr/bin/x2gosqlitewrapper || true + # the sqlite db has to be accessed as uid x2gouser + dpkg-statoverride --add --update x2gouser x2gousers 6755 /usr/lib/x2go/x2gosqlitewrapper.pl || true + + # we may be upgrading versions of x2goserver that used perlsuid, so make sure setuid is removed + # from /usr/bin/x2gosqlitewrapper + dpkg-statoverride --remove /usr/bin/x2gosqlitewrapper && chown root:root /usr/bin/x2gosqlitewrapper && chmod 0755 /usr/bin/x2gosqlitewrapper || true + ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/x2goserver-extensions/.build_man2html/html/man8/x2gosetkeyboard.8.html b/x2goserver-extensions/.build_man2html/html/man8/x2gosetkeyboard.8.html index b533a4f..d787004 100644 --- a/x2goserver-extensions/.build_man2html/html/man8/x2gosetkeyboard.8.html +++ b/x2goserver-extensions/.build_man2html/html/man8/x2gosetkeyboard.8.html @@ -56,6 +56,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver-extensions/.build_man2html/html/man8/x2goversion.8.html b/x2goserver-extensions/.build_man2html/html/man8/x2goversion.8.html index 453e0a5..eeae817 100644 --- a/x2goserver-extensions/.build_man2html/html/man8/x2goversion.8.html +++ b/x2goserver-extensions/.build_man2html/html/man8/x2goversion.8.html @@ -64,6 +64,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver-extensions/Makefile b/x2goserver-extensions/Makefile index d95bc71..ae6b3c1 100755 --- a/x2goserver-extensions/Makefile +++ b/x2goserver-extensions/Makefile @@ -35,6 +35,8 @@ build: build-indep build-indep: build_man2html +build-arch: + build_man2html: mkdir -p $(MAN2HTML_DEST) for man_page in $(man_pages); do mkdir -p `dirname $(MAN2HTML_DEST)/$$man_page`; done diff --git a/x2goserver/.build_man2html/html/man8/x2gocleansessions.8.html b/x2goserver/.build_man2html/html/man8/x2gocleansessions.8.html index 08725c0..e25e5d8 100644 --- a/x2goserver/.build_man2html/html/man8/x2gocleansessions.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gocleansessions.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2gocmdexitmessage.8.html b/x2goserver/.build_man2html/html/man8/x2gocmdexitmessage.8.html index eac9b6d..c7cab5d 100644 --- a/x2goserver/.build_man2html/html/man8/x2gocmdexitmessage.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gocmdexitmessage.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2golistdesktops.8.html b/x2goserver/.build_man2html/html/man8/x2golistdesktops.8.html index fe856a4..843c9a0 100644 --- a/x2goserver/.build_man2html/html/man8/x2golistdesktops.8.html +++ b/x2goserver/.build_man2html/html/man8/x2golistdesktops.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2golistsessions.8.html b/x2goserver/.build_man2html/html/man8/x2golistsessions.8.html index bce89d4..5f938d9 100644 --- a/x2goserver/.build_man2html/html/man8/x2golistsessions.8.html +++ b/x2goserver/.build_man2html/html/man8/x2golistsessions.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2gomountdirs.8.html b/x2goserver/.build_man2html/html/man8/x2gomountdirs.8.html index d4e6bf7..e187787 100644 --- a/x2goserver/.build_man2html/html/man8/x2gomountdirs.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gomountdirs.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goprint.8.html b/x2goserver/.build_man2html/html/man8/x2goprint.8.html index 501439b..fe9e175 100644 --- a/x2goserver/.build_man2html/html/man8/x2goprint.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goprint.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goresume-session.8.html b/x2goserver/.build_man2html/html/man8/x2goresume-session.8.html index 16b27b9..a6f792d 100644 --- a/x2goserver/.build_man2html/html/man8/x2goresume-session.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goresume-session.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goruncommand.8.html b/x2goserver/.build_man2html/html/man8/x2goruncommand.8.html index a8b934e..4c2720d 100644 --- a/x2goserver/.build_man2html/html/man8/x2goruncommand.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goruncommand.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goshowblocks.8.html b/x2goserver/.build_man2html/html/man8/x2goshowblocks.8.html index a8b934e..4c2720d 100644 --- a/x2goserver/.build_man2html/html/man8/x2goshowblocks.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goshowblocks.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2gostartagent.8.html b/x2goserver/.build_man2html/html/man8/x2gostartagent.8.html index 9f7ce24..45fb4f5 100644 --- a/x2goserver/.build_man2html/html/man8/x2gostartagent.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gostartagent.8.html @@ -60,6 +60,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2gosuspend-session.8.html b/x2goserver/.build_man2html/html/man8/x2gosuspend-session.8.html index 5a8eeb9..2fe037d 100644 --- a/x2goserver/.build_man2html/html/man8/x2gosuspend-session.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gosuspend-session.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goterminate-session.8.html b/x2goserver/.build_man2html/html/man8/x2goterminate-session.8.html index 9010bfd..ef27d29 100644 --- a/x2goserver/.build_man2html/html/man8/x2goterminate-session.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goterminate-session.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goumount-session.8.html b/x2goserver/.build_man2html/html/man8/x2goumount-session.8.html index f39b688..68f48b9 100644 --- a/x2goserver/.build_man2html/html/man8/x2goumount-session.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goumount-session.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 07:17:02 GMT, July 13, 2011 +Time: 11:58:19 GMT, July 14, 2011 </BODY> </HTML> diff --git a/x2goserver/Makefile b/x2goserver/Makefile index 765f17f..a4fec0f 100755 --- a/x2goserver/Makefile +++ b/x2goserver/Makefile @@ -31,7 +31,12 @@ MAN2HTML_DEST = .build_man2html/html all: clean build -build: build-indep +build: build-arch build-indep + +build-arch: build_setuidwrapper + +build_setuidwrapper: + gcc -o x2gosqlitewrapper x2gosqlitewrapper.c build-indep: build_man2html @@ -52,6 +57,7 @@ install_scripts: $(INSTALL_DIR) $(DESTDIR)$(SBINDIR) $(INSTALL_DIR) $(DESTDIR)$(LIBDIR) $(INSTALL_PROGRAM) bin/* $(DESTDIR)$(BINDIR)/ + $(INSTALL_PROGRAM) compat/bin/* $(DESTDIR)$(BINDIR)/ $(INSTALL_PROGRAM) sbin/* $(DESTDIR)$(SBINDIR)/ $(INSTALL_FILE) lib/* $(DESTDIR)$(LIBDIR)/ diff --git a/x2goserver/lib/x2godbwrapper.pm b/x2goserver/lib/x2godbwrapper.pm index b30185b..044faac 100644 --- a/x2goserver/lib/x2godbwrapper.pm +++ b/x2goserver/lib/x2godbwrapper.pm @@ -138,7 +138,7 @@ sub dbsys_listsessionsroot_all if ($backend eq 'postgres') { my @strings; - my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $; + my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_; my $sth=$dbh->prepare("select agent_pid, session_id, display, server, status, to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port, sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname, diff --git a/x2goserver/lib/x2gosqlitewrapper b/x2goserver/lib/x2gosqlitewrapper.pl similarity index 97% rename from x2goserver/lib/x2gosqlitewrapper rename to x2goserver/lib/x2gosqlitewrapper.pl index 9cbf663..a566fc1 100755 --- a/x2goserver/lib/x2gosqlitewrapper +++ b/x2goserver/lib/x2gosqlitewrapper.pl @@ -25,10 +25,15 @@ use strict; use DBI; use POSIX; -if ($< eq $>) -{ - die "Please install this program as SUID x2gouser!\n"; -} +### +### We are not using perlsuid anymore as it is deprecated as of Perl 5.12. +### Instead we ship our own setuidwrapper... +### + +#if ($< eq $>) +#{ +# die "Please install this program as SUID x2gouser!\n"; +#} my $realuser=$<; my ($uname, $pass, $uid, $pgid, $quota, $comment, $gcos, $homedir, $shell, $expire) = getpwuid($>); diff --git a/x2goserver/x2gosqlitewrapper.c b/x2goserver/x2gosqlitewrapper.c new file mode 100644 index 0000000..b702aa7 --- /dev/null +++ b/x2goserver/x2gosqlitewrapper.c @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2007-2011 X2go Project - http://wiki.x2go.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Copyright (C) 2007-2011 Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> + * Copyright (C) 2007-2011 Heinz-Markus Graesing <heinz-m.graesing@obviously-nice.de> + */ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <libgen.h> + +int main( int argc, char *argv[] ) { + + char buffer[BUFSIZ]; + char * x2gosqlitewrapper = NULL; + + // resolve link of /proc/self/exe + readlink("/proc/self/exe", buffer, BUFSIZ); + + // derive the full path of x2gosqlitewrapper.pl from path of this binary + asprintf(&x2gosqlitewrapper, "%s/%s", dirname(dirname(buffer)), "lib/x2go/x2gosqlitewrapper.pl"); + + // execute the script, taking setuid bit into consideration if set... + execv(x2gosqlitewrapper, argv); + + // fake a successful return value + return 0; + +} 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).