Settings precedence
Permission rules follow the same settings precedence as all other Claude Code settings, with managed settings highest: no other level, including command line arguments, can override a managed permission rule.
If a tool is denied at any level, no other level can allow it. For example, a managed settings deny can't be overridden by --allowedTools, and --disallowedTools can add restrictions beyond what managed settings define.
The same holds across settings scopes: if user settings allow a permission and project settings deny it, the deny rule blocks it. The reverse is also true: a user-level deny blocks a project-level allow, because deny rules from any scope are evaluated before allow rules.
Embedding hosts can supply additional managed policy via the SDK managedSettings option, including permission allow rules unless the admin sets the allowManaged*Only locks; Deliver policy to Claude Desktop sessions covers when embedder policy applies at all.