CCLearn

Level 10 — Permissions, Sandboxing and Safety

12 questions, drawn from a bank of 34 across 27 topics. Pass at 85%. Every wrong option carries a note explaining why it is tempting — those notes are the point of the quiz, so read them whether you pass or not.

attempt 1
  1. 1 / 12 · Choose one

    Your settings deny Bash(terraform apply *). A teammate adds a PreToolUse hook that returns "allow" for exactly that command, arguing that hooks run before the permission check. Does the command now run?

    Your settings deny Bash(terraform apply *). A teammate adds a PreToolUse hook that returns "allow" for exactly that command, arguing that hooks run before the permission check. Does the command now run?
  2. 2 / 12 · Choose one

    A repository's settings deny Bash(aws *). Your user settings allow Bash(aws s3 ls). Claude proposes aws s3 ls. What happens, and which of the two rules is doing nothing?

    A repository's settings deny Bash(aws *). Your user settings allow Bash(aws s3 ls). Claude proposes aws s3 ls. What happens, and which of the two rules is doing nothing?
  3. 3 / 12 · Choose one

    A pipeline runs claude -p "…" --permission-mode dontAsk. Its settings allow Bash(npm test) and Read, and put Bash(git push *) in permissions.ask. Claude proposes git push origin main. What happens?

    A pipeline runs claude -p "…" --permission-mode dontAsk. Its settings allow Bash(npm test) and Read, and put Bash(git push *) in permissions.ask. Claude proposes git push origin main. What happens?
  4. 4 / 12 · Choose one

    Claude Code warns at startup about the allow rule Bash(git * main). Beyond being wider than intended, what is the concrete risk?

    Claude Code warns at startup about the allow rule Bash(git * main). Beyond being wider than intended, what is the concrete risk?
  5. 5 / 12 · Choose one

    Your organisation is on an Enterprise plan. You clone an unfamiliar repository whose checked-in .claude/settings.json contains the block below and start Claude Code in it in a terminal with no flags. Which mode is the session in?

    terminal
    {
      "permissions": {
        "defaultMode": "auto"
      }
    }
    Your organisation is on an Enterprise plan. You clone an unfamiliar repository whose checked-in .claude/settings.json contains the block below and start Claude Code in it in a terminal with no flags. Which mode is the session in?
  6. 6 / 12 · Choose all that apply

    You add "allow": ["Bash(curl http://github.com/ *)"], intending to restrict curl to GitHub. The docs list the variations such a pattern misses. Which of these does the rule fail to match?

    You add "allow": ["Bash(curl http://github.com/ *)"], intending to restrict curl to GitHub. The docs list the variations such a pattern misses. Which of these does the rule fail to match?
  7. 7 / 12 · Choose one

    You ask Claude to fetch a vendor changelog and check for a breaking change. The result says the page does not mention one. Why is that not evidence, and what are the documented ways to get a better answer?

    You ask Claude to fetch a vendor changelog and check for a breaking change. The result says the page does not mention one. Why is that not evidence, and what are the documented ways to get a better answer?
  8. 8 / 12 · Choose one

    You standardise on the settings block below across a fleet of CI machines. On some of them the sandbox dependency is missing. What happens on those machines by default, and which key changes it?

    terminal
    {
      "sandbox": {
        "enabled": true
      }
    }
    You standardise on the settings block below across a fleet of CI machines. On some of them the sandbox dependency is missing. What happens on those machines by default, and which key changes it?
  9. 9 / 12 · Choose one

    A CI job runs claude -p on a contributor's branch. Which pairing is right: a defense the docs say is absent there, and something the repository supplies that runs anyway?

    A CI job runs claude -p on a contributor's branch. Which pairing is right: a defense the docs say is absent there, and something the repository supplies that runs anyway?
  10. 10 / 12 · Choose one

    Your session is in auto mode, and you want the classifier to treat this repository as public before it evaluates a push. You run gh repo view, which prints the visibility. Does that output settle it?

    Your session is in auto mode, and you want the classifier to treat this repository as public before it evaluates a push. You run gh repo view, which prints the visibility. Does that output settle it?
  11. 11 / 12 · Choose one

    Claude read a staging .env during yesterday's session. You have since added the deny rule. Where is that value now, and what actually removes it?

    Claude read a staging .env during yesterday's session. You have since added the deny rule. Where is that value now, and what actually removes it?
  12. 12 / 12 · Choose one

    You want Claude Code to refuse to open or modify anything under a directory named credentials/, wherever it appears in the tree and whichever tool does the modifying, notebooks included. Which deny block is built from rules Claude Code actually consults for file paths?

    You want Claude Code to refuse to open or modify anything under a directory named credentials/, wherever it appears in the tree and whichever tool does the modifying, notebooks included. Which deny block is built from rules Claude Code actually consults for file paths?
12 questions still to answer