> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/unigetui/for-it-teams/organization/restrict-settings.md).

# Lock down risky settings

Understand what each administrator setting of UniGetUI allows, keep the risky ones turned off, and control who can turn them on.

A few UniGetUI options let packages run extra commands or change how they're installed. They're useful for power users and dangerous in the wrong hands, so they're **off by default**. This page explains what each one allows, so you can decide which to keep off on your computers.

You'll find them all in ***Settings*** – ***Administrator rights and other dangerous settings***.

## How the protection works

The options under ***Restrictions on…*** are **secure settings**. On Windows:

* They're stored per user in `C:\Program Files\UniGetUI\SecureSettings`, a folder standard users can't write to.
* Turning one on or off triggers a Windows administrator (UAC) prompt.

So a standard user can't turn them on without an administrator's approval. Leaving them off is all it takes to lock them down.

{% hint style="warning" %}
On macOS and Linux, secure settings are stored in the user's own UniGetUI data folder and don't require administrator approval. Don't rely on them as a security boundary there.
{% endhint %}

The options under ***Change how operations request administrator rights*** are regular settings. Users can change them, but they can't use them to get more rights than they already have.

## What each risky setting allows

<table><thead><tr><th width="300">SETTING</th><th>WHAT IT ALLOWS</th><th width="120">RISK</th></tr></thead><tbody><tr><td><strong>Allow custom command-line arguments</strong></td><td>Users can add their own arguments to install, update and uninstall commands in a package's options. Arguments change how the installer behaves, in ways UniGetUI can't check.</td><td>Medium</td></tr><tr><td><strong>Ignore custom pre-install and post-install commands when importing packages from a bundle</strong><br><em>(the label is misleading, see below)</em></td><td>Users can define commands that run before and after a package is installed, updated or uninstalled. The commands run with the rights of the operation, which can be administrator rights.</td><td>High</td></tr><tr><td><strong>Allow changing the paths for package manager executables</strong></td><td>Users can point UniGetUI to a different executable for a package manager. A malicious executable would then run every package operation.</td><td>High</td></tr><tr><td><strong>Allow importing custom command-line arguments when importing packages from a bundle</strong></td><td>Arguments saved in a bundle file are kept when the bundle is opened. Requires custom arguments to be allowed.</td><td>High</td></tr><tr><td><strong>Allow importing custom pre-install and post-install commands when importing packages from a bundle</strong></td><td>Commands saved in a bundle file are kept when the bundle is opened. Anyone who sends a bundle could make it run code on the computer. Requires pre/post commands to be allowed.</td><td>Very high</td></tr></tbody></table>

{% hint style="danger" %}
**About the pre-install and post-install toggle:** despite its label, turning on ***Ignore custom pre-install and post-install commands when importing packages from a bundle*** **allows** pre-install and post-install commands. When it's off (the default), these commands are discarded and never run. Keep it off unless you specifically need them.
{% endhint %}

When a bundle contains arguments or commands that aren't allowed, UniGetUI drops them and shows a ***Bundle security report*** listing what it removed. That's the expected, safe behavior.

## Elevation options

These options are on Windows only. They change how UniGetUI asks for administrator rights, not what users are allowed to do.

<table><thead><tr><th width="300">SETTING</th><th>EFFECT</th></tr></thead><tbody><tr><td><strong>Ask for administrator privileges once for each batch of operations</strong></td><td>One UAC prompt for a group of operations started together.</td></tr><tr><td><strong>Ask only once for administrator privileges</strong></td><td>One UAC prompt, reused for the following operations. Convenient, but any later operation also runs elevated without asking.</td></tr><tr><td><strong>Prohibit any kind of Elevation via UniGetUI Elevator or GSudo</strong></td><td>UniGetUI never elevates. Operations that need administrator rights fail.</td></tr><tr><td><strong>Delegate package operations to the Devolutions Agent broker</strong></td><td>Devolutions Agent runs approved operations instead of a UAC prompt. See <a href="/unigetui/for-it-teams/organization/devolutions-agent.md">Install approved apps without admin rights</a>.</td></tr></tbody></table>

## Turn a secure setting on for a user

If someone really needs one of these options, an administrator can turn it on for that user only:

* From the user's session: open ***Administrator rights and other dangerous settings***, turn on the option, and approve the UAC prompt with administrator credentials.
* From an elevated command line, for example in a deployment script:

```powershell
& "C:\Program Files\UniGetUI\UniGetUI.exe" --enable-secure-setting-for-user <username> <key>
```

Use `--disable-secure-setting-for-user` with the same parameters to turn it off again.

<table><thead><tr><th width="300">KEY</th><th>SETTING</th></tr></thead><tbody><tr><td><code>AllowCLIArguments</code></td><td>Allow custom command-line arguments</td></tr><tr><td><code>AllowPrePostInstallCommands</code></td><td>Pre-install and post-install commands (the mislabeled toggle)</td></tr><tr><td><code>AllowCustomManagerPaths</code></td><td>Allow changing the paths for package manager executables</td></tr><tr><td><code>AllowImportingCLIArguments</code></td><td>Allow importing custom command-line arguments from a bundle</td></tr><tr><td><code>AllowImportingPrePostInstallCommands</code></td><td>Allow importing pre-install and post-install commands from a bundle</td></tr></tbody></table>

{% hint style="info" %}
Secure settings aren't included when users export or import their settings, so a settings file can't turn them on.
{% endhint %}

## If it doesn't work

* An operation fails right after you turned on ***Prohibit any kind of Elevation via UniGetUI Elevator or GSudo***: that's expected for apps that need administrator rights. See [An update or installation fails](/unigetui/help/troubleshooting/update-or-install-fails.md).
* The toggle goes back to off after you turn it on: the UAC prompt was dismissed or denied. Try again and approve it with administrator credentials.
* ***Allow changing the paths for package manager executables*** has no effect yet: restart UniGetUI, this one needs a restart.

## Next

* [Install approved apps without admin rights](/unigetui/for-it-teams/organization/devolutions-agent.md)
* [All settings](/unigetui/reference/settings.md)


---

# 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.devolutions.net/unigetui/for-it-teams/organization/restrict-settings.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.
