xserver-nodm-init: add rootless-x support

most rootless X work are already done in the kernel, xserver and
graphics driver, this patches add the the remaining userspace setting:

- create /etc/X11/Xusername to set rootless X user
- add rootless X user to group video, tty to access /dev/tty[0-4]
  and /dev/dri/card0
- grant rootless X user access right to /dev/input/*, /var/log

Signed-off-by: Yu Ke <ke.yu@intel.com>
This commit is contained in:
Yu Ke 2011-02-22 20:41:19 +08:00 committed by Saul Wold
parent 8d1847a908
commit e98c515b2b
3 changed files with 26 additions and 1 deletions

View File

@ -3,10 +3,11 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
SECTION = "x11"
PRIORITY = "optional"
PR = "r23"
PR = "r24"
RDEPENDS_${PN} = "dbus-wait sudo"
SRC_URI = "file://xserver-nodm \
file://Xusername \
file://gplv2-license.patch"
S = ${WORKDIR}
@ -17,6 +18,25 @@ do_install() {
install -d ${D}/etc
install -d ${D}/etc/init.d
install xserver-nodm ${D}/etc/init.d
if [ "${ROOTLESS_X}" = "1" ] ; then
install -d ${D}/etc/X11
install Xusername ${D}/etc/X11
fi
}
pkg_postinst_${PN} () {
if [ "x$D" != "x" ] ; then
exit 1
fi
if [ -f /etc/X11/Xusername ]; then
# create the rootless X user, and add user to group tty, video
username=`cat /etc/X11/Xusername`
adduser --disabled-password $username
# FIXME: use addgroup if busybox addgroup is ready
sed -i -e "s/^video:.*/&${username}/g" /etc/group
sed -i -e "s/^tty:.*/&${username}/g" /etc/group
fi
}
inherit update-rc.d

View File

@ -0,0 +1 @@
xuser

View File

@ -30,6 +30,10 @@ case "$1" in
echo "Starting Xserver"
if [ -f /etc/X11/Xusername ]; then
username=`cat /etc/X11/Xusername`
# setting for rootless X
chmod o+w /var/log
chmod g+r /dev/tty[0-3]
chmod o+rw /dev/input/*
fi
# Using sudo -i here has the nice side effect of making sire
# HOME, USER and other previously problematic variables