Thực hành
Toàn quyền mà không phá hỏng máy của bạn
Yêu cầu phê duyệt là thứ khiến agent trở nên vô dụng khi bạn vắng mặt, còn tắt chúng trên laptop là cách nhiều người mất trắng một buổi chiều. Giải pháp không nằm ở sự liều lĩnh. Mà là đặt agent ở một nơi mà bạn không ngại dựng lại.
Trả lời nhanh
--dangerously-skip-permissions chạy mọi lệnh gọi công cụ mà không hỏi. Anthropic khuyên chỉ dùng nó trong container hoặc VM cô lập, và Claude Code từ chối flag này khi chạy bằng root. Hãy chạy nó bằng user không phải root trên một máy chủ hoặc container dùng xong là bỏ, không chứa secret của môi trường production. Hoặc dùng chế độ auto, trong đó một bộ phân loại tự phê duyệt các thao tác an toàn. Ứng dụng di động của Anthropic không thể chuyển một phiên sang chế độ bypass.
Claude Code hỏi trước khi làm bất cứ việc gì có hệ quả. Khi ngồi ở bàn thì không sao: bạn liếc qua, phê duyệt rồi làm tiếp. Khi rời bàn, nó làm công việc đình trệ. Agent dừng ở bước thứ ba của một tác vụ hai mươi phút và chờ một cú chạm bốn mươi phút sau mới tới, trong khi lý do giao việc cho nó chính là để bạn không phải theo dõi.
Vì vậy nhiều người tìm đến --dangerously-skip-permissions. Flag này nguy hiểm trên máy không phù hợp và hợp lý trên máy phù hợp, và sự khác biệt không nằm ở việc bạn cẩn thận đến đâu. Nó nằm ở những gì agent có thể chạm tới khi làm điều bạn không định. Trang này giải thích flag đó thực sự làm gì, vì sao nó không chạy bằng root, cách thiết lập để việc dùng nó có cơ sở, và các lựa chọn tương đương trong Codex, OpenCode, Grok Build và Antigravity.
Chế độ bypass thực sự cho phép gì
Claude Code có sáu chế độ quyền. Trang về chế độ quyền của Anthropic mô tả chúng như sau. Bảng giữ nguyên thứ tự của tài liệu: default là tên cấu hình của chế độ Manual, không phải chế độ mà một phiên khởi đầu.
| Chế độ | Chạy mà không hỏi | Anthropic cho là "phù hợp nhất cho" |
|---|---|---|
default (Manual) | Chỉ thao tác đọc | Công việc nhạy cảm |
acceptEdits | Đọc, sửa file, các lệnh filesystem thông dụng | Lặp đi lặp lại trên code bạn đang review |
plan | Đọc, cộng với các lệnh được bộ phân loại phê duyệt khi có chế độ auto | Khám phá trước khi thay đổi |
auto | Mọi thứ, kèm kiểm tra an toàn chạy nền | Tác vụ dài, ít bị hỏi hơn |
dontAsk | Đọc và các công cụ đã được cho phép trước; mọi thứ khác bị từ chối | CI bị khóa chặt |
bypassPermissions | Mọi thứ | Chỉ container và VM cô lập |
Chế độ bypass chạy ngay mọi lệnh gọi công cụ, kể cả việc ghi vào các đường dẫn được bảo vệ như .git và cấu hình riêng của Claude. Vẫn còn vài thứ được giữ lại:
- Quy tắc deny trong cài đặt của bạn có hiệu lực chặn ở mọi chế độ, kể cả bypass. Quy tắc allow thì không có tác dụng gì trong chế độ này.
- Quy tắc ask khai báo rõ ràng vẫn hỏi.
rmvàrmdirnhắm vào các đường dẫn quan trọng vẫn hỏi: thư mục gốc của filesystem, các thư mục cấp cao nhất, thư mục home của bạn, và thư mục làm việc cùng các thư mục cha của nó.
Thứ chế độ bypass không cho bạn là bất kỳ sự bảo vệ nào trước prompt injection hay một lệnh sai mà agent vẫn tự tin chạy. Tài liệu của Anthropic nói thẳng: chỉ dùng nó trong môi trường cô lập, nơi Claude Code không thể gây hại cho máy chủ của bạn.
Từ Claude Code v2.1.283, chế độ auto là chế độ khởi đầu mặc định của các phiên tương tác trong terminal và VS Code. Một model thứ hai xem xét từng thao tác và chặn những thao tác rủi ro, như xóa hàng loạt trên cloud storage, force push, hoặc khởi chạy một vòng lặp agent khác với phê duyệt và sandbox bị tắt. Nó loại bỏ phần lớn các lần hỏi mà không bỏ hết mọi bước kiểm tra. Chế độ này cần một model được hỗ trợ, và tổ chức có thể tắt nó. Nếu chế độ auto là đủ cho tác vụ của bạn, có thể bạn không cần đến bypass.
Hai flag trông giống nhau
--dangerously-skip-permissionskhởi động phiên trong chế độ bypass. Nó tương đương với--permission-mode bypassPermissions.--allow-dangerously-skip-permissionschỉ thêm bypass vào vòng chuyển chế độ bằng Shift+Tab. Phiên khởi động ở một chế độ bình thường, và bạn chuyển sang bypass khi muốn.
Flag thứ hai quan trọng vì bạn không thể vào chế độ bypass từ một phiên không được khởi động với tùy chọn đó. Nếu sau này có thể cần đến, bạn phải quyết định ngay khi khởi chạy. Dạng --allow- là cách thận trọng để làm điều đó: phiên hoạt động bình thường cho đến khi bạn chủ động chuyển.
Lần khởi chạy tương tác đầu tiên có bật bypass sẽ hiện một hộp thoại cảnh báo. Chấp nhận sẽ ghi skipDangerousModePermissionPrompt: true vào ~/.claude/settings.json; từ chối sẽ khiến Claude Code thoát. Các lần chạy không tương tác với -p bỏ qua hộp thoại này. Quản trị viên có thể chặn chế độ này cho tất cả mọi người bằng permissions.disableBypassPermissionsMode: "disable" trong managed settings.
Vì sao nó lỗi khi chạy bằng root
Trên Linux và macOS, Claude Code từ chối khởi động ở chế độ bypass khi chạy bằng root hoặc qua sudo:
--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons
Bước kiểm tra này được bỏ qua bên trong một sandbox mà Claude Code nhận diện được, và vì lý do đó dev container của Anthropic chạy nó bằng user không phải root. Trên một VPS thông thường mà bạn đăng nhập bằng root, hãy tạo một user thường trước. Hướng dẫn cài đặt VPS của chúng tôi có sẵn ba lệnh cần chạy.
Chúng tôi rút ra ba điều thực tế khi chạy Claude Code dưới daemon của Maude trên rất nhiều máy chủ khác nhau:
- Khi chạy bằng root, dạng
--allow-cũng lỗi. Trong thử nghiệm của chúng tôi với Claude Code 2.1.x, tiến trình thoát ngay khi khởi tạo thay vì chỉ đơn giản là không đưa bypass vào vòng chuyển chế độ. Bất kỳ wrapper nào thêm flag này đều cần kiểm tra user ID trước, nếu không mọi phiên trên máy chủ chạy root đều chết. - Phiên bản cũ từ chối flag ngay lập tức. Một CLI không biết flag này cũng thoát theo cách tương tự. Hãy kiểm tra xem nó có xuất hiện trong
claude --helpkhông trước khi truyền vào. - Thử nghiệm trên máy mới. File
~/.claude/settings.jsoncủa bạn nhiều khả năng đã cóskipDangerousModePermissionPrompttừ hôm bạn bấm qua hộp thoại cảnh báo. Trên một máy chủ mới, hộp thoại đó xuất hiện trước cả lời nhắc nhập, và một phiên không người trông sẽ đứng chờ ở đó. Hãy thử trong một container sạch, đừng thử trên laptop.
Mô hình máy chủ dùng xong là bỏ
Trước khi nới lỏng quyền ở bất kỳ đâu, hãy tự hỏi một câu: nếu tiến trình này chạy một lệnh phá hoại bất kỳ ngay lúc này, tôi sẽ mất gì?
Trên một chiếc laptop thông thường, câu trả lời thật lòng chẳng dễ chịu chút nào: SSH key, thông tin xác thực cloud trong ~/.aws và ~/.config, hồ sơ trình duyệt với các phiên đăng nhập còn hiệu lực, một file .env chứa URL production, và mọi repository khác bạn đã checkout. Trên một VPS dùng xong là bỏ chỉ có một dự án, câu trả lời là dự án đó, vốn đã được push lên rồi, cộng thêm một giờ dựng lại. Đó là rủi ro bạn có thể chấp nhận. Dưới đây là ba nơi để đặt agent:
Một container trên máy của bạn
Đây là lựa chọn rẻ nhất và gần nhất. Chạy một container Linux bằng Docker hoặc OrbStack, cài Claude Code bên trong bằng user không phải root, và chỉ mount dự án bạn muốn nó động vào. Đừng mount thư mục home, đừng truyền thông tin xác thực của máy chủ vào, và đừng dùng --privileged hay mount Docker socket, vì cả hai đều trao lại quyền kiểm soát máy chủ.
Một VPS riêng
Đây là lựa chọn mà phần lớn mọi người dừng lại: một máy nhỏ chạy một hai dự án và không có gì khác. Nó luôn bật, nên công việc vẫn tiếp tục khi các máy của bạn đã tắt. Nếu có ngày nó bị xâm nhập, bạn hủy nó đi và dựng một máy khác. Hãy giữ cho việc dựng lại thật nhàm chán, với một script cài đặt ngắn thay vì một chiếc máy bạn đã tinh chỉnh thủ công suốt một năm. Hướng dẫn chọn VPS trình bày cách chọn cấu hình.
Một sandbox tạm thời trên cloud
Phiên trên cloud của Anthropic chạy mỗi tác vụ trong một VM cô lập, với thông tin xác thực git được giữ bên ngoài sandbox và quyền truy cập mạng bị giới hạn theo mặc định. Đó là mức cô lập mạnh mà không phải bảo trì gì. Nhưng chế độ bypass không có ở đó. Phiên trên cloud cung cấp Accept edits, Plan và Auto, và bỏ qua bypassPermissions được đặt trong cài đặt của repository.
Những secret không nên để trên máy
- Thông tin xác thực production. Hãy trỏ nó tới staging hoặc một bản sao cục bộ. Thứ bạn đang đề phòng không phải ác ý; mà là một sai lầm tự tin nhắm vào một connection string tình cờ nằm sẵn đâu đó.
- SSH key cá nhân của bạn. Hãy cho máy chủ một deploy key riêng hoặc một token phân quyền chi tiết, giới hạn ở những repository nó cần. Cũng đừng dùng SSH agent forwarding vào máy đó: làm vậy là cho máy mượn key của bạn trong suốt thời gian bạn kết nối.
- Token cloud có phạm vi rộng. Không dùng AWS key quyền admin hay GitHub token toàn tổ chức. Nếu một tác vụ cần, hãy giới hạn phạm vi và để nó tự hết hạn.
- Bất cứ thứ gì chỉ tồn tại ở đó. Hãy push thường xuyên, để mất máy chủ cũng không làm bạn mất thứ gì không tạo lại được.
Có một thông tin xác thực buộc phải nằm trên máy: thông tin đăng nhập của chính agent. Claude Code lưu nó trong ~/.claude/.credentials.json, nên bất kỳ ai có shell dưới user đó đều có thể dùng gói của bạn. Đó là thêm một lý do để cho agent một user riêng.
Lựa chọn tương đương trong Codex và các agent khác
Agent lập trình nào cũng có phiên bản riêng của công tắc này, và chúng không phải lúc nào cũng mang cùng một ý nghĩa:
| Agent | Bỏ qua mọi lần hỏi | Phương án trung gian an toàn hơn |
|---|---|---|
| Claude Code | --dangerously-skip-permissions (bị từ chối khi chạy root) | Chế độ auto; acceptEdits; quy tắc deny |
| Codex | --dangerously-bypass-approvals-and-sandbox, bí danh --yolo: "Chỉ dùng bên trong một môi trường đã được gia cố từ bên ngoài" | --sandbox workspace-write với phê duyệt khi được yêu cầu (mạng tắt theo mặc định). --full-auto giờ là bí danh đã lỗi thời của tùy chọn này |
| OpenCode | opencode --auto (quy tắc deny vẫn được áp dụng) | allow / ask / deny cho từng công cụ trong opencode.json. Lưu ý rằng hầu hết công cụ mặc định là allow |
| Grok Build | grok --always-approve (quy tắc deny và hook PreToolUse vẫn có hiệu lực) | Chế độ auto (một bộ phân loại phê duyệt các công cụ an toàn); một sandbox riêng giới hạn các lệnh gọi đã được phê duyệt |
| Antigravity CLI | agy --dangerously-skip-permissions | Danh sách allow, ask và deny (deny được ưu tiên); preset mặc định chạy lệnh terminal trong sandbox không có mạng trên macOS và Linux |
Nguồn: tài liệu tham khảo Codex CLI và phê duyệt và bảo mật, quyền trong OpenCode, quyền trong Grok Build, quyền trong Antigravity và codelab Antigravity CLI của Google, kiểm tra vào tháng 10/2026. Cả Codex và Antigravity đều dùng sandbox theo mặc định, nên tắt lời nhắc và tắt sandbox là hai quyết định riêng biệt. Tắt sandbox mới là việc cần đến máy dùng xong là bỏ.
Tôi có thể bật bypass từ điện thoại không?
Không thể từ ứng dụng Claude. Tài liệu cho di động của Anthropic cho biết bạn không thể chọn Bypass permissions từ ứng dụng, cho cả phiên trên cloud lẫn Remote Control, và Remote Control từ ứng dụng cũng không cung cấp Auto. Với một ứng dụng khách đa dụng, đó là mặc định hợp lý.
Maude được xây dựng cho trường hợp còn lại, một máy chủ bạn sở hữu và có thể dựng lại, nên nó cung cấp chế độ toàn quyền của từng agent dưới tên "yolo" bên cạnh các chế độ khác của agent đó. Với Claude, nó chỉ có hiệu lực khi daemon chạy bằng user không phải root và bản Claude Code đã cài hỗ trợ flag này. Nếu không, phiên vẫn ở chế độ bình thường. Maude khởi động phiên ở chế độ bình thường và chuyển sang bypass sau khi khởi chạy, không bao giờ ngay lúc khởi tạo. Trên máy chủ chỉ có root, một nút trong ứng dụng sẽ tạo giúp bạn một user không phải root. Bạn có thể đặt chế độ mặc định cho từng agent, hoặc đổi riêng cho từng phiên.
Toàn quyền là quyết định về nơi agent chạy, không phải một thiết lập rủi ro. Đặt Claude Code dưới một user không phải root, trên một máy chẳng có gì đáng để lấy và chẳng có gì không dựng lại được, và bạn có thể để nó chạy không người trông mà không phải lo. Để nó trên chiếc máy chứa key của bạn và công việc của khách hàng, thì cẩn thận đến mấy cũng không biến đó thành một đánh đổi đáng giá.
Chạy từ điện thoại
Nếu bạn đã dựng xong máy chủ dùng xong là bỏ, Claude Code trên điện thoại cho thấy Maude chạy nó ở đó như thế nào. Phê duyệt quyền của agent từ điện thoại trình bày hướng ngược lại: giữ các lời nhắc và trả lời chúng từ thông báo.
Câu hỏi thường gặp
--dangerously-skip-permissions có an toàn không?
Vì sao nó lỗi khi chạy bằng root?
--allow-dangerously-skip-permissions khi chạy root cũng khiến tiến trình thoát ngay khi khởi tạo.Lựa chọn tương đương trong Codex là gì?
codex --dangerously-bypass-approvals-and-sandbox, còn viết là --yolo, tắt cả phê duyệt lẫn sandbox. OpenAI khuyên chỉ dùng nó bên trong một môi trường đã được gia cố từ bên ngoài. Mặc định ít vướng víu là --sandbox workspace-write với phê duyệt khi được yêu cầu. --full-auto cũ đã lỗi thời và sẽ in ra cảnh báo.Tôi có thể bật bypass từ điện thoại không?
Hai flag skip-permissions khác nhau thế nào?
--dangerously-skip-permissions khởi động phiên ở chế độ bypass. --allow-dangerously-skip-permissions khởi động phiên ở chế độ bình thường và chỉ thêm bypass vào vòng chuyển chế độ bằng Shift+Tab, để bạn có thể chuyển sang sau. Bạn hoàn toàn không thể chuyển sang bypass trong một phiên khởi động mà không có một trong hai flag này.Những gì đã thay đổi
- — Viết lại: giới hạn khi chạy root, --allow-dangerously-skip-permissions so với --dangerously-skip-permissions, chế độ auto là phương án trung gian mặc định, những gì bypass vẫn chặn, lựa chọn tương đương ở Codex/OpenCode/Grok Build/Antigravity, và những gì ứng dụng di động của Anthropic và Maude cho phép.
- — Xuất bản lần đầu.