docs(admin_manual): document user home containment and user.home_base_dirs - #1573
Merged
Conversation
…_dirs A user backend can supply a per user home directory - the LDAP backend for instance can be configured to read it from a user attribute via the "User Home Folder Naming Rule" setting. That value is now confined to the data directory, because an LDAP directory is not necessarily administered by the people who administer the ownCloud server (owncloud/core#41752, owncloud/user_ldap#849). Add a CAUTION to the "User Home Folder Naming Rule" item explaining the containment, what an affected user sees, how symlinks are treated, and how to permit additional base directories with "user_ldap.home_base_dirs" or "user.home_base_dirs". Existing installations whose homes legitimately live outside of the data directory need the setting before upgrading, so that is called out explicitly. Regenerate the config parameters page with owncloud/config-to-docs from the core branch's config.sample.php, which adds the "user.home_base_dirs" section. Verified the generator reproduces the current page byte for byte from the pre-change config.sample.php, so the diff is limited to the new option. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
This was referenced Jul 28, 2026
Regenerated from core's config.sample.php after owncloud/core#41752 spelled out that a non-absolute entry in user.home_base_dirs is ignored - a relative one would otherwise resolve against the working directory of whichever process happens to run the containment check. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
phil-davis
approved these changes
Jul 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A user backend can supply a per user home directory — with LDAP, the User Home
Folder Naming Rule setting can name it from a per user attribute (
attr:cn,attr:homeDirectory). That value was accepted essentially verbatim, so a homepointing at the ownCloud code directory gave the user read and write access to
the application's own PHP files. It is now confined to the data directory:
SyncService::syncHome(), covering everyhome-providing backend
This documents the new behaviour and the config option that opts out of it.
Changes
configuration/user/user_auth_ldap.adoc— aCAUTION:in the User HomeFolder Naming Rule item: what is refused, what an affected user sees (login
fails, an error naming the path and the option is logged), how symlinks are
treated (a symlinked data directory keeps working; a symlink inside it cannot be
used to escape), and how to permit additional base directories. It also states
the upgrade case explicitly — an installation whose homes legitimately live
outside the data directory must set the option before upgrading, or those
users cannot log in afterwards.
configuration/server/config_sample_php_parameters.adoc— regenerated,adding the
user.home_base_dirssection.How this was produced and verified
The parameters page is generated by
owncloud/config-to-docs from
core's
config/config.sample.php, so it was regenerated rather than hand-edited:config.sample.phpreproduces the currently published page byte for byte(
diffempty), so the diff here contains nothing but the new option — nogenerator churn.
CAUTION:becomes an admonitionblock inside the definition-list item, and the PHP snippet renders.
xref:resolves: the target section's generated anchor isadditional-base-directories-a-user-home-may-be-located-in, confirmed againstthe repo's
idprefix: ''/idseparator: '-'attributes — matching the xrefused here.
the sample comment wrapped so that a line started with
-, which AsciiDocwould have rendered as a stray list item on the generated page.
Related: OC10-133 (internal).
🤖 Generated with Claude Code