# Copyright 2021 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.

# Setup the paths expected by cryptohome.

# These are redundant because of the bind mount to stateful, but the checks are
# cheap so it is better to be safe.
d= /home/chronos 0755 chronos chronos
# /home/root must be sticky.
D= /home/root 1751 root root
D= /home/user 0755 root root
D= /home/chronos/user 1755 chronos chronos

R /home/chronos/u-????????????????????????????????????????
R /home/user/????????????????????????????????????????
R /home/root/????????????????????????????????????????

d= /run/cryptohome 0700 root root

d= /run/daemon-store 0755 root root

# Setup the paths expected by lockbox-cache.
d= /run/lockbox 0711 root root
