# Разрешения (/ru/docs/wa/permissions)

Используйте эту страницу, прежде чем позволить ИИ-агенту, скрипту или другому человеку работать с вашей учетной записью WhatsApp через `wa`. Он показывает, как для каждого профиля решить, что можно только читать, что вас спрашивают в первую очередь, а что можно продолжать без вопросов. В конце вы можете сделать профиль доступным только для чтения, разрешить одно действие, например отправку, и узнать, какие другие проверки все еще применяются.

Слова, которые используются на этой странице:

* **Профиль**: именованный набор настроек для одной связанной аккаунта, например `work` ([profiles](/llms.mdx/docs/ru/wa/profiles/content.md)).
* **Ключ разрешения**: имя команды или группы команд, например `messages`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-messages "Справочник команды: wa messages") или `messages.send`. Более длинный ключ более конкретен.
* **Уровень доступа**: что происходит при выполнении этой команды: `deny`, `readonly`, `ask` или `allow`.

Начните с чтения и разрешайте изменения только тогда, когда они вам нужны.

## Выберите уровень доступа [#выберите-уровень-доступа]

| Уровень | Что происходит |
| --- | --- |
| `deny` | Действие запрещено, включая чтение. |
| `readonly` | Чтение разрешено, изменения запрещены. |
| `ask` | Перед изменением в терминале запрашивается подтверждение. |
| `allow` | Действие может быть выполнено без дополнительных вопросов. |

Без установленного `permissions` разрешено все, кроме удаления и некоторых других изменений, которые требуют подтверждения. Отказ завершается с кодом `5` и называет ключ разрешения. Это не означает, что ссылка на WhatsApp не работает. Не просите агента снять ограничение только для того, чтобы завершить задачу.

## Разрешить одно действие [#разрешить-одно-действие]

```sh
wa work config set permissions.messages.send ask
```

Замените `work` на свой профиль. Для значения по умолчанию, которое позволяет читать сообщения и отказывается от изменений:

```sh
wa work config set permissions.messages readonly
```

Более конкретные ключи имеют приоритет: `permissions.messages.send ask` по-прежнему разрешает отправку с вопросом в терминале и без формы сервера через MCP. Установите этот ключ на `readonly`, чтобы отказаться от отправки. Проверьте другие исключения с помощью `wa work config show`.

Это контролирует сообщения. Остальные действия имеют свои ключи: `reactions`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-reactions "Справочник команды: wa reactions") для реакций, `polls`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-polls "Справочник команды: wa polls") для опросов и голосов, `chats.mark-read` для уведомлений о прочтении. Другая сторона видит все три, поэтому будьте с ними так же осторожны, как и с отправкой. `chats.mute` и `chats.unmute` покрывают `chats mute`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-mute "Справочник команды: wa chats mute") и `chats unmute`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-unmute "Справочник команды: wa chats unmute"), которые никто больше не видит; настройка только для `chats.mute` по-прежнему охватывает оба. `messages.star` и `messages.unstar` управляют отметкой сообщения звёздочкой; другие участники её тоже не видят. `chats.archive`, `chats.unarchive`, `chats.pin`, `chats.unpin` и `chats.mark-unread` охватывают команды с этими именами, которые никто больше не видит; каждый ключ действует отдельно, поэтому `chats.archive readonly` по-прежнему пропускает `chats unarchive`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-unarchive "Справочник команды: wa chats unarchive"). `account.update` управляет командой `account update`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-account-update "Справочник команды: wa account update"): другие люди могут видеть новое имя, информацию и фотографию. `chats.delete` и `chats.clear` охватывают удаление чата или его сообщений с ваших собственных устройств; они спрашивают по умолчанию, так как ничто не возвращает сообщения.

## Вопросы в скриптах [#вопросы-в-скриптах]

В терминале запрашивается запись на уровне `ask`. При наличии `--json`, `--no-input` или отсутствия терминала никто не может ответить, поэтому запись отклоняется с кодом выхода `7`, если вы не добавите `--yes`; для удаления требуется `--allow-dangerous`. Эти флаги только отвечают на вопрос. Они не отменяют запреты `deny` и `readonly`.

## Ограничить получателей и повторные отправки [#ограничить-получателей-и-повторные-отправки]

Список получателей ограничивает чаты, в которые профиль может отправлять сообщения. Первый `recipients add`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-recipients-add "Справочник команды: wa recipients add") включает список; отправка в любой другой чат отклоняется с кодом выхода `7`:

```sh
wa work recipients add 100000000000001@lid
wa work recipients list
wa work recipients remove 100000000000001@lid
```

Чат, добавленный по номеру телефона (`…@s.whatsapp.net`), сохраняется под его LID, если WhatsApp уже предоставил его, поскольку отправка на этот номер поступает на LID. Запись, сохраненная ранее под номером телефона, автоматически перемещается в LID, как только это устройство узнает LID номера: когда локальное хранилище хранит чат под этим номером, первая команда, которая называет его по номеру, перемещает чат и запись, прежде чем она начнет действовать; в противном случае следующий запуск `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") или `watch`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-watch "Справочник команды: wa watch") перемещает запись. Для этого номер никогда не запрашивается в WhatsApp. Пока запись не будет перемещена, отправка в LID отклоняется с кодом выхода `7`, и в сообщении указывается идентификатор, который нужно добавить. `recipients remove`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-recipients-remove "Справочник команды: wa recipients remove") с номером удаляет старую запись.

Два изменения в списке одновременно не могут отменить друг друга. Когда другой процесс удерживает список в течение 5 с, изменение отклоняется с кодом завершения `9`, и список остаётся прежним.

Почасовой лимит отправки `sends_per_hour` (30 по умолчанию) помогает остановить цикл. `wa work sends list` показывает каждую попытку отправки — отправленную, отклоненную, неудачную или неизвестную — без текста. Эти проверки остаются активными, когда команда разрешена ([limits](/llms.mdx/docs/ru/wa/limits/content.md)).

## Временное изменение для сервера MCP [#временное-изменение-для-сервера-mcp]

Добавьте `--permission messages.send=readonly` в команду запуска сервера, чтобы прекратить отправку данных для этого процесса. Сохраненные настройки остаются прежними. `--permission` только сужает: тот, который ослабляет профиль — `readonly` на `allow`, `deny` на что угодно — останавливает сервер при запуске с `validation_error`, называющим ключ. Чтобы позволить агенту делать больше, установите уровень в самом профиле. Через MCP `ask` не требует формы сервера: приложение контролирует подтверждения пользователя и может разрешить вызов без повторного запроса. Используйте `deny` или `readonly`, чтобы отказаться от изменений. [Сервер MCP](/llms.mdx/docs/ru/wa/mcp/content.md) и [настройка браузера](/llms.mdx/docs/ru/wa/remote/content.md) объясняют полное соединение.

## Ограничения и подробные правила [#ограничения-и-подробные-правила]

Агент, который может редактировать файлы конфигурации или выполнять неограниченные команды терминала, может изменить эти настройки. Прикрепите его к одному профилю с помощью `WA_PROFILE_LOCK` ([профили при подключении](/llms.mdx/docs/ru/wa/sessions/content.md#profiles)) и прочитайте [безопасность](/llms.mdx/docs/ru/wa/security/content.md), прежде чем предоставлять этот доступ. Все настройки находятся в [справке по конфигурации](/llms.mdx/docs/ru/wa/configuration-reference/content.md).
