Last active
December 18, 2015 08:29
-
-
Save zoqaeski/5754634 to your computer and use it in GitHub Desktop.
Modified authatieventsd.sh to support lightdm.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# Control script grant/revoke access to X for the ATI External Events Daemon | |
# | |
# Distro maintainers may modify this reference script as necessary to conform | |
# to their distribution policies. | |
# | |
# Copyright (c) 2006, ATI Technologies Inc. All rights reserved. | |
# | |
# | |
# Parameters: | |
# $1 is a keyword, either "grant" or "revoke" | |
# $2 is the display name | |
# $3 is the X authorization file to be authorized | |
# | |
# Returns: | |
# 0 if authorization was successfully granted/revoked | |
# nonzero on failure | |
# | |
# Note: | |
# The third parameter only makes sense if xauth is being used. If another | |
# mechanism such as xhost is being used it can be ignored. For setups that | |
# do not do any form of authentication(!) this script can be trimmed down | |
# to just "exit 0" and the daemon will assume that it is always authorized. | |
# | |
GetServerAuthFile() | |
{ | |
# Determine where the authorization key may be hiding. The location will | |
# vary depending upon whether X was started via xdm/kdm, gdm or startx, so | |
# check each one in turn. | |
# Check xdm | |
XDM_AUTH_MASK=/var/lib/xdm/authfiles/A$1* | |
XDM_AUTH_FILE=`ls -t $XDM_AUTH_MASK 2>/dev/null | head -n 1` # Choose the newest file | |
if [ -n "$XDM_AUTH_FILE" ]; then | |
SERVER_AUTH_FILE=$XDM_AUTH_FILE | |
DISP_SEARCH_STRING="#ffff#" | |
return 0 | |
fi | |
# Check kdm | |
KDM_AUTH_MASK=/var/run/xauth/A$1* | |
KDM_AUTH_FILE=`ls -t $KDM_AUTH_MASK 2>/dev/null | head -n 1` # Choose the newest file | |
if [ -n "$KDM_AUTH_FILE" ]; then | |
SERVER_AUTH_FILE=$KDM_AUTH_FILE | |
DISP_SEARCH_STRING="#ffff#" | |
return 0 | |
fi | |
# Check gdm 3 | |
GDM_AUTH_FILE=/var/run/gdm/auth-for-gdm-*/database | |
if [ -e $GDM_AUTH_FILE ]; then | |
SERVER_AUTH_FILE=$GDM_AUTH_FILE | |
DISP_SEARCH_STRING="unix$1" | |
return 0 | |
fi | |
# Check lightdm | |
# Not sure if this will work. | |
LIGHTDM_AUTH_FILE=/var/run/lightdm/root/$1 | |
if [ -e $LIGHTDM_AUTH_FILE ]; then | |
SERVER_AUTH_FILE=$LIGHTDM_AUTH_FILE | |
# Not sure if this is correct | |
DISP_SEARCH_STRING="unix$1" | |
return 0 | |
fi | |
# Finally, check for startx | |
for XPID in `pidof X`; do | |
TRIAL_XAUTH_FILE=`tr '\0' '\n' < /proc/$XPID/environ | grep -e "^XAUTHORITY=" | cut -d= -f2` | |
TRIAL_XAUTH_KEY=`xauth -f $TRIAL_XAUTH_FILE list | grep "unix$1"` | |
if [ -n "$TRIAL_XAUTH_KEY" ]; then | |
SERVER_AUTH_FILE=$TRIAL_XAUTH_FILE | |
DISP_SEARCH_STRING="unix$1" | |
return 0 | |
fi | |
done | |
# Couldn't find the key | |
return -1 | |
} | |
# Main part of script | |
# | |
# Since the daemon is usually started during init time before X comes up, | |
# $PATH may not yet contain the paths to the X binaries, particularly xauth. | |
# Add the usual location for where xauth may live and fail out if we still | |
# can't find it. | |
# | |
PATH=$PATH:/usr/bin:/usr/X11R6/bin | |
which xauth > /dev/null || exit -1 | |
case "$1" in | |
grant) | |
GetServerAuthFile $2 || exit -1 | |
DISP_AUTH_KEY=`xauth -f $SERVER_AUTH_FILE list | grep $DISP_SEARCH_STRING | awk '{ print $3 }'` | |
if [ -n "$DISP_AUTH_KEY" ]; then | |
xauth -f $3 add $2 . $DISP_AUTH_KEY || exit -1 | |
else | |
exit -1 | |
fi | |
;; | |
revoke) | |
xauth -f $3 remove $2 || exit -1 | |
;; | |
*) | |
exit -1 | |
;; | |
esac | |
exit 0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/etc/ati/authatieventsd.sh.original b/etc/ati/authatieventsd.sh | |
index 0175c9f..174bdb5 100755 | |
--- a/etc/ati/authatieventsd.sh.original | |
+++ b/etc/ati/authatieventsd.sh | |
@@ -61,6 +61,16 @@ GetServerAuthFile() | |
return 0 | |
fi | |
+ # Check lightdm | |
+ # Not sure if this will work | |
+ LIGHTDM_AUTH_FILE=/var/run/lightdm/root/$1 | |
+ if [ -e $LIGHTDM_AUTH_FILE ]; then | |
+ SERVER_AUTH_FILE=$LIGHTDM_AUTH_FILE | |
+ # Not sure if this is correct | |
+ DISP_SEARCH_STRING="unix$1" | |
+ return 0 | |
+ fi | |
+ | |
# Finally, check for startx | |
for XPID in `pidof X`; do |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment