xfree86: rename Xorg.bin to Xorg
Hans de Goede
hdegoede at redhat.com
Mon Dec 29 02:11:29 PST 2014
Hi,
On 16-12-14 05:19, Peter Hutterer wrote:
> If the suid wrapper is enabled, /usr/bin/Xorg is just a shell script that
> execs either /usr/libexec/Xorg.bin directly or the Xorg.wrap binary which then
> execve's /usr/libexec/Xorg.bin.
>
> Either way, we end up with Xorg.bin, which is problematic for two reasons:
> * ps shows the command as Xorg.bin
> * _COMM and _EXE in systemd's journal will both show Xorg.bin as well
>
> There's not much we can do about the path, but having the actual command stay
> as Xorg means better compatibility to existing scripts. And, the reason for
> this patch: the command
> journalctl _COMM=Xorg
> works universally, regardless of whether the wrapper is used or not.
>
> CC: Hans de Goede <hdegoede at redhat.com>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> Reviewed-by: Keith Packard <keithp at keithp.com>
Looks good:
Acked-by: Hans de Goede <hdegoede at redhat.com>
Regards,
Hans
>
> ---
> configure.ac | 2 +-
> hw/xfree86/Makefile.am | 2 +-
> hw/xfree86/Xorg.sh.in | 4 ++--
> hw/xfree86/man/Xorg.wrap.man | 2 +-
> hw/xfree86/xorg-wrapper.c | 6 +++---
> 5 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 96524c5..b593fc7 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -923,7 +923,7 @@ if test "x$SUID_WRAPPER" = xyes; then
> PKG_CHECK_MODULES([LIBDRM], $LIBDRM)
> dnl This is a define so that if some platforms want to put the wrapper
> dnl somewhere else this can be easily changed
> - AC_DEFINE_DIR(SUID_WRAPPER_DIR, libexecdir, [Where to install Xorg.bin and Xorg.wrap])
> + AC_DEFINE_DIR(SUID_WRAPPER_DIR, libexecdir, [Where to install the Xorg binary and Xorg.wrap])
> SETUID="no"
> fi
> AM_CONDITIONAL(SUID_WRAPPER, [test "x$SUID_WRAPPER" = xyes])
> diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
> index d46bf0a..27f2cc6 100644
> --- a/hw/xfree86/Makefile.am
> +++ b/hw/xfree86/Makefile.am
> @@ -106,7 +106,7 @@ if INSTALL_SETUID
> endif
> if SUID_WRAPPER
> $(MKDIR_P) $(DESTDIR)$(SUID_WRAPPER_DIR)
> - mv $(DESTDIR)$(bindir)/Xorg $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.bin
> + mv $(DESTDIR)$(bindir)/Xorg $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg
> ${INSTALL} -m 755 Xorg.sh $(DESTDIR)$(bindir)/Xorg
> -chown root $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.wrap && chmod u+s $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.wrap
> endif
> diff --git a/hw/xfree86/Xorg.sh.in b/hw/xfree86/Xorg.sh.in
> index cef4859..4814135 100644
> --- a/hw/xfree86/Xorg.sh.in
> +++ b/hw/xfree86/Xorg.sh.in
> @@ -1,11 +1,11 @@
> #!/bin/sh
> #
> -# Execute Xorg.wrap if it exists otherwise execute Xorg.bin directly.
> +# Execute Xorg.wrap if it exists otherwise execute Xorg directly.
> # This allows distros to put the suid wrapper in a separate package.
>
> basedir=@SUID_WRAPPER_DIR@
> if [ -x "$basedir"/Xorg.wrap ]; then
> exec "$basedir"/Xorg.wrap "$@"
> else
> - exec "$basedir"/Xorg.bin "$@"
> + exec "$basedir"/Xorg "$@"
> fi
> diff --git a/hw/xfree86/man/Xorg.wrap.man b/hw/xfree86/man/Xorg.wrap.man
> index 58937c7..11090f1 100644
> --- a/hw/xfree86/man/Xorg.wrap.man
> +++ b/hw/xfree86/man/Xorg.wrap.man
> @@ -33,7 +33,7 @@ Xorg.wrap \- Xorg X server binary wrapper
> The Xorg X server may need root rights to function properly. To start the
> Xorg X server with these rights your system is using a suid root wrapper
> installed as __suid_wrapper_dir__/Xorg.wrap which will execute the real
> -X server which is installed as __suid_wrapper_dir__/Xorg.bin .
> +X server which is installed as __suid_wrapper_dir__/Xorg.
> .PP
> By default Xorg.wrap will autodetect if root rights are necessary, and
> if not it will drop its elevated rights before starting the real X server.
> diff --git a/hw/xfree86/xorg-wrapper.c b/hw/xfree86/xorg-wrapper.c
> index 4ea4733..9ae8dec 100644
> --- a/hw/xfree86/xorg-wrapper.c
> +++ b/hw/xfree86/xorg-wrapper.c
> @@ -255,18 +255,18 @@ int main(int argc, char *argv[])
> }
> }
>
> - snprintf(buf, sizeof(buf), "%s/Xorg.bin", SUID_WRAPPER_DIR);
> + snprintf(buf, sizeof(buf), "%s/Xorg", SUID_WRAPPER_DIR);
>
> /* Check if the server is executable by our real uid */
> if (access(buf, X_OK) != 0) {
> - fprintf(stderr, "%s: Missing execute permissions for %s/Xorg.bin: %s\n",
> + fprintf(stderr, "%s: Missing execute permissions for %s/Xorg: %s\n",
> progname, SUID_WRAPPER_DIR, strerror(errno));
> exit(1);
> }
>
> argv[0] = buf;
> (void) execv(argv[0], argv);
> - fprintf(stderr, "%s: Failed to execute %s/Xorg.bin: %s\n",
> + fprintf(stderr, "%s: Failed to execute %s/Xorg: %s\n",
> progname, SUID_WRAPPER_DIR, strerror(errno));
> exit(1);
> }
>
More information about the xorg-devel
mailing list