# Claude Code 2.1.268: Kaj je bilo popravljeno pri pravilih deny in MCP

> Claude Code 2.1.268–2.1.269 je odpravil štiri težave z dovoljenji in uhajanje skrivnosti v /mcp. Koga zadeva, kako posodobiti in kako preveriti pravila.

Source: https://ailoot.ai/blog/sl/claude-code-2-1-268-fixes/
Canonical: https://ailoot.ai/blog/sl/claude-code-2-1-268-fixes/
Language: sl
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-040
Revision: sha256-f40ab1d526c43a66f8d07859bc3c0d9c7dd8295bdc0705687a6092c02fcde000


Claude Code različica 2.1.268 je izšla 10. septembra 2026, naslednji dan pa ji je sledila različica 2.1.269. Posodobite jo takoj: v dveh primerih pravila deny, ki ste jih uporabljali za blokiranje dostopa agenta do datotek `.env` in map storitev, tiho niso delovala. Poleg tega je lahko ukaz `/mcp` v terminal izpisal skrivnosti iz vaših konfiguracij.

Vse spodaj temelji na uradnem dnevniku sprememb in dokumentaciji Anthropic, kakršna sta bila 17. septembra 2026, na datum izvornega gradiva. Najnovejša različica na ta datum je bila 2.1.274. Delovanje napak opisujemo na podlagi teh zapisov; obvodov nismo poustvarili v ranljivi različici.

Za dodatna navodila za delo z Ailootom glejte [dokumentacijo](https://ailoot.ai/docs/).



## Kaj je bilo popravljeno v Claude Code 2.1.268 in 2.1.269?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Glavno sporočilo razdelka">

Glavno sporočilo

Popravljene so bile štiri težave z dovoljenji. Pravila deny in ask niso delovala na poteh prek simbolnih povezav, pravilo deny za Read ali Edit pa je lahko odpovedalo v vrsticah z `env -C` ali `eval`. Pravilo z znakom »!« je veljalo tudi zunaj svoje datoteke z nastavitvami. Ukaz `tee` je zapisoval datoteke, ne da bi ga blokiralo pravilo deny za Edit. Poleg tega sta ukaza `/mcp` in `claude mcp list` prikazovala skrivnosti iz konfiguracij, napake vtičnikov pa tokene iz URL-jev Git.

</div>

Štirje popravki zadevajo pravila za dovoljenja:

1.  **Prepovedi na simbolnih povezavah niso delovale.** Pravila deny in ask za imenike, dostopne prek simbolnih povezav (`/etc`, `/tmp`, `/var` v macOS, `/bin` v Linuxu), se niso sprožila, kadar je bila pot navedena z dejansko lokacijo. Tudi ukazi Bash so prezrli pravila deny, zapisana za pot prek simbolne povezave.
2.  **Prepoved branja in urejanja je odpovedala ob `env -C` ali `eval`.** Če je ista ukazna vrstica vsebovala konstrukcijo, ki je preverjanje dovoljenj ni moglo razčleniti, se pravilo deny za Read ali Edit morda ni sprožilo.
3.  **Pravilo z znakom »!« je veljalo širše, kot je bilo predvideno.** Pravilo deny ali ask, ki se je začelo z `!`, je veljalo tudi zunaj datoteke z nastavitvami, v kateri je bilo zapisano. Zdaj velja samo znotraj svojega vira, samostojna negacija `!` pa je prezrta.
4.  **`tee` je zapisoval mimo prepovedi.** Pravila deny za `Edit()` in preverjanje poti za zapisovanje se niso uporabljala za datoteko, ki jo je ustvaril ukaz Bash `tee`. Dovoljenje `Bash(tee:*)` ne zajema več zapisovanja zunaj delovnih imenikov.

Ti različici sta odpravili tudi dve težavi, povezani z razkritjem skrivnosti. WebFetch ne čaka več v nedogled na odgovor strežnika, ki ohranja povezavo odprto: zahteva zdaj po 300 sekundah spodleti, časovno omejitev pa je mogoče nastaviti s spremenljivko `CLAUDE_CODE_WEBFETCH_DEADLINE_MS`. Odpravljena je bila tudi vztrajno visoka poraba procesorja v dolgih nedejavnih sejah.

## Kako delujejo prepovedi v Claude Code?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Glavno sporočilo razdelka">

Glavno sporočilo

Pravila so zapisana v bloku `permissions` v datoteki `settings.json`: deny blokira, ask zahteva potrditev, allow pa dovoli dejanje brez potrditve. Preverjanje poteka v tem vrstnem redu: deny, nato ask in nazadnje allow. Pravilo je oblike `Tool` ali `Tool(detail)`, na primer `Read(./.env)`.

</div>

Claude Code ima tri sezname pravil: **deny** (vedno prepovedano), **ask** (vprašaj pred izvedbo dejanja) in **allow** (dovoljeno brez potrditve). Ko namerava agent nekaj narediti, se pravila preverijo strogo v tem vrstnem redu. Ujemajoče se pravilo deny razveljavi vsak allow za isto dejanje: pravilo, ki nekaj dovoli, ne more ustvariti izjeme pri prepovedi.

Pravila so shranjena na treh mestih: uporabniška pravila v `~/.claude/settings.json`, projektna pravila v `.claude/settings.json` v repozitoriju in lokalna pravila v `.claude/settings.local.json`. Tukaj je primer nastavitev, ki prepovedujejo branje datoteke s ključi:

```json
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)",
      "Bash(rm *)"
    ]
  }
}
```

Vse aktivne pravila in datoteko, iz katere izvira vsako od njih, si lahko ogledate tako, da v seji zaženete `/permissions`. Če pravilo blokira branje, bo sporočilo o zavrnitvi navedlo to pravilo, kar bo koristno pri spodnjem preverjanju.



## Katere napake so vplivale na prepovedi in obseg pravil?

Napake so vplivale na preverjanje poti in ukazov ter na obseg pravil iz različnih datotek z nastavitvami.

**Prvi primer: simbolne povezave.** V macOS so `/etc`, `/tmp` in `/var` simbolne povezave do dejanskih map pod `/private`; v Linuxu je podobna simbolna povezava pogosto tudi `/bin`. Če ste pravilo deny zapisali za eno obliko poti, agent pa je do nje dostopal z drugo (na primer z dejansko lokacijo namesto prek simbolne povezave), se pravilo ni sprožilo. Tudi ukazi Bash so prezrli prepoved, zapisano za pot prek simbolne povezave. V različici 2.1.268 sta bila odpravljena oba primera: pravilo zdaj velja ne glede na uporabljeni zapis poti.

**Drugi primer: `env -C` in `eval` v isti vrstici.** Preverjanje dovoljenj razčleni ukaz, da ugotovi, do katerih datotek bo dostopal. Konstrukcij, kot sta `env -C` in `eval`, ne more razčleniti. Napaka je bila v tem, da se ob prisotnosti take konstrukcije v vrstici pravilo deny za Read ali Edit morda ni uporabilo. Zato je ukaz lahko zaobšel prepoved branja ali urejanja zaščitene datoteke.

**Tretji primer: pravilo z znakom »!« je preseglo svoje meje.** Pravilo, ki se začne z `!`, bi moralo veljati samo znotraj datoteke z nastavitvami, v kateri je zapisano. Pred različico 2.1.269 je veljalo tudi za druge vire nastavitev. Zdaj je njegov obseg omejen na lastno datoteko, pravilo, sestavljeno samo iz `!`, pa je prezrto.

**Četrti primer: zapisovanje z `tee`.** Ukaz Bash `tee` lahko zapisuje v datoteko. Preverjanje poti za zapisovanje in pravila deny za `Edit()` se za to datoteko niso uporabljala. Hkrati je dovoljenje `Bash(tee:*)` zajemalo zapisovanje zunaj delovnih imenikov. V različici 2.1.269 sta se ti preverjanji začeli uporabljati tudi za zapisovanje prek `tee`: prepoved za datoteko začne veljati, `Bash(tee:*)` pa zajema samo delovne imenike.

Če uporabljate ciljne prepovedi — za blokiranje `.env`, nekaj map storitev ali nevarnih ukazov — preverite tudi te. Koraki so navedeni spodaj.

## Zakaj je lahko /mcp prikazal vaše ključe?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Glavno sporočilo razdelka">

Glavno sporočilo

Ključi v konfiguracijah MCP so pogosto podani prek spremenljivk `${VAR}`. Ukazi `/mcp`, `/plugin`, `claude mcp list` in `claude mcp get` ter napake pri prijavi v MCP so prikazovali zamenjane vrednosti — torej same ključe. V različici 2.1.268 so vrednosti v izpisu zakrite.

</div>

Konfiguracije strežnikov MCP običajno hranijo ključe v spremenljivkah okolja in se nanje sklicujejo prek `${VAR}`, tako da je mogoče datoteko shraniti v repozitorij, ne da bi vsebovala skrivnosti. Težava je bila, da so ukazi za ogled (`/mcp`, `/plugin`, `claude mcp list`, `claude mcp get`) in sporočila o napakah pri prijavi v MCP prikazovali konfiguracijo z že zamenjanimi vrednostmi. Na zaslonu se je pojavil sam ključ.

Drug popravek zadeva napake vtičnikov in tržnice: prikazale so lahko token ali geslo iz izvornega URL-ja Git.

Če se je izpis ukaza `/mcp` ali `claude mcp list` v starejši različici pojavil v prenosu v živo, na posnetku zaslona, v sporočilu sodelavcu ali v dnevniku, ki je zapustil vaš računalnik, tudi samodejno, predpostavite, da so bili ključi iz konfiguracij MCP razkriti, in jih zamenjajte. Če izpis ni nikoli zapustil vašega računalnika, zadostuje posodobitev. Pripravili smo ločen vodnik o strežnikih MCP in že pripravljenih nastavitvah: [strežniki MCP za Claude Code](https://ailoot.ai/blog/sl/mcp-servers-claude-code/).

## Druge spremembe v teh različicah

**WebFetch in artefakti.** Prej je pravilo `WebFetch` brez podrobnosti na seznamu deny ali ask veljalo tudi za branje in spreminjanje objavljenih artefaktov. Od različice 2.1.268 zanje ne velja več. Za blokiranje artefaktov potrebujete ločeno pravilo `Artifact` ali pravilo za domeno, na primer `WebFetch(domain:claude.ai)`. Če ste se za zaščito pred branjem artefaktov zanašali na splošno prepoved WebFetch, znova preverite nastavitve: prejšnje pravilo teh dejanj ne blokira več.

**WebFetch ima zdaj časovno omejitev.** Zahteva strežniku, ki ohranja povezavo odprto in ne zaključi odgovora, zdaj po 300 sekundah spodleti. Prej je taka zahteva lahko čakala v nedogled. Delovanje je mogoče nastaviti s spremenljivko `CLAUDE_CODE_WEBFETCH_DEADLINE_MS`; če jo nastavite na 0, se časovna omejitev izklopi.

**Odpravljena je bila vztrajno visoka poraba procesorja v nedejavnih sejah.** Med dolgimi nedejavnimi sejami je lahko nedejavna zanka v Claude Code povzročila vztrajno visoko porabo procesorja. Ta napaka je bila odpravljena v različici 2.1.268. Vplivala je lahko tudi na ljudi, ki imajo seje odprte ves dan.

**Namestite najnovejšo različico.** V različici 2.1.269 se je pojavila nova napaka: po dolgotrajnem delovanju seje so ukazi Bash Git, ki samo berejo podatke, začeli zahtevati dovoljenje. Napaka je bila odpravljena v različici 2.1.270. Zato posodobite na najnovejšo različico (17. septembra 2026 je bila to 2.1.274); ne ustavite se pri različici 2.1.268 ali 2.1.269.

## Kako posodobiti in preveriti, ali prepovedi delujejo?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Glavno sporočilo razdelka">

Glavno sporočilo

Različico preverite z ukazom `claude --version`, posodobite na najnovejšo izdajo, nato pa jo preizkusite z varno datoteko brez skrivnosti: zanjo dodajte pravilo deny, prosite agenta, naj jo prebere, in preverite, ali sporočilo o zavrnitvi navaja vaše pravilo.

</div>

1.  **Ugotovite, katero različico uporabljate.** V terminalu zaženite `claude --version`. Popravki za zgoraj opisane težave so bili izdani v različicah 2.1.268 in 2.1.269. Če je številka vaše različice nižja od 2.1.268, ta različica še ne vključuje teh popravkov; ali posamezna težava vpliva na vas, pa je odvisno od poti, ukazov in pravil, ki jih uporabljate.
2.  **Posodobite.** Vodnik [kako posodobiti Claude Code na najnovejšo različico](https://ailoot.ai/blog/sl/update-claude-code/) vsebuje navodila po korakih in napotke za odpravljanje težav. Izberite najnovejšo različico; ne ustavite se pri različici 2.1.268.
3.  **Preizkusite prepoved.** Pravila ne preizkušajte na dejanski datoteki `.env`: če prepoved ne deluje, bo agent videl prave ključe. Ustvarite testno datoteko, na primer `secret-test.txt`, ki vsebuje poljubno besedilo, denimo »to je preizkus«; na seznam deny v projektni datoteki `.claude/settings.json` dodajte pravilo `"Read(./secret-test.txt)"`; znova zaženite sejo in vprašajte: »preberi datoteko secret-test.txt in mi povej, kaj je v njej.« Pričakovani rezultat je zavrnitev, ki navaja vaše pravilo. Če agent datoteko prebere, prepoved pri tem preizkusu ni delovala. Najprej preverite sintakso v zgornjem razdelku in odprite `/permissions`, da si ogledate aktivna pravila ter datoteke, iz katerih so bila naložena. Sam rezultat preizkusa ne razkrije vzroka. Ena preizkušena prepoved pokaže, da pravilo za to datoteko deluje; o drugih pravilih ne pove ničesar, zato jih preverite posamično na enak način.
4.  **Če uporabljate podobne poti, preverite še primer s simbolnimi povezavami.** Če imate pravila za `/tmp`, `/etc` ali `/var` v macOS oziroma za `/bin` v Linuxu, po posodobitvi ponovite preizkus za te poti.
5.  **Preglejte pravila z znakom »!«.** Če ste jih uporabljali, preverite, ali je vsako zapisano v datoteki, za katero naj bi veljalo.

Če prepoved deluje, Claude Code pa še vedno ne vidi datotek, ki jih potrebujete, preberite ločeno razlago: [zakaj Claude Code ne vidi projektnih datotek](https://ailoot.ai/blog/sl/claude-code-cant-see-project-files/).

## Če trenutno ne morete posodobiti

Včasih morate posodobitev odložiti: okolja ne morete spremeniti, računalnik je v lasti podjetja ali pa morate dokončati trenutno opravilo. Do posodobitve lahko tveganje zmanjšate tako:

- zapišite pravila deny za oba zapisa poti — simbolno povezavo in dejansko lokacijo (v macOS so dejanske poti pod `/private`);
- ne združujte več ukazov v eno vrstico in se izogibajte uporabi `env -C` in `eval` v ukazih, ki jih naročite agentu;
- nikomur ne pokažite izpisa ukazov `/mcp`, `/plugin`, `claude mcp list` ali `claude mcp get`, ključe iz konfiguracij MCP, ki so morda prišli v tuje roke, pa zamenjajte;
- ne pozabite, da `tee` zapisuje mimo deny za Edit — datotek ne obravnavajte kot zaščitenih, če je Bash dovoljen.

Ti ukrepi zmanjšujejo verjetnost določenih obvodov, vendar ne nadomeščajo popravka. Posodobite in čim prej izvedite preizkus iz prejšnjega razdelka.

## Kratek povzetek

Različici 2.1.268 in 2.1.269 sta odpravili štiri težave z dovoljenji v Claude Code: simbolne povezave, vrstice z `env -C` in `eval`, pravila z znakom »!«, ki so veljala zunaj svoje datoteke, ter zapisovanje prek `tee`. Ločeno sta odpravili razkritje skrivnosti v izpisu ukaza `/mcp` in tokenov v napakah vtičnikov. Preverite številko različice, posodobite na najnovejšo izdajo in izvedite preizkus s testno datoteko iz zgornjega razdelka. Če je v sporočilu o zavrnitvi navedeno vaše pravilo, to pokaže, da je prepoved pri tem preizkusu delovala. Sam obstoj pravila v nastavitvah še ne dokazuje, da deluje.

<div class="section" role="doc-bibliography" aria-label="Viri">

### Viri

- Claude Code, uradni dnevnik sprememb (vnosi za različice 2.1.268, 2.1.269 in 2.1.270): <https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md>
- Claude Code, datumi izdaj različic na npm: <https://www.npmjs.com/package/@anthropic-ai/claude-code>
- Claude Code, dokumentacija o dovoljenjih (sintaksa deny/ask/allow): <https://code.claude.com/docs/en/permissions>
- Claude Code, izdaje na GitHubu: <https://github.com/anthropics/claude-code/releases>

</div>





Če želite nadaljevati delo z modeli, obiščite [Ailoot](https://ailoot.ai/).

## Vprašanja in odgovori: Claude Code 2.1.268: Kaj je bilo popravljeno pri pravilih deny in MCP

### Kako preizkusim pravilo deny, ne da bi razkril pravo skrivnost?

Ustvarite datoteko z neškodljivim besedilom, zanjo prepovejte dostop Read, znova zaženite sejo in agentu naročite, naj jo prebere. Pričakujte zavrnitev, ki navede vaše pravilo. Za preizkus, ki lahko spodleti, nikoli ne uporabljajte prave datoteke .env.

### Ali ena uspešna zavrnitev dokazuje, da so vsa dovoljenja varna?

Ne. Potrdi samo preizkušeno datoteko in način dostopa. V /permissions preglejte aktivna pravila, nato preizkusite še druge poti in primere, na katere se zanašate, po potrebi tudi zapise poti prek simbolnih povezav.


## Ailoot · Podjetje in njegov portfelj projektov

Ailoot temelji na pridobljenih operativnih izkušnjah, široki bazi strank, stabilni storitvi in stalnem spremljanju KPI.

Podjetje in njegov portfelj projektov: milijoni strank; mesečna prodaja v milijardah.

Ailoot te operativne izkušnje uporablja za dostop prek API do funkcij umetne inteligence v izdelkih strank, agentih, aplikacijah in avtomatizacijah.
