> For the complete documentation index, see [llms.txt](https://docs.umbraco.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.umbraco.com/umbraco-cms/run-in-production/infrastructure-and-ops/server-setup/permissions.md).

# File and Folder Permissions

Information on file and folder permissions required for Umbraco sites

{% hint style="info" %}
To ensure a stable and smoothly running Umbraco installation, these permissions need to be set correctly. These permissions should be set up before or during the installation of Umbraco.

The main account that requires 'modify' file permissions to be set on the folders below, is the account used start Umbraco. If Umbraco is hosted in IIS this will be the Application Pool Identity for the IIS website. Usually IIS APPPOOL\appPoolName or a specific local account or in some circumstances Network Service. If in doubt, ask your server admin / hosting company. Additionally, the Internet User (IUSR) account and IIS\_IUSRS account only require 'read only' access to the site's folders.

Generally, when developing locally with Visual Studio or Rider, permissions do not need to be strictly applied.
{% endhint %}

{% hint style="info" %}
If you have any specific static files/media items/etc, you should add the appropriate permissions accordingly.

The permissions documentation should allow you to run a plain Umbraco install successfully.
{% endhint %}

| File / folder        | Permission            | Comment                                                                                                                                    |
| -------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `/appSettings*.json` | Modify / Full control | Only needed for setting database and a global identifier during installation. So can be set to read-only afterwards for enhanced security. |
| `/App_Plugins`       | Modify / Full control | Should always have modify rights as the folder and its files are used by packages. Not part of your project by default.                    |
| `/umbraco`           | Modify / Full control | Should always have modify rights as the folder and its files are used for cache and storage.                                               |
| `/Views`             | Modify / Full control | Should always have modify rights as the folder and its files are used for Templates and Partial views                                      |
| `/wwwroot/css`       | Modify / Full control | Should always have modify rights as the folder and its files are used for css files.                                                       |
| `/wwwroot/media`     | Modify / Full control | Should always have modify rights as the folder and its files are used for Media files uploaded via the Umbraco CMS backoffice.             |
| `/wwwroot/umbraco`   | Modify / Full control | Should always have modify rights as the folder and its files are used by packages. Not part of your project by default.                    |
| `/wwwroot/scripts`   | Modify / Full control | Should always have modify rights as the folder and its files are used for script files.                                                    |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.umbraco.com/umbraco-cms/run-in-production/infrastructure-and-ops/server-setup/permissions.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
