SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-08-28

วิธีตั้งค่า auto mode ใน Claude Code หลัง 14 สิงหาคม 2026

ทำความเข้าใจการเปลี่ยนเป็น auto mode เริ่มต้นใน Claude Code ตั้งแต่วันที่ 14 สิงหาคม 2026 พร้อมวิธีตั้งค่าสิทธิ์การใช้งานที่เหมาะสมสำหรับเซิร์ฟเวอร์ที่คุณไม่สามารถเฝ้าดูได้ตลอดเวลา

การเปลี่ยนแปลงของ auto mode ในวันที่ 14 สิงหาคม 2026

auto mode ของ Claude Code จะดำเนินการเรียกใช้เครื่องมือโดยไม่หยุดรอการยืนยันจากคุณ และจะส่งการกระทำแต่ละอย่างไปยังโมเดลจำแนกประเภทเพื่อตรวจสอบก่อนเสมอ ตั้งแต่วันที่ 14 สิงหาคม 2026 เป็นต้นไป โหมดนี้จะเป็นโหมดเริ่มต้นสำหรับเซสชันใหม่ในแผน Pro, Max และ Team คุณสามารถสลับโหมดได้ตลอดเวลา และค่าเริ่มต้นที่คุณตั้งค่าไว้เองจะไม่ถูกเขียนทับ

เอกสารประกอบ ระบุถึงการเปลี่ยนแปลงนี้ไว้ดังนี้:

ตั้งแต่วันที่ 14 สิงหาคม 2026 เป็นต้นไป auto mode จะกลายเป็นโหมดการอนุญาตเริ่มต้นสำหรับเซสชันใหม่ในแผน Pro, Max และ Team คุณสามารถสลับโหมดได้ตลอดเวลา ค่าเริ่มต้นที่คุณตั้งค่าไว้เองจะยังคงอยู่เว้นแต่คุณจะยอมรับข้อความแจ้งเตือนให้เปลี่ยนเพียงครั้งเดียว และค่าเริ่มต้นที่องค์กรของคุณจัดการไว้จะไม่มีการเปลี่ยนแปลง

มีสองเงื่อนไขที่สำคัญยิ่งกว่าวันที่ที่ระบุไว้ คือ defaultMode ที่คุณตั้งค่าไว้ในไฟล์การตั้งค่าของคุณจะยังคงอยู่หลังจากการเปลี่ยนแปลงนี้ และค่าเริ่มต้นที่องค์กรของคุณปรับใช้ผ่านการตั้งค่าแบบจัดการก็จะยังคงอยู่เช่นกัน โพสต์ประกาศ เพิ่มเติมว่า auto mode จะยังคงเป็นทางเลือกสำหรับแผน Enterprise และสำหรับบัญชีที่ใช้ API ในช่วงแรกของการเปิดตัว

หากคุณใช้งาน Claude Code บน VPS (virtual private server) การเปลี่ยนแปลงนี้เป็นสิ่งที่ควรศึกษาให้เข้าใจก่อนที่จะมีผลบังคับใช้ ข้อความแจ้งเตือนการอนุญาตเป็นจุดตรวจสอบที่จำเป็นต้องมีผู้ใช้งานอยู่ที่หน้าจอ ในกรณีของเครื่องระยะไกล คุณมักจะไม่ได้อยู่ที่นั่น ดังนั้นโหมดที่เซสชันเริ่มต้นขึ้นจะเป็นโหมดที่ทำงานต่อไปเป็นเวลาหลายชั่วโมง

โหมดการอนุญาตของ Claude Code เรียงจากระดับการตรวจสอบเข้มงวดที่สุดไปน้อยที่สุด

มีทั้งหมด 6 โหมด ชื่อที่อยู่ต้นบรรทัดคือค่าที่คุณต้องระบุในการตั้งค่าหรือส่งผ่าน --permission-mode โหมดทั้ง 6 นี้ถูกบังคับใช้โดยตัว Claude Code เอง ไม่ใช่โดยโมเดล เพราะการตัดสินใจว่าเครื่องมือใดได้รับอนุญาตให้ทำอะไรนั้นคือ หน้าที่ของระบบที่ล้อมรอบโมเดลไว้

  • default: Claude จะถามก่อนการใช้เครื่องมือใหม่ทุกครั้ง การอ่านไฟล์ภายในไดเรกทอรีทำงานของคุณยังคงทำได้โดยไม่ต้องรอการยืนยัน CLI (command line interface) เรียกโหมดนี้ว่า Manual และรองรับ manual เป็นชื่อเรียกแทนตั้งแต่ Claude Code v2.1.200 เป็นต้นไป
  • plan: Claude สามารถอ่านไฟล์และรันคำสั่งเพื่อสำรวจข้อมูลได้ แต่จะไม่แก้ไขซอร์สโค้ดของคุณ การแก้ไขจะถูกบล็อกไว้จนกว่าคุณจะอนุมัติแผนงาน
  • acceptEdits: การแก้ไขไฟล์จะทำงานโดยไม่ต้องรอการยืนยัน รวมถึงคำสั่งจัดการระบบไฟล์อย่าง mkdir, touch, rm, rmdir, mv, cp และ sed โหมดนี้มีผลเฉพาะกับ path ภายในไดเรกทอรีทำงานหรือ additionalDirectories ของคุณเท่านั้น ส่วนคำสั่ง shell อื่นๆ ทั้งหมดยังคงต้องรอการยืนยัน
  • auto: ทุกอย่างทำงานได้โดยมีตัวจำแนกประเภท (classifier) คอยตรวจสอบแต่ละการกระทำก่อนเสมอ กฎ ask ที่ระบุไว้อย่างชัดเจนยังคงบังคับให้ต้องมีการยืนยัน
  • dontAsk: Claude Code จะปฏิเสธการทำงานใดๆ ที่ต้องรอการยืนยันจากคุณโดยอัตโนมัติ เฉพาะกฎ allow ของคุณ, คำสั่ง Bash แบบอ่านอย่างเดียวที่มีมาให้ และการเรียกใช้ hook PreToolUse ที่ได้รับอนุมัติเท่านั้นที่จะทำงานได้ เซสชันจะไม่รอการป้อนข้อมูลจากผู้ใช้
  • bypassPermissions: ข้ามการแจ้งเตือนและการตรวจสอบความปลอดภัยทั้งหมด รวมถึงการเขียนไฟล์ไปยัง path ที่ได้รับการป้องกัน เช่น .git และ .claude

กด Shift+Tab ระหว่างเซสชันเพื่อวนลูปสลับโหมดจาก default ไปยัง acceptEdits และ plan แถบสถานะจะแสดงโหมดที่คุณใช้งานอยู่ เช่น ⏵⏵ auto mode on หรือไอคอนสีเทา ⏸ manual mode on โหมดอื่นๆ จะไม่รวมอยู่ในลูปนี้โดยค่าเริ่มต้น auto จะเข้าร่วมลูปเมื่อบัญชีของคุณผ่านข้อกำหนดที่จำเป็นแล้วเท่านั้น bypassPermissions จะเข้าร่วมลูปเฉพาะเมื่อเซสชันถูกเริ่มต้นด้วย --permission-mode bypassPermissions หรือ --dangerously-skip-permissions ส่วน dontAsk จะไม่ปรากฏในลูปนี้ ดังนั้นต้องตั้งค่าผ่าน claude --permission-mode dontAsk เท่านั้น

โหมด Auto ยังต้องการโมเดลเวอร์ชันล่าสุด ซึ่งเป็นสาเหตุทั่วไปที่ทำให้โหมดนี้ไม่ปรากฏขึ้น ข้อมูล ณ เดือนสิงหาคม 2026 ระบุว่าต้องใช้ Claude Opus 4.6 ขึ้นไป, Sonnet 4.6 ขึ้นไป หรือ Fable 5 บน Anthropic API และระบุว่าโมเดลรุ่นเก่า เช่น Sonnet 4.5 ไม่รองรับบนผู้ให้บริการรายใด หาก Claude Code แจ้งว่าโหมด Auto ไม่พร้อมใช้งาน แสดงว่าข้อกำหนดข้อใดข้อหนึ่งไม่ครบถ้วน นี่ไม่ใช่ปัญหาชั่วคราว ดังนั้นการรอจะไม่ช่วยแก้ไขปัญหาดังกล่าว

มีตัวควบคุมสองอย่างที่มีผลในทุกโหมด รวมถึง bypassPermissions: คือกฎ deny และกฎ ask ที่ระบุไว้อย่างชัดเจน สิ่งเหล่านี้คือกลไกที่คุณยังคงควบคุมได้ไม่ว่าเซสชันจะเริ่มต้นในโหมดใดก็ตาม

สิ่งที่ตัวจำแนกประเภทในโหมดอัตโนมัติจะบล็อก

ตัวจำแนกประเภทเป็นโมเดลชุดที่สองที่ทำหน้าที่อ่านการดำเนินการที่ค้างอยู่ และตัดสินใจว่าการดำเนินการนั้นสอดคล้องกับสิ่งที่คุณร้องขอหรือไม่ เอกสารอธิบายหน้าที่ของมันไว้ในประโยคเดียวว่า:

โมเดลตัวจำแนกประเภทแยกต่างหากจะตรวจสอบการดำเนินการก่อนที่จะรัน โดยจะบล็อกทุกสิ่งที่ยกระดับเกินกว่าคำขอของคุณ มุ่งเป้าไปที่โครงสร้างพื้นฐานที่ไม่รู้จัก หรือดูเหมือนถูกขับเคลื่อนด้วยเนื้อหาที่เป็นอันตรายที่ Claude อ่านพบ

สิ่งที่ถูกบล็อกโดยค่าเริ่มต้น ในหมวดหมู่ที่ผู้ดูแลเซิร์ฟเวอร์มักพบเจอมากที่สุด:

  • การดาวน์โหลดและรันโค้ด เช่น curl | bash
  • การปรับใช้ (deploy) และการย้ายข้อมูล (migration) ในระบบผลิต (production)
  • การทำ force push
  • การแก้ไขโครงสร้างพื้นฐานที่ใช้ร่วมกัน
  • การเปิด tunnel หรือ reverse shell ที่ทำให้บริการภายในเข้าถึงได้จากอินเทอร์เน็ตสาธารณะ
  • การพิมพ์ credential หรือ token ที่ใช้งานจริงลงในบันทึกการสนทนาหรือไฟล์

สิ่งที่อนุญาตโดยค่าเริ่มต้น:

  • การดำเนินการกับไฟล์ภายในไดเรกทอรีทำงานของคุณ
  • การติดตั้ง dependency ที่ระบุไว้ในไฟล์ lock หรือไฟล์ manifest ของคุณ
  • การร้องขอ HTTP แบบอ่านอย่างเดียว (read-only)
  • การ push ไปยัง branch ใดก็ตามของ repository ที่คุณกำลังทำงานอยู่

อย่าทำงานโดยอ้างอิงจากสรุปข้างต้น ให้รัน claude auto-mode defaults เพื่อพิมพ์รายการกฎทั้งหมดออกมาในรูปแบบ JSON และอ่านชุดกฎที่มาพร้อมกับเวอร์ชันที่คุณติดตั้งไว้

มีข้อจำกัดที่บันทึกไว้สองประการที่คุณควรทราบก่อนที่จะพึ่งพาระบบนี้ ประการแรก ตัวจำแนกประเภทจะเห็นข้อความของคุณ การเรียกใช้เครื่องมือ และเนื้อหา CLAUDE.md ของคุณ แต่ผลลัพธ์จากเครื่องมือจะถูกตัดออก ดังนั้นข้อความภายในไฟล์หรือหน้าเว็บที่ Claude อ่านจะไม่สามารถส่งถึงตัวจำแนกประเภทได้โดยตรง ประการที่สอง เมื่อตัวจำแนกประเภทบล็อกการดำเนินการติดต่อกัน 3 ครั้ง หรือครบ 20 ครั้งในเซสชันเดียว โหมดอัตโนมัติจะหยุดชั่วคราวและ Claude Code จะกลับมาถามคุณ เกณฑ์เหล่านี้ไม่สามารถกำหนดค่าได้ ในโหมดที่ไม่โต้ตอบ (non-interactive) ที่ใช้แฟล็ก -p จะไม่มีใครให้ถาม ดังนั้นการบล็อกซ้ำๆ จะทำให้เซสชันถูกยกเลิกแทน

พฤติกรรมประการที่สองนี้คือสิ่งที่มักสร้างปัญหาบนเซิร์ฟเวอร์ระยะไกล การรันงานแบบไม่มีผู้ดูแลที่ไปแตะขีดจำกัดจะหยุดทำงานและรอการตอบสนองจากบุคคลที่ไม่ได้เฝ้าดูหน้าจอเทอร์มินัลอยู่ เซสชันที่สองของ Claude Code บนเครื่องเดียวกันไม่สามารถทดแทนบุคคลนั้นได้ เนื่องจาก ข้อความที่ส่งจากเซสชันหนึ่งไปยังอีกเซสชันหนึ่ง จะถูกพักไว้จนกว่าเซสชันผู้รับจะดึงไปใช้ และเซสชันที่หยุดชั่วคราวที่หน้าจอรอการอนุญาตยังคงต้องการคำตอบจากมนุษย์ การจำกัดขอบเขตสิ่งที่เอเจนต์จะทำคืออีกครึ่งหนึ่งของการแก้ไขปัญหา และ ทักษะที่ผลักดันให้เอเจนต์เลือกการเปลี่ยนแปลงที่เล็กที่สุดที่ได้ผล จะช่วยป้องกันไม่ให้เซสชันหลุดออกไปสู่การดำเนินการที่กว้างขวางเกินไปจนตัวจำแนกประเภทต้องสั่งหยุด ในขณะที่ทักษะจะควบคุมงานหนึ่งงาน รูปแบบเอาต์พุตจะแก้ไขตัว system prompt เอง ดังนั้นรูปแบบที่เน้นการเปลี่ยนแปลงขนาดเล็กและแม่นยำจะคงอยู่ตลอดทุกรอบของเซสชัน แทนที่จะเป็นเพียงงานเดียวที่คุณเรียกใช้มัน

ตำแหน่งของโหมดใน settings.json

เนื้อหาทั้งหมดข้างต้นเป็นออบเจกต์เดียวในไฟล์การตั้งค่า

{
  "permissions": {
    "defaultMode": "auto",
    "allow": [
      "Bash(npm run test *)",
      "Bash(git status)"
    ],
    "ask": [
      "Bash(git push *)",
      "Bash(docker compose up *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)",
      "Bash(curl *)"
    ]
  }
}

กฎจะถูกประเมินตามลำดับดังนี้: ปฏิเสธ (deny), ถาม (ask), แล้วจึงอนุญาต (allow) การจับคู่แรกที่พบในลำดับนี้จะเป็นตัวตัดสินผลลัพธ์ โดยกฎที่เฉพาะเจาะจงกว่าจะไม่สามารถลบล้างกฎที่กว้างกว่าซึ่งปรากฏก่อนหน้าได้ กฎการปฏิเสธสำหรับ Bash(aws *) จะบล็อก aws s3 ls แม้ว่าคุณจะอนุญาตคำสั่งเดียวกันนั้นไว้แล้วก็ตาม ดังนั้นกฎการปฏิเสธจึงไม่สามารถมีข้อยกเว้นได้

ask คือประเภทของกฎที่มีประโยชน์ในโหมด auto โหมด auto จะตัดการถามยืนยันตามปกติออกไป และกฎประเภท ask จะนำการถามยืนยันกลับมาสำหรับคำสั่งเฉพาะที่คุณต้องการให้มีการตรวจสอบโดยบุคคล คำสั่ง deploy ของคุณควรอยู่ในกลุ่มนี้ รวมถึง Bash(git push *) หากคุณต้องการจุดตรวจสอบก่อนที่โค้ดจะถูกส่งออกจากเครื่อง การเก็บไฟล์ข้อมูลรับรองไว้ใน deny เป็นอีกส่วนสำคัญที่ต้องทำควบคู่ไปกับ การป้องกันไม่ให้ agent เข้าถึงข้อมูลรับรองตั้งแต่แรก

ลำดับความสำคัญของไฟล์การตั้งค่า (จากต่ำไปสูง):

  • ~/.claude/settings.json: การตั้งค่าผู้ใช้ของคุณ ซึ่งถูกนำไปใช้ในทุกโปรเจกต์
  • .claude/settings.json: การตั้งค่าโปรเจกต์ ซึ่งถูก commit ลงใน repository
  • .claude/settings.local.json: การตั้งค่าเฉพาะของคุณสำหรับ repository เดียว ซึ่งถูก git-ignore ไว้
  • การตั้งค่าที่จัดการโดยผู้ดูแลระบบ (Managed settings) สำหรับบน Linux ไฟล์นี้คือ /etc/claude-code/managed-settings.json ไม่มีสิ่งใดสามารถลบล้างกฎการอนุญาตที่จัดการโดยผู้ดูแลระบบได้ แม้แต่ flag ในบรรทัดคำสั่ง

ข้อควรระวังประการหนึ่งที่มีสาเหตุระบุไว้อย่างชัดเจนคือ defaultMode: "auto" จะถูกละเว้นหากมาจาก .claude/settings.json หรือ .claude/settings.local.json ตั้งแต่ Claude Code v2.1.142 เป็นต้นไป เพื่อป้องกันไม่ให้ repository อนุญาตให้ตนเองเข้าสู่โหมด auto ผ่านการส่งไฟล์การตั้งค่ามาด้วย หากคุณตั้งค่าไว้ในนั้น เซสชันจะเริ่มต้นในโหมด default โดยไม่มีข้อความแจ้งเตือนใดๆ ให้ย้ายบรรทัดดังกล่าวไปที่ ~/.claude/settings.json แทน จากนั้นให้รัน /permissions เพื่อแสดงรายการกฎที่ใช้งานอยู่ทั้งหมดพร้อมระบุไฟล์ต้นทางของกฎนั้นๆ

สวิตช์สองตัวสำหรับปิดการใช้งานโหมด

ผู้ดูแลระบบมีสวิตช์สำหรับปิดการทำงาน (kill switch) สองตัว ซึ่งทั้งคู่ต้องใช้สตริง "disable" แทนที่จะเป็นค่าบูลีน

{
  "permissions": {
    "disableAutoMode": "disable",
    "disableBypassPermissionsMode": "disable"
  }
}

เอกสารระบุไว้อย่างชัดเจนว่าควรวางสวิตช์เหล่านี้ไว้ที่ใด:

เพื่อป้องกันไม่ให้มีการใช้โหมด bypassPermissions หรือ auto ให้ตั้งค่า permissions.disableBypassPermissionsMode หรือ permissions.disableAutoMode เป็น "disable" ในไฟล์การตั้งค่าใดก็ได้ สวิตช์เหล่านี้มีประโยชน์มากที่สุดในการตั้งค่าแบบจัดการ (managed settings) ซึ่งผู้ใช้ไม่สามารถแก้ไขทับได้

disableAutoMode จะลบ auto ออกจากรอบการทำงานของ Shift+Tab และปฏิเสธ --permission-mode auto ในระหว่างการเริ่มต้นระบบ ส่วน disableBypassPermissionsMode จะทำหน้าที่เดียวกันสำหรับโหมด bypass และสามารถทำงานได้จากทุกขอบเขต (scope) ดังนั้นคุณจึงสามารถตั้งค่านี้ไว้ใน ~/.claude/settings.json ของคุณเองเพื่อล็อกไม่ให้ตนเองเข้าถึงโหมดที่คุณไม่ต้องการใช้งานในช่วงเวลาตี 2 บนเซิร์ฟเวอร์ที่กำลังให้บริการจริง สำหรับเครื่องที่มีผู้ใช้งานหลายคน ให้ใส่ทั้งสองค่าไว้ใน /etc/claude-code/managed-settings.json แทน เนื่องจากไฟล์การตั้งค่าของผู้ใช้เป็นสิทธิ์ของผู้ใช้คนนั้น แต่ไฟล์แบบจัดการไม่ใช่

เหตุผลที่โหมดอัตโนมัติบน VPS จำเป็นต้องมีขอบเขตการแยกส่วน (isolation boundary)

ตัวจำแนกประเภท (classifier) จะตรวจสอบการกระทำทีละรายการ โดยไม่ได้ครอบคลุมถึงผลลัพธ์หลังจากที่การกระทำนั้นได้รับอนุมัติแล้ว เอกสารระบุขอบเขตไว้อย่างชัดเจนว่า:

ตัวจำแนกประเภทเป็นเพียงการควบคุมรายคำสั่ง ไม่ใช่ขอบเขตการแยกส่วน ดังนั้นการมีขอบเขตการแยกส่วนจึงช่วยเพิ่มการป้องกันเชิงลึกสำหรับการรันงานแบบไม่ต้องเฝ้าดู และไม่ได้เป็นข้อกำหนดในลักษณะเดียวกับ --dangerously-skip-permissions

ดังนั้น การจับคู่สำหรับเครื่องระยะไกลคือการใช้โหมดอัตโนมัติร่วมกับสภาพแวดล้อมที่คุณพร้อมจะสูญเสียได้ ไม่ใช่การใช้ bypassPermissions ร่วมกับความหวัง โหมดบายพาส (bypass mode) ถูกระบุไว้สำหรับสภาพแวดล้อมที่แยกส่วนเท่านั้น ได้แก่ container, virtual machine หรือ dev container ที่ไม่มีการเชื่อมต่ออินเทอร์เน็ต ซึ่ง Claude Code จะไม่สามารถสร้างความเสียหายต่อระบบโฮสต์ของคุณได้ แต่ VPS ที่รันฐานข้อมูลและ reverse proxy ของคุณไม่ใช่สภาพแวดล้อมเหล่านั้น

มีสามสิ่งที่สำคัญที่สุดบนเซิร์ฟเวอร์: ให้รัน Claude Code ในฐานะผู้ใช้ทั่วไป ห้ามใช้ root โดยเด็ดขาด กำหนด working directory ให้ผู้ใช้นั้นและอย่าให้เข้าถึงข้อมูลอื่นที่สำคัญ และให้ใช้วิธีสร้างเครื่องใหม่แทนการซ่อมแซม ซึ่งเป็นเหตุผลสนับสนุนการใช้ VM แบบใช้แล้วทิ้งที่ลบทิ้งหลังจบงาน รายละเอียดการเสริมความปลอดภัยเบื้องหลังสิ่งเหล่านี้ ตั้งแต่การสร้างผู้ใช้ไปจนถึงกฎ firewall ได้ครอบคลุมไว้ใน ขั้นตอนความปลอดภัยเต็มรูปแบบสำหรับการรัน Claude Code บน VPS แล้ว จึงจะไม่กล่าวซ้ำในที่นี้

Claude Code บังคับใช้กฎเรื่อง root ด้วยตัวเอง บน Linux และ macOS มันจะปฏิเสธการเริ่มทำงานในโหมดบายพาสภายใต้ sudo หรือในฐานะ root:

--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

การตรวจสอบนี้จะถูกข้ามไปหากอยู่ใน sandbox ที่ระบบรู้จัก ซึ่งเป็นเหตุผลว่าทำไมคำตอบที่แนะนำสำหรับการทำงานอัตโนมัติใน container คือการใช้ dev container ที่รัน Claude Code ในฐานะผู้ใช้ที่ไม่ใช่ root หากคุณควบคุม agent จากโทรศัพท์หรือแล็ปท็อปผ่าน SSH ตรรกะเดียวกันนี้จะนำไปใช้กับ เซสชัน Claude Code ที่รันค้างไว้ใน tmux: เนื่องจากไม่มีใครเฝ้าดู prompt ในขณะที่เซสชันกำลังทำงาน ทั้งหมดนี้จะไม่เริ่มทำงานจนกว่าการล็อกอินจะสำเร็จ ดังนั้นหากเครื่องปฏิเสธการเชื่อมต่อด้วย Permission denied (publickey) ผลลัพธ์ verbose ของ SSH จะบอกคุณว่าคุณกำลังเจอกับข้อผิดพลาดใดใน 5 ประการนั้น

การตั้งค่า Bash sandbox บน Ubuntu VPS

Sandbox ที่มีมาให้ในตัวจะจำกัดการเข้าถึงระบบไฟล์และเครือข่ายของทุกคำสั่ง Bash ที่ Claude เรียกใช้ โดยระบบปฏิบัติการจะบังคับใช้ข้อจำกัดนี้กับกระบวนการลูก (child processes) ด้วย สำหรับ Linux จำเป็นต้องใช้แพ็กเกจสองตัว

sudo apt-get install bubblewrap socat

เริ่มการทำงานของ Claude Code แล้วรัน /sandbox แผงควบคุมจะเปิดขึ้นพร้อมแท็บ Mode และแท็บ Overrides รวมถึงแท็บ Dependencies ที่แสดงรายการสิ่งที่ยังขาดอยู่ การตรวจสอบ dependency จะทำงานตอนเริ่มต้นโปรแกรม ดังนั้นให้รีสตาร์ท Claude Code หลังจากติดตั้งแพ็กเกจแล้ว มิฉะนั้นแผงควบคุมจะยังคงรายงานว่าไม่พบแพ็กเกจเหล่านั้น

บน Ubuntu 24.04 ขึ้นไป นโยบาย AppArmor เริ่มต้นจะขัดขวางไม่ให้ bubblewrap สร้าง user namespaces ที่จำเป็น ส่งผลให้ sandbox เริ่มทำงานไม่ได้ ให้ตรวจสอบว่าปัญหานี้เกิดขึ้นกับเซิร์ฟเวอร์ของคุณหรือไม่:

sysctl kernel.apparmor_restrict_unprivileged_userns

หากได้ผลลัพธ์เป็น 0 หรือข้อความแจ้งเตือนว่าไม่พบ key แสดงว่าไม่มีสิ่งใดต้องดำเนินการ แต่หากได้ผลลัพธ์เป็น 1 แสดงว่า bwrap จำเป็นต้องมีโปรไฟล์ของตัวเอง:

sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'
abi <abi/4.0>,
include <tunables/global>

profile bwrap /usr/bin/bwrap flags=(unconfined) {
  userns,
  include if exists <local/bwrap>
}
EOF
sudo systemctl reload apparmor

โปรไฟล์นี้จะใช้กับตัว bwrap เอง ไม่ใช่กับคำสั่งที่รันอยู่ภายใน sandbox จากนั้นให้จำกัดขอบเขตในส่วนการตั้งค่า:

{
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "denyRead": ["~/"],
      "allowRead": ["."]
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

บล็อกดังกล่าวต้องอยู่ในไฟล์ .claude/settings.json ของโปรเจกต์ เนื่องจาก . จะอ้างอิงถึง root ของโปรเจกต์ได้ก็ต่อเมื่อตั้งค่าจากภายในโปรเจกต์เท่านั้น หากนำบรรทัดเดียวกันไปใส่ใน ~/.claude/settings.json ค่า . จะอ้างอิงไปยัง ~/.claude แทน ส่งผลให้กฎ denyRead ยังคงบล็อกไฟล์ในโปรเจกต์ของคุณไว้ และทุกคำสั่งจะล้มเหลวในการอ่านโค้ดที่ต้องการแก้ไข

โปรดทราบว่าสิ่งนี้ไม่ครอบคลุมถึงทุกส่วน Sandbox จะจำกัดเฉพาะ Bash และกระบวนการลูกของมันเท่านั้น เครื่องมือจัดการไฟล์ที่มีมาให้จะรันอยู่ภายในกระบวนการของ Claude Code ส่วนเซิร์ฟเวอร์ MCP (model context protocol) และ hooks จะเป็นกระบวนการแยกต่างหากที่รันโดยไม่มีข้อจำกัดบนโฮสต์ หากต้องการนำทั้งหมดไปไว้ภายใต้ขอบเขตเดียวกัน ให้รันกระบวนการ Claude Code ทั้งหมดภายในคอนเทนเนอร์, เครื่องเสมือน (virtual machine) หรือแพ็กเกจ @anthropic-ai/sandbox-runtime ซึ่งเป็นรุ่นทดสอบเบต้าในขณะที่เขียนเอกสารนี้

แต่ละรูปแบบการตั้งค่าควรใช้โหมดใด

คลังเก็บข้อมูลส่วนตัวบนแล็ปท็อปของคุณ

ให้ใช้ auto ร่วมกับกฎ ask สำหรับการกระทำที่คุณต้องการตรวจสอบ คุณเป็นผู้ใช้งานที่หน้าเครื่องโดยตรง ระบบสำรองการจำแนกประเภทสามารถแจ้งเตือนคุณได้ และความเสียหายจะถูกจำกัดอยู่เพียงเครื่องเดียวที่คุณควบคุม นี่คือกรณีการใช้งานที่ค่าเริ่มต้นเมื่อวันที่ 14 สิงหาคมถูกออกแบบมาเพื่อรองรับ

เซิร์ฟเวอร์ VPS ที่ใช้งานร่วมกัน

ให้ใช้ auto แยกตามรายผู้ใช้ โดยตั้งค่าไว้ใน ~/.claude/settings.json ของแต่ละคน บนเครื่องที่บัญชีซึ่งรัน Claude Code ไม่ใช่ root และไม่สามารถอ่านงานของผู้ใช้รายอื่นได้ ให้ปรับใช้ disableBypassPermissionsMode ในรูปแบบ "disable" ภายใน /etc/claude-code/managed-settings.json พร้อมกับกฎการปฏิเสธ (deny rules) เพื่อปกป้องเส้นทางไฟล์ที่ใช้งานร่วมกัน เซิร์ฟเวอร์ที่ใช้งานร่วมกันเป็นกรณีที่ชัดเจนที่สุดว่าการใช้ bypassPermissions นั้นไม่เหมาะสม เนื่องจากขอบเขตการแยกส่วนที่โหมดนั้นสันนิษฐานไว้ไม่มีอยู่จริง เพราะผู้เช่ารายอื่นล้วนอยู่ในขอบเขตเดียวกัน

ระบบ CI และเซสชันที่ไม่มีผู้ดูแล

ให้ใช้ dontAsk พร้อมระบุรายการ allow ของคำสั่งที่งานนั้นจำเป็นต้องใช้ การปฏิเสธโดยอัตโนมัติ (auto-deny) เป็นโหมดความล้มเหลวที่ถูกต้องเมื่อไม่มีผู้ใช้งานคอยดูข้อความแจ้งเตือน โหมดอัตโนมัติสามารถรันแบบไม่โต้ตอบได้เช่นกัน แต่การถูกบล็อกซ้ำๆ จากตัวจำแนกประเภทจะทำให้เซสชัน -p หยุดชะงัก ส่งผลให้งานที่ติดปัญหาล้มเหลวกลางคันโดยที่งานยังไม่เสร็จสมบูรณ์ ให้ใช้ bypassPermissions สำหรับคอนเทนเนอร์หรือเครื่องเสมือนที่คุณสร้างใหม่จากอิมเมจเท่านั้น และห้ามใช้บนโฮสต์ใดๆ ที่รันบริการอื่นที่คุณให้ความสำคัญ

FAQ

โหมด auto จะกลายเป็นค่าเริ่มต้นใน Claude Code เมื่อใด

ตั้งแต่วันที่ 14 สิงหาคม 2026 สำหรับเซสชันใหม่ในแผน Pro, Max และ Team เอกสารระบุเพิ่มเติมว่าคุณสามารถสลับโหมดได้ตลอดเวลา ค่าเริ่มต้นที่คุณตั้งค่าเองจะยังคงอยู่เว้นแต่คุณจะยอมรับการแจ้งเตือนให้สลับโหมดแบบครั้งเดียว และค่าเริ่มต้นที่องค์กรของคุณจัดการจะไม่มีการเปลี่ยนแปลง ประกาศดังกล่าวยังระบุว่าโหมด auto จะยังคงเป็นทางเลือกสำหรับแผน Enterprise และสำหรับบัญชีที่ใช้ API ในช่วงแรกของการเปิดตัว ให้ตรวจสอบว่าเซสชันปัจจุบันอยู่ในโหมดใดโดยดูที่แถบสถานะ ซึ่งจะแสดง ⏵⏵ auto mode on เมื่ออยู่ในโหมด auto

ฉันควรใช้โหมด auto หรือ bypassPermissions บน VPS หรือไม่

ควรใช้โหมด auto ควบคู่ไปกับขอบเขตการแยกส่วน (isolation boundary) ตัวจำแนกประเภทจะตรวจสอบแต่ละการกระทำก่อนที่จะดำเนินการ แต่เอกสารระบุไว้อย่างชัดเจนว่านี่เป็นการควบคุมแบบรายคำสั่ง ไม่ใช่ขอบเขตการแยกส่วน ดังนั้นการรันงานโดยไม่มีผู้ดูแลยังคงต้องใช้ container, virtual machine หรือสภาพแวดล้อมที่คุณพร้อมจะสร้างใหม่ได้เสมอ ส่วน bypassPermissions จะข้ามการตรวจสอบทั้งหมดและระบุไว้สำหรับสภาพแวดล้อมที่แยกส่วนเท่านั้น Claude Code จะปฏิเสธการเริ่มทำงานในโหมดนั้นหากรันในฐานะ root บน Linux และจะแสดงข้อความ --dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

ฉันจะป้องกันไม่ให้ใครบนเซิร์ฟเวอร์ใช้โหมด auto หรือโหมด bypass ได้อย่างไร

ให้ตั้งค่า permissions.disableAutoMode และ permissions.disableBypassPermissionsMode เป็นค่า "disable" ในไฟล์ /etc/claude-code/managed-settings.json การตั้งค่าที่มีการจัดการ (managed settings) จะมีลำดับความสำคัญเหนือขอบเขตอื่นทั้งหมด ดังนั้นไฟล์การตั้งค่าของผู้ใช้หรือ flag ของ command line ใดๆ ก็ไม่สามารถเขียนทับได้ disableAutoMode จะนำ auto ออกจากวงจร Shift+Tab และปฏิเสธ --permission-mode auto ในขณะเริ่มทำงาน นอกจากนี้ disableBypassPermissionsMode ยังทำงานได้จากทุกขอบเขต ดังนั้นผู้ใช้แต่ละคนสามารถตั้งค่านี้ในไฟล์ ~/.claude/settings.json ของตนเองได้

เหตุใดการตั้งค่า defaultMode: "auto" ของฉันจึงถูกเพิกเฉย

เนื่องจากไฟล์ที่ตั้งค่าไม่ถูกต้อง ตั้งแต่ Claude Code v2.1.142 เป็นต้นไป ค่า defaultMode: "auto" จะถูกเพิกเฉยหากมาจาก .claude/settings.json หรือ .claude/settings.local.json เพื่อป้องกันไม่ให้ repository อนุญาตให้ตนเองใช้โหมด auto ผ่านการส่งไฟล์การตั้งค่ามาด้วย เซสชันจะเริ่มทำงานในโหมด default และไม่แสดงข้อผิดพลาด ให้ย้ายการตั้งค่าไปไว้ที่ ~/.claude/settings.json จากนั้นรันคำสั่ง /permissions เพื่อยืนยันว่ากฎแต่ละข้อที่ใช้งานอยู่มาจากไฟล์ใด หากยังไม่สามารถใช้โหมด auto ได้ ให้ตรวจสอบข้อกำหนดของโมเดล เนื่องจากโมเดลรุ่นเก่า เช่น Sonnet 4.5 ไม่ได้รับการรองรับในผู้ให้บริการรายใดก็ตาม