Russell Coker
2012-Jun-24 00:33 UTC
[Pkg-xen-devel] Bug#678719: xen-utils-common: please label all created directories for SE Linux
Package: xen-utils-common
Version: 4.1.3~rc1+hg-20120614.a9c0a89c08f2-2
Severity: important
Please modify the init scripts in a manner similar to the following to give
the correct SE Linux labels. Failing to correctly label them may result in
Xen not working correctly when SE Linux is enabled.
--- /etc/init.d/xen.orig 2012-06-24 10:29:04.000000000 +1000
+++ /etc/init.d/xen 2012-06-24 10:29:54.000000000 +1000
@@ -182,6 +182,7 @@
start-stop-daemon --start --quiet --pidfile "$XENSTORED_PIDFILE"
--exec "$XENSTORED" --test > /dev/null \
|| return 1
[ -d "$XENSTORED_DIR" ] || mkdir -p "$XENSTORED_DIR"
+ [ -x /sbin/restorecon ] && /sbin/restorecon "$XENSTORED_DIR"
export XENSTORED_ROOTDIR="$XENSTORED_DIR"
start-stop-daemon --start --quiet --pidfile "$XENSTORED_PIDFILE"
--exec "$XENSTORED" -- \
$XENSTORED_ARGS --pid-file="$XENSTORED_PIDFILE" \
--- /etc/init.d/xendomains.orig 2012-06-24 10:29:08.000000000 +1000
+++ /etc/init.d/xendomains 2012-06-24 10:30:05.000000000 +1000
@@ -152,6 +152,7 @@
{
[ -n "$XENDOMAINS_SAVE" ] || return
[ -d "$XENDOMAINS_SAVE" ] || mkdir -m 0700 -p
"$XENDOMAINS_SAVE"
+ [ -x /sbin/restorecon ] && /sbin/restorecon
"$XENDOMAINS_SAVE"
while read id name rest; do
log_action_begin_msg "Saving Xen domain $name ($id)"
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
Versions of packages xen-utils-common depends on:
ii gawk 1:4.0.1+dfsg-2
ii lsb-base 4.1+Debian7
ii python 2.7.3~rc2-1
ii ucf 3.0025+nmu3
ii udev 175-3.1
ii xenstore-utils 4.1.3~rc1+hg-20120614.a9c0a89c08f2-2
xen-utils-common recommends no packages.
xen-utils-common suggests no packages.
-- Configuration Files:
/etc/init.d/xen changed:
. /lib/init/vars.sh
. /lib/lsb/init-functions
XENSTORED_DIR="/var/run/xenstored"
[ -r /etc/default/xen ] && . /etc/default/xen
[ -r /etc/default/xend ] && . /etc/default/xend
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC="Xen daemons"
ROOT=$(/usr/lib/xen-common/bin/xen-dir 2>/dev/null)
if [ $? -ne 0 ]; then
log_warning_msg "Not running within Xen or no compatible utils"
exit 0
fi
TOOLSTACK=$(/usr/lib/xen-common/bin/xen-toolstack 2>/dev/null)
if [ $? -ne 0 ]; then
log_warning_msg "No usable Xen toolstack selected"
exit 0
fi
[ -e "$ROOT"/bin/xend ] && XEND="$ROOT"/bin/xend
XENCONSOLED="$ROOT"/bin/xenconsoled
XENCONSOLED_PIDFILE="/var/run/xenconsoled.pid"
XENSTORED="$ROOT"/bin/xenstored
XENSTORED_PIDFILE="/var/run/xenstore.pid"
modules_setup()
{
modprobe xenfs 2>/dev/null
modprobe xen-evtchn 2>/dev/null
modprobe xen-gntdev 2>/dev/null
}
xenfs_setup()
{
[ -e "/proc/xen/capabilities" ] && return 0
log_progress_msg "xenfs"
[ -d "/proc/xen" ] || return 1
mount -t xenfs xenfs /proc/xen || return 1
return 0
}
capability_check()
{
[ -e "/proc/xen/capabilities" ] || return 1
grep -q "control_d" /proc/xen/capabilities || return 1
return 0
}
xend_start()
{
if [ -z "$XEND" ] || [ "$(basename "$TOOLSTACK")"
!= xm ]; then
return 0
fi
log_progress_msg "xend"
xend_start_real
return $?
}
xend_stop()
{
if [ -z "$XEND" ] || [ "$(basename "$TOOLSTACK")"
!= xm ]; then
return 0
fi
log_progress_msg "xend"
xend_stop_real
return $?
}
xend_restart()
{
if [ -z "$XEND" ] || [ "$(basename "$TOOLSTACK")"
!= xm ]; then
return 0
fi
log_progress_msg "xend"
xend_stop_real
case "$?" in
0|1)
xend_start_real
case "$?" in
0) ;;
*) return 2 ;;
esac
;;
*) return 2 ;;
esac
return 0
}
xend_start_real()
{
$XEND status && return 1
$XEND start || return 2
i=0
while [ $i -lt 10 ]; do
$XEND status && return 0 || true
i=$(($i + 1))
sleep 1
done
return 2
}
xend_stop_real()
{
log_progress_msg "xend"
$XEND status || return 0
$XEND stop || return 1
}
xenconsoled_start()
{
log_progress_msg "xenconsoled"
xenconsoled_start_real
return $?
}
xenconsoled_stop()
{
log_progress_msg "xenconsoled"
xenconsoled_stop_real
return $?
}
xenconsoled_restart()
{
log_progress_msg "xenconsoled"
xenconsoled_stop_real
case "$?" in
0|1)
xenconsoled_start_real
case "$?" in
0) ;;
*) return 2 ;;
esac
;;
*) return 2 ;;
esac
return 0
}
xenconsoled_start_real()
{
start-stop-daemon --start --quiet --pidfile "$XENCONSOLED_PIDFILE"
--exec "$XENCONSOLED" --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile "$XENCONSOLED_PIDFILE"
--exec "$XENCONSOLED" -- \
$XENCONSOLED_ARGS --pid-file="$XENCONSOLED_PIDFILE" \
|| return 2
}
xenconsoled_stop_real()
{
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile
"$XENCONSOLED_PIDFILE" --name xenconsoled
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec
"$XENCONSOLED"
[ "$?" = 2 ] && return 2
rm -f $PIDFILE
return "$RETVAL"
}
xenstored_start()
{
log_progress_msg "xenstored"
start-stop-daemon --start --quiet --pidfile "$XENSTORED_PIDFILE"
--exec "$XENSTORED" --test > /dev/null \
|| return 1
[ -d "$XENSTORED_DIR" ] || mkdir -p "$XENSTORED_DIR"
[ -x /sbin/restorecon ] && /sbin/restorecon "$XENSTORED_DIR"
export XENSTORED_ROOTDIR="$XENSTORED_DIR"
start-stop-daemon --start --quiet --pidfile "$XENSTORED_PIDFILE"
--exec "$XENSTORED" -- \
$XENSTORED_ARGS --pid-file="$XENSTORED_PIDFILE" \
|| return 2
xenstore-write "/local/domain/0/name" "Domain-0"
}
case "$1" in
start)
log_daemon_msg "Starting $DESC"
modules_setup
xenfs_setup
case "$?" in
0) ;;
*) log_end_msg 1; exit ;;
esac
capability_check
case "$?" in
0) ;;
*) log_end_msg 255; exit ;;
esac
xenstored_start
case "$?" in
0|1) ;;
*) log_end_msg 1; exit ;;
esac
xenconsoled_start
case "$?" in
0|1) ;;
*) log_end_msg 1; exit ;;
esac
xend_start
case "$?" in
0|1) ;;
*) log_end_msg 1; exit ;;
esac
log_end_msg 0
;;
stop)
capability_check
case "$?" in
0) ;;
*) exit ;;
esac
log_daemon_msg "Stopping $DESC"
ret=0
xend_stop
case "$?" in
0|1) ;;
*) ret=1 ;;
esac
xenconsoled_stop
case "$?" in
0|1) ;;
*) ret=1 ;;
esac
log_end_msg $ret
;;
restart|force-reload)
capability_check
case "$?" in
0) ;;
*) exit ;;
esac
log_daemon_msg "Restarting $DESC"
ret=0
xend_restart
case "$?" in
0|1) ;;
*) ret=1 ;;
esac
xenconsoled_restart
case "$?" in
0|1) ;;
*) ret=1 ;;
esac
log_end_msg $ret
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
/etc/init.d/xendomains changed:
. /lib/init/vars.sh
. /lib/lsb/init-functions
xen list &> /dev/null
if test $? -ne 0
then
exit 0;
fi
if ! [ -e /proc/xen/privcmd ]; then
exit 0
fi
[ -r /etc/default/xendomains ] && . /etc/default/xendomains
shopt -s nullglob
check_config_name()
{
xen create --quiet --dryrun --defconfig "$1" | sed -n
's/^.*(name \(.*\))$/\1/p'
}
check_running()
{
xen domid "$1" > /dev/null 2>&1
return $?
}
timeout_coproc()
{
TIMEOUT="$1"
for no in $(seq 0 $TIMEOUT); do
if [ -z "$COPROC_PID" ]; then return 0; fi
sleep 1
log_action_cont_msg
done
kill -INT "$COPROC_PID" >/dev/null 2>&1
wait $COPROC_PID
return 1
}
timeout_domain()
{
name="$1"
TIMEOUT="$2"
for no in $(seq 0 $TIMEOUT); do
if ! check_running "$name"; then return 0; fi
sleep 1
log_action_cont_msg
done
return 1
}
do_start_restore()
{
[ -n "$XENDOMAINS_SAVE" ] || return
[ -d "$XENDOMAINS_SAVE" ] || return
[ -n "$XENDOMAINS_RESTORE" ] || return
for file in $XENDOMAINS_SAVE/*; do
if [ -f $file ] ; then
name="${file##*/}"
log_action_begin_msg "Restoring Xen domain $name (from $file)"
out=$(xen restore "$file" 2>&1 1>/dev/null)
case "$?" in
0)
rm "$file"
domains[$name]='started'
log_action_end_msg 0
;;
*)
domains[$name]='failed'
log_action_end_msg 1
echo "$out"
;;
esac
fi
done
}
do_start_auto()
{
[ -n "$XENDOMAINS_AUTO" ] || return
[ -d "$XENDOMAINS_AUTO" ] || return
for file in $XENDOMAINS_AUTO/*; do
name="$(check_config_name $file)"
if [ "${domains[$name]}" = started ]; then
:
elif check_running "$name"; then
log_action_msg "Xen domain $name already running"
else
log_action_begin_msg "Starting Xen domain $name (from $file)"
if [ "${domains[$name]}" = failed ]; then
log_action_end_msg 1 "restore failed"
else
out=$(xen create --quiet --defconfig "$file" 2>&1
1>/dev/null)
case "$?" in
0)
log_action_end_msg 0
;;
*)
log_action_end_msg 1
echo "$out"
;;
esac
fi
fi
done
}
do_start()
{
declare -A domains
do_start_restore
do_start_auto
}
do_stop_migrate()
{
[ -n "$XENDOMAINS_MIGRATE" ] || return
while read id name rest; do
log_action_begin_msg "Migrating Xen domain $name ($id)"
coproc xen migrate $id $XENDOMAINS_MIGRATE 2>&1 1>/dev/null
timeout_coproc "$XENDOMAINS_STOP_MAXWAIT"
log_action_end_msg $?
done < <(/usr/lib/xen-common/bin/xen-init-list)
}
do_stop_save()
{
[ -n "$XENDOMAINS_SAVE" ] || return
[ -d "$XENDOMAINS_SAVE" ] || mkdir -m 0700 -p
"$XENDOMAINS_SAVE"
[ -x /sbin/restorecon ] && /sbin/restorecon
"$XENDOMAINS_SAVE"
while read id name rest; do
log_action_begin_msg "Saving Xen domain $name ($id)"
coproc xen save $id $XENDOMAINS_SAVE/$name 2>&1 1>/dev/null
timeout_coproc "$XENDOMAINS_STOP_MAXWAIT"
log_action_end_msg $?
done < <(/usr/lib/xen-common/bin/xen-init-list)
}
do_stop_shutdown()
{
while read id name rest; do
log_action_begin_msg "Shutting down Xen domain $name ($id)"
xen shutdown $id 2>&1 1>/dev/null
timeout_domain "$name" "$XENDOMAINS_STOP_MAXWAIT"
log_action_end_msg $?
done < <(/usr/lib/xen-common/bin/xen-init-list)
}
do_stop()
{
do_stop_migrate
do_stop_save
do_stop_shutdown
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_stop
do_start
;;
reload|force-reload)
do_stop
do_start
;;
*)
echo "Usage: $0 {start|stop|restart|reload|force-reload}"
exit 3
;;
esac
exit 0
-- debconf-show failed
Debian Bug Tracking System
2012-Jun-24 08:15 UTC
[Pkg-xen-devel] Bug#678719: marked as done (xen-utils-common: please label all created directories for SE Linux)
Your message dated Sun, 24 Jun 2012 10:11:51 +0200 with message-id <20120624081151.GB2595 at wavehammer.waldi.eu.org> and subject line Re: [Pkg-xen-devel] Bug#678719: xen-utils-common: please label all created directories for SE Linux has caused the Debian Bug report #678719, regarding xen-utils-common: please label all created directories for SE Linux to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner at bugs.debian.org immediately.) -- 678719: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678719 Debian Bug Tracking System Contact owner at bugs.debian.org with problems -------------- next part -------------- An embedded message was scrubbed... From: Russell Coker <russell at coker.com.au> Subject: xen-utils-common: please label all created directories for SE Linux Date: Sun, 24 Jun 2012 10:33:23 +1000 Size: 12496 URL: <http://lists.alioth.debian.org/pipermail/pkg-xen-devel/attachments/20120624/7c39b3af/attachment-0002.mht> -------------- next part -------------- An embedded message was scrubbed... From: Bastian Blank <waldi at debian.org> Subject: Re: [Pkg-xen-devel] Bug#678719: xen-utils-common: please label all created directories for SE Linux Date: Sun, 24 Jun 2012 10:11:51 +0200 Size: 1903 URL: <http://lists.alioth.debian.org/pipermail/pkg-xen-devel/attachments/20120624/7c39b3af/attachment-0003.mht>
Laurent Bigonville
2012-Jun-28 19:52 UTC
[Pkg-xen-devel] Bug#678719: xen-utils-common: please label all created directories for SE Linux
Hi, Since you are creating the directory you should ensure that the correct permission are set to it, I feel that the same should apply to selinux labels. Grepping under /etc/init.d show me that other initscripts are already doing the same. Please consider applying Russell patch. Cheers Laurent Bigonville
Debian Bug Tracking System
2012-Aug-17 09:09 UTC
[Pkg-xen-devel] Bug#678719: marked as done (xen-utils-common: please label all created directories for SE Linux)
Your message dated Fri, 17 Aug 2012 11:06:07 +0200 with message-id <20120817090607.GA32563 at wavehammer.waldi.eu.org> and subject line Re: [Pkg-xen-devel] Bug#678719: xen-utils-common: please label all created directories for SE Linux has caused the Debian Bug report #678719, regarding xen-utils-common: please label all created directories for SE Linux to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner at bugs.debian.org immediately.) -- 678719: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678719 Debian Bug Tracking System Contact owner at bugs.debian.org with problems -------------- next part -------------- An embedded message was scrubbed... From: Russell Coker <russell at coker.com.au> Subject: xen-utils-common: please label all created directories for SE Linux Date: Sun, 24 Jun 2012 10:33:23 +1000 Size: 12496 URL: <http://lists.alioth.debian.org/pipermail/pkg-xen-devel/attachments/20120817/ab245d2b/attachment.mht> -------------- next part -------------- An embedded message was scrubbed... From: Bastian Blank <waldi at debian.org> Subject: Re: [Pkg-xen-devel] Bug#678719: xen-utils-common: please label all created directories for SE Linux Date: Fri, 17 Aug 2012 11:06:07 +0200 Size: 1967 URL: <http://lists.alioth.debian.org/pipermail/pkg-xen-devel/attachments/20120817/ab245d2b/attachment-0001.mht>
Reasonably Related Threads
- Bug#742397: xen-utils-common: /etc/init.d/dom0weight is hardcoded to use xm
- Bug#764912: xen-utils-common: needs to apply SE Linux labels after creating directories in start script
- Bug#597403: xen-utils-common: need to run restorecon in /etc/init.d/xend on SE Linux systems
- Bug#770456: Bug#770456: Please start a qemu process in domain 0.
- Ubuntu delta against 4.5.0-1 in experimental for disussion