Claude Code permission settings
Resolved 💬 3 comments Opened Jan 19, 2026 by dcmcwhorter Closed Jan 22, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
From claude-code:
● Summary:
- Both config files (/root/.claude/settings.json and /etc/claude-code/managed-settings.json) have correct permissions with single slashes
- Claude Code's internal session permission handling is adding an extra / prefix, creating malformed patterns like //etc/...
- This is a Claude Code bug, not a configuration issue we can fix
- Cleared debug cache, informed Armsy
What Should Happen?
the app should not prepend slashes when they exist in the config file.
Error Messages/Logs
Steps to Reproduce
- Create /etc/claude-code/managed-settings.json with a Read permission:
{
"permissions": {
"allow": ["Read(/etc/**)"]
}
}
- Start a new Claude Code session from /root (or any directory)
- Ask Claude to read a file from /etc/, e.g.: "Read /etc/claude-code/CLAUDE.md"
- Expected: File is read without permission prompt (matches Read(/etc/**))
- Actual: Permission prompt appears for Read(/etc/claude-code/CLAUDE.md)
- If you approve, check debug logs in ~/.claude/debug/*.txt - the session permission is stored with double slash:
Applying permission update: Adding 1 allow rule(s) to destination 'session': ["Read(//etc/claude-code/**)"]
Environment:
- Claude Code version: 2.0.76
- OS: Linux (Ubuntu)
- Platform: Debian-based server
Notes:
- The config files contain correct single-slash paths
- The double slash appears only in runtime session permissions
- Suggests a path concatenation bug when building session permission rules
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.0.76
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
iTerm2
Additional Information
From claude-code:
- Working directory matters? Session was running from /root when reading /etc/claude-code/CLAUDE.md - possible the path concatenation bug is related to CWD vs absolute path handling
- Happens on first read - The permission prompt appeared on the very first attempt to read the file in a new session, not after any prior permission grants
- Both settings files have the rule - The permission Read(/etc/**) exists in both user settings (~/.claude/settings.json) AND managed settings (/etc/claude-code/managed-settings.json), yet neither was matched
- Glob pattern should match - /etc/** is a valid glob that should match /etc/claude-code/CLAUDE.md
- Session runs via tmux - Claude Code is running in a persistent tmux session via systemd service, if that's relevant to path resolution
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗