From 707c14aeebd738c668572f0362cfcfbd94ac4f49 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 18 Feb 2016 18:21:32 -0500 Subject: [PATCH] manual: Note that the bare-user mode exists --- docs/manual/repo.md | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/docs/manual/repo.md b/docs/manual/repo.md index a3e64bd3..3b7a737f 100644 --- a/docs/manual/repo.md +++ b/docs/manual/repo.md @@ -49,14 +49,23 @@ header, for regular files, the content follows. # Repository types and locations -Also unlike git, an OSTree repository can be in one of two separate -modes: `bare` and `archive-z2`. A bare repository is one where -content files are just stored as regular files; it's designed to be -the source of a "hardlink farm", where each operating system checkout -is merely links into it. If you want to store files owned by -e.g. root in this mode, you must run OSTree as root. In contrast, the -`archive-z2` mode is designed for serving via plain HTTP. Like tar -files, it can be read/written by non-root users. +Also unlike git, an OSTree repository can be in one of three separate +modes: `bare`, `bare-user`, and `archive-z2`. A bare repository is +one where content files are just stored as regular files; it's +designed to be the source of a "hardlink farm", where each operating +system checkout is merely links into it. If you want to store files +owned by e.g. root in this mode, you must run OSTree as root. + +The `bare-user` is a later addition that is like `bare` in that files +are unpacked, but it can (and should generally) be created as +non-root. In this mode, extended metadata such as owner uid, gid, and +extended attributes are stored but not actually applied. +The `bare-user` mode is useful for build systems that run as non-root +but want to generate root-owned content, as well as non-root container +systems. + +In contrast, the `archive-z2` mode is designed for serving via plain +HTTP. Like tar files, it can be read/written by non-root users. On an OSTree-deployed system, the "system repository" is `/ostree/repo`. It can be read by any uid, but only written by root.