mirror of
https://gitlab.com/apparmor/apparmor
synced 2025-08-30 22:05:27 +00:00
Merge branch 'cboltz-systemd' into 'master'
Add apparmor.service and aa-teardown See merge request apparmor/apparmor!81 Acked-by: John Johansen john.johansen@canonical.com
This commit is contained in:
@@ -2,6 +2,8 @@
|
|||||||
# Copyright (c) 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007
|
# Copyright (c) 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007
|
||||||
# NOVELL (All rights reserved)
|
# NOVELL (All rights reserved)
|
||||||
#
|
#
|
||||||
|
# Copyright (c) Christian Boltz 2018
|
||||||
|
#
|
||||||
# This program is free software; you can redistribute it and/or
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of version 2 of the GNU General Public
|
# modify it under the terms of version 2 of the GNU General Public
|
||||||
# License published by the Free Software Foundation.
|
# License published by the Free Software Foundation.
|
||||||
@@ -22,10 +24,11 @@ include $(COMMONDIR)/Make.rules
|
|||||||
|
|
||||||
DESTDIR=/
|
DESTDIR=/
|
||||||
APPARMOR_BIN_PREFIX=${DESTDIR}/lib/apparmor
|
APPARMOR_BIN_PREFIX=${DESTDIR}/lib/apparmor
|
||||||
|
SYSTEMD_UNIT_DIR=${DESTDIR}/usr/lib/systemd/system
|
||||||
CONFDIR=/etc/apparmor
|
CONFDIR=/etc/apparmor
|
||||||
INSTALL_CONFDIR=${DESTDIR}${CONFDIR}
|
INSTALL_CONFDIR=${DESTDIR}${CONFDIR}
|
||||||
LOCALEDIR=/usr/share/locale
|
LOCALEDIR=/usr/share/locale
|
||||||
MANPAGES=apparmor.d.5 apparmor.7 apparmor_parser.8 subdomain.conf.5
|
MANPAGES=apparmor.d.5 apparmor.7 apparmor_parser.8 subdomain.conf.5 aa-teardown.8
|
||||||
|
|
||||||
YACC := /usr/bin/bison
|
YACC := /usr/bin/bison
|
||||||
YFLAGS := -d
|
YFLAGS := -d
|
||||||
@@ -314,7 +317,7 @@ install-redhat:
|
|||||||
install -m 755 rc.apparmor.$(subst install-,,$@) $(DESTDIR)/etc/init.d/apparmor
|
install -m 755 rc.apparmor.$(subst install-,,$@) $(DESTDIR)/etc/init.d/apparmor
|
||||||
|
|
||||||
.PHONY: install-suse
|
.PHONY: install-suse
|
||||||
install-suse:
|
install-suse: install-systemd
|
||||||
install -m 755 -d $(DESTDIR)/sbin
|
install -m 755 -d $(DESTDIR)/sbin
|
||||||
ln -sf service $(DESTDIR)/sbin/rcapparmor
|
ln -sf service $(DESTDIR)/sbin/rcapparmor
|
||||||
|
|
||||||
@@ -376,6 +379,14 @@ install-indep: indep
|
|||||||
$(MAKE) -C po install NAME=${NAME} DESTDIR=${DESTDIR}
|
$(MAKE) -C po install NAME=${NAME} DESTDIR=${DESTDIR}
|
||||||
$(MAKE) install_manpages DESTDIR=${DESTDIR}
|
$(MAKE) install_manpages DESTDIR=${DESTDIR}
|
||||||
|
|
||||||
|
.PHONY: install-systemd
|
||||||
|
install-systemd:
|
||||||
|
install -m 755 -d $(SYSTEMD_UNIT_DIR)
|
||||||
|
install -m 644 apparmor.service $(SYSTEMD_UNIT_DIR)
|
||||||
|
install -m 644 apparmor.systemd $(APPARMOR_BIN_PREFIX)
|
||||||
|
install -m 755 -d $(DESTDIR)/sbin
|
||||||
|
install -m 755 aa-teardown $(DESTDIR)/sbin
|
||||||
|
|
||||||
ifndef VERBOSE
|
ifndef VERBOSE
|
||||||
.SILENT: clean
|
.SILENT: clean
|
||||||
endif
|
endif
|
||||||
|
10
parser/aa-teardown
Normal file
10
parser/aa-teardown
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
test $# = 0 || {
|
||||||
|
echo "Usage: $0"
|
||||||
|
echo
|
||||||
|
echo "Unloads all AppArmor profiles"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
/lib/apparmor/apparmor.systemd stop
|
40
parser/aa-teardown.pod
Normal file
40
parser/aa-teardown.pod
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# ----------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2018 Christian Boltz
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of version 2 of the GNU General Public
|
||||||
|
# License published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, contact Novell, Inc.
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
=pod
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
aa-teardown - unload all AppArmor profiles
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
B<aa-teardown>
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
aa-teardown unloads all AppArmor profiles
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
If you find any bugs, please report them at
|
||||||
|
L<https://bugs.launchpad.net/apparmor/+filebug>.
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
apparmor(7), apparmor.d(5), and L<http://wiki.apparmor.net>.
|
||||||
|
|
||||||
|
=cut
|
26
parser/apparmor.service
Normal file
26
parser/apparmor.service
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Load AppArmor profiles
|
||||||
|
DefaultDependencies=no
|
||||||
|
Before=sysinit.target
|
||||||
|
After=systemd-journald-audit.socket
|
||||||
|
# profile cache
|
||||||
|
After=var.mount var-lib.mount
|
||||||
|
ConditionSecurity=apparmor
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/lib/apparmor/apparmor.systemd reload
|
||||||
|
ExecReload=/lib/apparmor/apparmor.systemd reload
|
||||||
|
|
||||||
|
# systemd maps 'restart' to 'stop; start' which means removing AppArmor confinement
|
||||||
|
# from running processes (and not being able to re-apply it later).
|
||||||
|
# Upstream systemd developers refused to implement an option that allows overriding
|
||||||
|
# this behaviour, therefore we have to make ExecStop a no-op to error out on the
|
||||||
|
# safe side.
|
||||||
|
#
|
||||||
|
# If you really want to unload all AppArmor profiles, run aa-teardown
|
||||||
|
ExecStop=/bin/true
|
||||||
|
RemainAfterExit=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
100
parser/apparmor.systemd
Normal file
100
parser/apparmor.systemd
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of version 2 of the GNU General Public
|
||||||
|
# License published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, contact Novell, Inc.
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
APPARMOR_FUNCTIONS=/lib/apparmor/rc.apparmor.functions
|
||||||
|
|
||||||
|
aa_action()
|
||||||
|
{
|
||||||
|
echo $1
|
||||||
|
shift
|
||||||
|
"$@"
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
aa_log_warning_msg()
|
||||||
|
{
|
||||||
|
echo "Warning: $@"
|
||||||
|
}
|
||||||
|
|
||||||
|
aa_log_failure_msg()
|
||||||
|
{
|
||||||
|
echo "Error: $@"
|
||||||
|
}
|
||||||
|
|
||||||
|
aa_log_action_start()
|
||||||
|
{
|
||||||
|
echo "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
aa_log_action_end()
|
||||||
|
{
|
||||||
|
echo -n
|
||||||
|
}
|
||||||
|
|
||||||
|
aa_log_daemon_msg()
|
||||||
|
{
|
||||||
|
echo "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
aa_log_skipped_msg()
|
||||||
|
{
|
||||||
|
echo "Skipped: $@"
|
||||||
|
}
|
||||||
|
|
||||||
|
aa_log_end_msg()
|
||||||
|
{
|
||||||
|
echo -n
|
||||||
|
}
|
||||||
|
|
||||||
|
# source apparmor function library
|
||||||
|
if [ -f "${APPARMOR_FUNCTIONS}" ]; then
|
||||||
|
. ${APPARMOR_FUNCTIONS}
|
||||||
|
else
|
||||||
|
aa_log_failure_msg "Unable to find AppArmor initscript functions"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
apparmor_start
|
||||||
|
rc=$?
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
apparmor_stop
|
||||||
|
rc=$?
|
||||||
|
;;
|
||||||
|
restart|reload|force-reload)
|
||||||
|
apparmor_restart
|
||||||
|
rc=$?
|
||||||
|
;;
|
||||||
|
try-restart)
|
||||||
|
apparmor_try_restart
|
||||||
|
rc=$?
|
||||||
|
;;
|
||||||
|
kill)
|
||||||
|
apparmor_kill
|
||||||
|
rc=$?
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
apparmor_status
|
||||||
|
rc=$?
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit $rc
|
Reference in New Issue
Block a user