# Claude Code 2.1.268: deny ережелері мен MCP-де не түзетілді

> Claude Code 2.1.268–2.1.269 төрт рұқсат мәселесін және /mcp ішіндегі құпиясөздің жария болуын түзетті. Бұл кімге әсер етеді, қалай жаңарту керек және ережелерді қалай тексеруге болады.

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


Claude Code бағдарламасының 2.1.268 нұсқасы 2026 жылғы 10 қыркүйекте шықты, ал келесі күні 2.1.269 нұсқасы жарық көрді. Бірден жаңартуыңыз керек: екі жағдайда агенттің `.env` файлдары мен қызмет қалталарына кіруін бұғаттау үшін қолданған deny ережелері үнсіз жұмыс істемеді. Бұған қоса, `/mcp` пәрмені конфигурацияларыңыздағы құпияларды терминалда көрсете алатын.

Төмендегі ақпараттың бәрі Anthropic-тің 2026 жылғы 17 қыркүйектегі дереккөз материалының күніне сай ресми өзгерістер журналдары мен құжаттамасына негізделген. Сол күнгі ең соңғы нұсқа — 2.1.274. Қателердің қалай жұмыс істегенін журналдағы жазбаларға сүйеніп сипаттаймыз; осал нұсқада айналып өту жолдары қайта тексерілген жоқ.

Ailoot-пен жұмыс істеу жөніндегі қосымша нұсқауларды [құжаттамадан](https://ailoot.ai/docs/) қараңыз.



## Claude Code 2.1.268 және 2.1.269 нұсқаларында не түзетілді?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Негізгі түйін

Төрт рұқсат мәселесі түзетілді. deny және ask ережелері символдық сілтемелер арқылы өтетін жолдарда жұмыс істемеді, ал Read немесе Edit үшін қойылған deny ережесі `env -C` не `eval` бар жолдарда істемей қалуы мүмкін еді. «!» таңбасы бар ереже өз баптаулар файлының шегінен тыс қолданылды. `tee` пәрмені Edit үшін қойылған deny ережесі оны бұғаттамай-ақ файл жазатын. Бұған қоса, `/mcp` және `claude mcp list` конфигурациялардағы құпияларды, ал плагин қателері Git URL мекенжайларындағы токендерді көрсетті.

</div>

Рұқсат ережелеріне қатысты төрт түзету бар:

1.  **Символдық сілтемелер үшін тыйымдар жұмыс істемеді.** Символдық сілтемелері бар каталогтарға (`/etc`, `/tmp`, macOS жүйесіндегі `/var`, Linux жүйесіндегі `/bin`) жазылған deny және ask ережелері жолдың нақты орналасуы көрсетілгенде іске қосылмады. Bash пәрмендері де символдық сілтеме арқылы көрсетілген жолға жазылған deny ережелерін елемеді.
2.  **`env -C` немесе `eval` қатар кездескенде оқу мен өңдеуге қойылған тыйым істемей қалды.** Пәрмен жолында рұқсат тексергіші талдай алмайтын құрылым болса, Read немесе Edit үшін қойылған deny ережесі іске қосылмай қалуы мүмкін еді.
3.  **«!» таңбасы бар ереже ойдағыдан кеңірек қолданылды.** `!` таңбасынан басталған deny немесе ask ережесі өзі жазылған баптаулар файлының шегінен тыс қолданылды. Енді ол тек өз дереккөзінің шегінде қолданылады, ал жеке тұрған терістеу `!` еленбейді.
4.  **`tee` пәрмені тыйымдарды айналып өтіп файл жазды.** `Edit()` үшін deny ережелері мен жазу жолын тексеру Bash-тың `tee` пәрмені жасаған файлға қолданылмады. `Bash(tee:*)` рұқсаты енді жұмыс каталогтарынан тыс жерге жазуға мүмкіндік бермейді.

Бұл нұсқалар құпия ақпараттың ашылып кетуіне қатысты тағы екі мәселені түзетті. WebFetch енді қосылымды ашық қалдыратын серверден жауапты шексіз күтпейді: сұрау 300 секундтан кейін сәтсіз аяқталады, ал күту уақытын `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` айнымалысы арқылы баптауға болады. Сондай-ақ ұзақ уақыт белсенді емес сеанстардағы процессорды тұрақты түрде көп пайдаланатын мәселе жойылды.

## Claude Code-та тыйымдар қалай жұмыс істейді?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Негізгі түйін

Ережелер `settings.json` файлының `permissions` блогында жазылады: deny тыйым салады, ask растауды сұрайды, ал allow әрекетке растаусыз рұқсат береді. Тексеру реті мынадай: алдымен deny, содан кейін ask, соңында allow. Ереже пішімі — `Tool` немесе `Tool(detail)`, мысалы, `Read(./.env)`.

</div>

Claude Code-та ережелердің үш тізімі бар: **deny** (әрдайым тыйым салынады), **ask** (әрекет орындалмас бұрын сұралады) және **allow** (растаусыз рұқсат етіледі). Агент бір әрекетті орындағалы жатқанда, ережелер дәл осы ретпен тексеріледі. Сәйкес келген deny ережесі сол әрекетке арналған кез келген allow ережесінің күшін жояды: рұқсат беретін ереже тыйымнан ерекшелік жасай алмайды.

Ережелер үш жерде сақталады: пайдаланушы ережелері — `~/.claude/settings.json` ішінде, жоба ережелері — репозиторий ішіндегі `.claude/settings.json` ішінде, ал жергілікті ережелер — `.claude/settings.local.json` ішінде. Кілттері бар файлды оқуға тыйым салатын баптаулар мысалы:

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

Белсенді ережелердің барлығын және олардың әрқайсысы қай файлдан келгенін көру үшін сеанста `/permissions` пәрменін орындаңыз. Егер ереже оқуға тыйым салса, хабарламада сол ереженің атауы көрсетіледі; бұл төмендегі тексеруге көмектеседі.



## Қандай қателер тыйымдарға және ережелер ауқымына әсер етті?

Қателер жолдар мен пәрмендерді тексеруге, сондай-ақ әртүрлі баптаулар файлдарынан келген ережелердің ауқымына әсер етті.

**Бірінші жағдай: символдық сілтемелер.** macOS жүйесінде `/etc`, `/tmp` және `/var` нақты қалталарға, яғни `/private` ішіндегі қалталарға апаратын символдық сілтемелер; Linux жүйесінде `/bin` де жиі осыған ұқсас символдық сілтеме болады. Жолдың бір жазылуына арналған deny ережесін орнатып, агент оған басқа жазылуын пайдаланып кірсе (мысалы, символдық сілтеменің орнына нақты орналасуын қолданса), ереже іске қосылмады. Bash пәрмендері де символдық сілтеме арқылы көрсетілген жолға арналған тыйымды елемеді. 2.1.268 нұсқасында екі жағдай да түзетілді: енді жолдың қай жазылуы қолданылса да ереже іске қосылады.

**Екінші жағдай: бір жолдағы `env -C` және `eval`.** Рұқсат тексергіші пәрменнің қай файлдарға кіретінін анықтау үшін оны талдайды. Ол `env -C` немесе `eval` сияқты құрылымдарды талдай алмайды. Қате мынада болды: жолда сондай құрылым кездескенде, Read немесе Edit үшін қойылған deny ережесі қолданылмай қалуы мүмкін еді. Соның салдарынан пәрмен қорғалған файлды оқу не өңдеуге қойылған тыйымды айналып өте алатын.

**Үшінші жағдай: «!» таңбасы бар ереже өз шегінен тыс қолданылды.** `!` таңбасынан басталатын ереже тек өзі жазылған баптаулар файлының ішінде қолданылуы керек. 2.1.269 нұсқасына дейін ол басқа баптаулар көздеріне де қолданылды. Енді ереже тек өз файлының аясында қолданылады, ал жеке тұрған `!` еленбейді.

**Төртінші жағдай: `tee` арқылы жазу.** Bash-тың `tee` пәрмені файлға жаза алады. Жазу жолын тексеру және `Edit()` үшін қойылған deny ережелері ол файлға қолданылмады. Сонымен қатар `Bash(tee:*)` рұқсаты жұмыс каталогтарынан тыс жерге жазуға мүмкіндік берді. 2.1.269 нұсқасында бұл тексерулер `tee` арқылы жазылған файлдарға да қолданыла бастады: файлға қойылған тыйым күшіне енеді, ал `Bash(tee:*)` тек жұмыс каталогтарындағы әрекеттерді қамтиды.

Егер белгілі бір нысандарға арналған тыйымдарды — `.env` файлын, бірнеше қызмет қалтасын немесе қауіпті пәрмендерді бұғаттау үшін — қолдансаңыз, оларды да тексеріңіз. Нұсқаулар төменде.

## /mcp пәрмені кілттеріңізді қалай көрсетуі мүмкін еді?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Негізгі түйін

MCP конфигурацияларындағы кілттер көбіне `${VAR}` айнымалылары арқылы беріледі. `/mcp`, `/plugin`, `claude mcp list` және `claude mcp get` пәрмендері, сондай-ақ MCP жүйесіне кіру қателері алмастырылған мәндерді, яғни кілттердің өзін көрсетті. 2.1.268 нұсқасында шығыс құпия деректерден тазартылған.

</div>

MCP серверлерінің конфигурацияларында кілттер әдетте орта айнымалыларында сақталып, `${VAR}` арқылы көрсетіледі; осылайша файлдың өзін репозиторийде құпиялардың өздерінсіз сақтауға болады. Мәселе мәндері алдын ала алмастырылған конфигурацияны көрсететін пәрмендерде (`/mcp`, `/plugin`, `claude mcp list`, `claude mcp get`), сондай-ақ MCP жүйесіне кіру қате хабарларында болды. Экранда кілттің өзі көрінетін.

Тағы бір түзету плагиндер мен маркетплейс қателеріне қатысты: олар бастапқы Git URL мекенжайындағы токенді немесе құпиясөзді көрсете алатын.

Егер ескі нұсқадағы `/mcp` немесе `claude mcp list` шығысы ағынға, скриншотқа, әріптесіңізге жіберілген хабарға немесе құрылғыңыздан тыс кеткен журналға, соның ішінде автоматты түрде, жазылса, MCP конфигурацияларындағы кілттер ашылды деп есептеп, оларды ауыстырыңыз. Егер шығыс құрылғыңыздан ешқашан шықпаса, жаңарту жеткілікті. MCP серверлері мен дайын баптаулар туралы бөлек нұсқаулығымыз бар: [Claude Code MCP серверлері](https://ailoot.ai/blog/kk/mcp-servers-claude-code/).

## Осы нұсқалардағы басқа өзгерістер

**WebFetch және артефактілер.** Бұрын deny немесе ask ішінде егжей-тегжейі көрсетілмеген `WebFetch` ережесі жарияланған артефактілерді оқуға және өзгертуге де қолданылатын. 2.1.268 нұсқасынан бастап ол артефактілерге қолданылмайды. Оларды бұғаттау үшін бөлек `Artifact` ережесі немесе доменге арналған, мысалы `WebFetch(domain:claude.ai)`, ереже қажет. Егер артефактілерді оқудан қорғау үшін жалпы WebFetch тыйымына сүйенген болсаңыз, баптауларыңызды қайта тексеріңіз: бұрынғы ереже енді бұл әрекеттерді бұғаттамайды.

**WebFetch енді уақыт шектеуімен жұмыс істейді.** Қосылымды ашық қалдырып, жауабын аяқтамайтын серверге жіберілген сұрау енді 300 секундтан кейін сәтсіз аяқталады. Бұрын мұндай сұрау шексіз тұрып қалуы мүмкін еді. Бұл әрекетті `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` айнымалысы арқылы баптауға болады; оны 0 мәніне орнату уақыт шектеуін өшіреді.

**Белсенді емес сеанстарда процессорды тұрақты жоғары пайдалану жойылды.** Claude Code-тағы белсенді емес цикл ұзақ уақытқа созылған белсенді емес сеанстарда процессорды тұрақты жоғары пайдалануға әкелуі мүмкін еді. Бұл қате 2.1.268 нұсқасында түзетілді. Ол сеанстарын күні бойы ашық ұстайтын адамдарға да әсер етуі мүмкін еді.

**Ең соңғы нұсқаны орнатыңыз.** 2.1.269 нұсқасында жаңа қате пайда болды: сеанс ұзақ уақыт жұмыс істегеннен кейін, деректерді тек оқитын Bash Git пәрмендері рұқсат сұрай бастады. Бұл қате 2.1.270 нұсқасында түзетілді. Сондықтан ең соңғы нұсқаға жаңартыңыз (2026 жылғы 17 қыркүйектегі ең соңғы нұсқа — 2.1.274); 2.1.268 немесе 2.1.269 нұсқаларында тоқтап қалмаңыз.

## Қалай жаңартып, тыйымдардың жұмыс істейтінін тексеруге болады?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Негізгі түйін

Нұсқаны `claude --version` пәрменімен тексеріңіз, ең соңғы шығарылымға жаңартыңыз, содан кейін құпиялары жоқ қауіпсіз файлмен тексеріңіз: оған deny ережесін қосып, агенттен файлды оқуын сұраңыз және тыйым хабарламасында өз ережеңіз көрсетілгеніне көз жеткізіңіз.

</div>

1.  **Қазіргі нұсқаңызды анықтаңыз.** Терминалда `claude --version` пәрменін орындаңыз. Жоғарыда сипатталған мәселелерге арналған түзетулер 2.1.268 және 2.1.269 нұсқаларында шықты. Нұсқа нөмірі 2.1.268-ден төмен болса, нұсқаңызда бұл түзетулер әлі жоқ. Дегенмен әр мәселенің сізге қатысы бар-жоғы қолданатын жолдарға, пәрмендерге және ережелерге байланысты.
2.  **Жаңартыңыз.** [Claude Code бағдарламасын ең соңғы нұсқаға қалай жаңарту керек](https://ailoot.ai/blog/kk/update-claude-code/) нұсқаулығында қадамдық нұсқаулар мен ақауларды жою жолдары берілген. Ең соңғы нұсқаны таңдаңыз; 2.1.268 нұсқасында тоқтамаңыз.
3.  **Тыйымды тексеріңіз.** Ережені нақты `.env` файлында тексермеңіз: тыйым жұмыс істемесе, агент нақты кілттерді көреді. Кез келген мәтін, мысалы, “this is a test” деген мәтін жазылған `secret-test.txt` сынақ файлын жасаңыз; жобаның `.claude/settings.json` файлындағы deny тізіміне `"Read(./secret-test.txt)"` ережесін қосыңыз; сеансты қайта іске қосыңыз; содан кейін: «secret-test.txt файлын оқып, ішінде не бар екенін айт» деп сұраңыз. Күтілетін нәтиже — өз ережеңіздің атауы көрсетілген тыйым хабарламасы. Агент файлды оқыса, бұл сынақта тыйым жұмыс істемеді. Алдымен жоғарыдағы бөлімнен синтаксисті тексеріп, белсенді ережелер мен олардың қай файлдан жүктелгенін көру үшін `/permissions` пәрменін ашыңыз. Сынақ нәтижесінің өзі себебін анықтамайды. Бір тыйым осы файлға арналған ереженің жұмыс істейтінін көрсетеді; басқа ережелеріңіз туралы ештеңе айтпайды, сондықтан оларды да дәл осылай бір-бірден тексеріңіз.
4.  **Осындай жолдарды қолдансаңыз, символдық сілтеме жағдайын тексеріңіз.** macOS жүйесінде `/tmp`, `/etc` немесе `/var` жолдарына, не Linux жүйесінде `/bin` жолына қойылған тыйымдарыңыз болса, жаңартқаннан кейін осы жолдар үшін де сынақты қайталаңыз.
5.  **«!» таңбасы бар ережелерді қарап шығыңыз.** Ондай ережелерді қолданған болсаңыз, әрқайсысы қолданылуы тиіс файлда жазылғанын тексеріңіз.

Тыйым жұмыс істесе де, Claude Code қажетті файлдарды көре алмаса, мына бөлек түсіндірмені қараңыз: [Claude Code жобаның файлдарын неге көре алмайды](https://ailoot.ai/blog/kk/claude-code-cant-see-project-files/).

## Дәл қазір жаңарта алмасаңыз

Кейде жаңартуды кейінге қалдыруға тура келеді: ортаны өзгерте алмайсыз, компьютер корпоративтік меншікте немесе ағымдағы тапсырманы аяқтауыңыз керек. Жаңартқанға дейін тәуекелді мына жолдармен азайтуға болады:

- жолдың екі жазылуына да — символдық сілтемесіне де, нақты орналасуына да — deny ережелерін жазыңыз (macOS жүйесінде нақты жолдар `/private` ішінде болады);
- бір жолда бірнеше пәрменді біріктірмеңіз, агенттен орындауды сұрайтын пәрмендерде `env -C` пен `eval` қолданбаңыз;
- `/mcp`, `/plugin`, `claude mcp list` немесе `claude mcp get` шығысын ешкімге көрсетпеңіз және бөтен адамның қолына өтіп кетуі мүмкін MCP конфигурацияларындағы кілттерді ауыстырыңыз;
- `tee` пәрмені Edit үшін қойылған deny ережесін айналып өтіп файл жазатынын есте сақтаңыз — Bash рұқсат етілген болса, файлдар қорғалған деп санамаңыз.

Бұл шаралар нақты айналып өту жолдарының ықтималдығын азайтады, бірақ түзетудің орнын баспайды. Мүмкіндік туған бойда жаңартып, алдыңғы бөлімдегі сынақты орындаңыз.

## Қысқаша қорытынды

2.1.268 және 2.1.269 нұсқаларында Claude Code-тағы рұқсатқа қатысты төрт мәселе түзетілді: символдық сілтемелер, `env -C` және `eval` бар жолдар, өз файлынан тыс қолданылған «!» таңбасы бар ережелер және `tee` арқылы жазу. Бұған қоса, `/mcp` шығысында құпиялардың, ал плагин қателерінде токендердің ашылып кетуі түзетілді. Нұсқа нөмірін тексеріп, ең соңғы шығарылымға жаңартыңыз да, жоғарыдағы бөлімдегі сынақ файлын пайдаланып тексеріңіз. Өз ережеңіздің атауы көрсетілген тыйым хабарламасы осы сынақта тыйымның жұмыс істегенін білдіреді. Ереженің баптаулар файлында болуының өзі оның жұмыс істейтінін растауға жеткіліксіз.

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

### Дереккөздер

- Claude Code, ресми өзгерістер журналы (2.1.268, 2.1.269, 2.1.270 нұсқаларының жазбалары): <https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md>
- Claude Code, npm сайтындағы нұсқалардың шығу күндері: <https://www.npmjs.com/package/@anthropic-ai/claude-code>
- Claude Code, рұқсаттар жөніндегі құжаттама (deny/ask/allow синтаксисі): <https://code.claude.com/docs/en/permissions>
- Claude Code, GitHub сайтындағы шығарылымдар: <https://github.com/anthropics/claude-code/releases>

</div>





Модельдермен жұмысты жалғастыру үшін [Ailoot](https://ailoot.ai/) сайтына өтіңіз.

## Жиі қойылатын сұрақтар

### Нақты құпияны ашпай deny ережесін қалай сынауға болады?

Зиянсыз мәтіні бар файл жасап, сол файлға Read арқылы қол жеткізуге тыйым салыңыз. Сеансты қайта бастап, агенттен оны оқуды сұраңыз. Жауапта сіздің ережеңізге байланысты бас тарту болуы керек. Сәтсіз өтуі мүмкін сынақта нақты .env файлын қолданбаңыз.

### Бір рет оқуға тыйым салынуы барлық рұқсаттың қауіпсіздігін дәлелдей ме?

Жоқ. Ол тек сыналған файл мен оған қол жеткізу жолын тексереді. /permissions ішіндегі белсенді ережелерді қарап, сеніп отырған басқа жолдар мен жағдайларды, қажет болса символдық сілтемелер арқылы жазылған жолдарды да сынаңыз.


## Ailoot · Компания және оның жобалар портфелі

Ailoot жинақталған жұмыс тәжірибесіне, кең клиенттік базаға, тұрақты қызметке және KPI көрсеткіштерін үздіксіз бақылауға сүйенеді.

Компания және оның жобалар портфелі: миллиондаған клиент; ай сайынғы сату көлемі миллиардтармен есептеледі.

Ailoot осы тәжірибені клиенттердің өнімдерінде, агенттерінде, қолданбаларында және автоматтандыруларында жасанды интеллект мүмкіндіктеріне API арқылы қол жеткізуді қамтамасыз етуге пайдаланады.
