blob: f99e212d8757f26cd7e8991f1714b17e4ee27ddf [file] [log] [blame]
# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
description "The setup and teardown logic for hardening the lock screen."
author "allenwebb@chromium.org"
# Prior to starting usbguard-daemon, the rule files in
# "/etc/usbguard/rules.d/" are concatenated in alphabetical order to
# create the runtime rules configuration at "/run/usbguard/rules.conf".
# Filename prefixes are used to control the order of the included files.
# Here are the prefixes
# 00- is reserved for a default header for all boards.
# {10..29}- are for high priority rules.
# {30..59}- are for default priority rules.
# {60..79}- are for low priority rules.
# 99- is reserved for the default footer for all boards.
# Most board specific configurations should use the "50-" prefix.
# These signals are emitted by session_manager.
#
# screen-unlocked may not be called for every screen-locked event, but
# start-user-session covers those cases.
start on screen-locked
stop on (screen-unlocked or start-user-session) and stopped usbguard
pre-start script
logger -t "${UPSTART_JOB}" 'Locking USB.'
# White-list connected devices.
umask 077
mkdir -p /run/usbguard/
cd /run/usbguard/
rm -f rules.conf
/usr/sbin/usb_bouncer genrules > rules.conf
chown usbguard:usbguard . rules.conf
end script
post-stop script
rm -f /run/usbguard/rules.conf
logger -t "${UPSTART_JOB}" "Unlocking USB."
# Accept new usb devices by default, and authorize connected devices.
usb_bouncer authorize-all
end script