Build skeleton home directories in root-only path.

When building a user or guest home directory there are various ownership
and permissions operations that are performed.  Doing this work in a
location accessible only to root helps prevent race conditions inducible
by a process running as chronos.

BUG=chromium-os:38821
TEST=unit tests, manual testing

Change-Id: Id59cf4a3a684e69da73c3014d8979b2550087bb2
Reviewed-on: https://gerrit.chromium.org/gerrit/43422
Reviewed-by: Kees Cook <keescook@chromium.org>
Commit-Queue: Darren Krahn <dkrahn@chromium.org>
Tested-by: Darren Krahn <dkrahn@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43524
2 files changed
tree: f43e8a454e0aa54bbd28e6738847d7988b6ab4d5
  1. etc/
  2. share/
  3. attestation.cc
  4. attestation.h
  5. attestation.proto
  6. attestation_task.cc
  7. attestation_task.h
  8. attestation_unittest.cc
  9. common.mk
  10. credentials.h
  11. crypto.cc
  12. crypto.h
  13. crypto_unittest.cc
  14. cryptohome-path.cc
  15. cryptohome.cc
  16. cryptohome.xml
  17. cryptohome_common.h
  18. cryptohome_event_source.cc
  19. cryptohome_event_source.h
  20. cryptohome_event_source_unittest.cc
  21. cryptohome_testrunner.cc
  22. cryptohomed.cc
  23. cryptolib.cc
  24. cryptolib.h
  25. email_to_image
  26. homedirs.cc
  27. homedirs.h
  28. homedirs_unittest.cc
  29. inherit-review-settings-ok
  30. install_attributes.cc
  31. install_attributes.h
  32. install_attributes.proto
  33. install_attributes_unittest.cc
  34. interface.cc
  35. interface.h
  36. LICENSE
  37. lockbox-cache-main.cc
  38. lockbox-cache-tpm.cc
  39. lockbox-cache-tpm.h
  40. lockbox-cache.cc
  41. lockbox-cache.h
  42. lockbox.cc
  43. lockbox.h
  44. lockbox_unittest.cc
  45. make_tests.cc
  46. make_tests.h
  47. make_tests.sh
  48. Makefile
  49. marshal.list
  50. mock_homedirs.h
  51. mock_install_attributes.h
  52. mock_lockbox.h
  53. mock_mount.h
  54. mock_platform.h
  55. mock_tpm.h
  56. mock_user_session.h
  57. mount.cc
  58. mount.h
  59. mount_stack.cc
  60. mount_stack.h
  61. mount_stack_unittest.cc
  62. mount_task.cc
  63. mount_task.h
  64. mount_task_unittest.cc
  65. mount_unittest.cc
  66. OWNERS
  67. pam_mount.conf.xml
  68. pkcs11_init.cc
  69. pkcs11_init.h
  70. platform.cc
  71. platform.h
  72. README
  73. README.dbus
  74. README.homedirs
  75. README.lockbox
  76. README.tpm
  77. service.cc
  78. service.h
  79. service_unittest.cc
  80. stateful_recovery.cc
  81. stateful_recovery.h
  82. stateful_recovery_unittest.cc
  83. stub_tpm.h
  84. tpm.cc
  85. tpm.h
  86. tpm_init.cc
  87. tpm_init.h
  88. tpm_status.proto
  89. user_oldest_activity_timestamp_cache.cc
  90. user_oldest_activity_timestamp_cache.h
  91. user_oldest_activity_timestamp_cache_unittest.cc
  92. user_session.cc
  93. user_session.h
  94. user_session_unittest.cc
  95. username_passkey.cc
  96. username_passkey.h
  97. username_passkey_unittest.cc
  98. vault_keyset.cc
  99. vault_keyset.h
  100. vault_keyset.proto
  101. vault_keyset_unittest.cc
  102. WATCHLISTS