Izin
Konfigurasikan profil izin Codex beta untuk akses sistem file dan jaringan
Profil izin memungkinkan Anda menerapkan batas hak akses minimum pada perintah lokal yang dijalankan Codex atas nama Anda. Profil adalah kebijakan bernama yang menggabungkan aturan sistem file, yang menentukan apa yang dapat dibaca atau ditulis oleh perintah, dengan aturan jaringan, yang menentukan tujuan yang dapat dijangkau oleh perintah.
Gunakan profil untuk memberi Codex akses yang memadai bagi obrolan saat ini tanpa memberikan akses luas ke komputer atau jaringan Anda. Misalnya, profil hanya-baca dapat memungkinkan Codex memeriksa proyek tanpa mengeditnya, sedangkan profil yang dapat menulis dapat membatasi pengeditan pada root ruang kerja yang dipilih.
Profil izin lokal didukung di macOS, Linux, WSL, dan Windows native. Lihat Cakupan dan penerapan untuk detail dan catatan khusus platform.
Untuk pengaturan jaringan cloud Codex, lihat Akses Internet.
Menentukan dan memilih profil
Codex menyertakan tiga profil izin bawaan:
:read-onlymembuat eksekusi perintah lokal tetap hanya-baca.:workspacemengizinkan penulisan di dalam root ruang kerja aktif dan direktori temporer sistem.:danger-full-accessmenghapus pembatasan sandbox lokal dan sebaiknya digunakan hanya jika akses luas tersebut memang disengaja.
Buat profil bernama di bawah [permissions.<name>], lalu tetapkan kunci tingkat atas
default_permissions ke nama profil tersebut atau ke salah satu profil bawaan di atas.
Dalam contoh ini, project-edit adalah nama profil yang ditentukan pengguna, bukan nilai
bawaan.
Administrator perusahaan dapat menentukan profil dan membatasi profil yang
dapat dipilih pengguna melalui requirements.toml terkelola. Setelah
allowed_permission_profiles tersedia, profil yang tidak dicantumkan akan ditolak,
termasuk profil bawaan yang tidak dicantumkan dan profil yang ditambahkan pada versi Codex mendatang. Lihat
Kontrol profil izin yang tersedia
untuk konfigurasi terkelola yang direkomendasikan.
Profil khusus menggunakan dua konsep yang saling terkait:
[permissions.<name>.workspace_roots]menambahkan direktori konkret yang harus dianggap sebagai root ruang kerja untuk profil tersebut.[permissions.<name>.filesystem.":workspace_roots"]menentukan aturan sistem file yang diterapkan Codex di dalam setiap root ruang kerja efektif: root ruang kerja runtime sesi saat ini ditambah root yang ditentukan profil di atas.
Profil juga menggunakan model lapisan konfigurasi normal. Lapisan dengan prioritas lebih tinggi dapat menambahkan atau mengganti entri di bawah nama profil yang sama tanpa menyatakan ulang seluruh profil.
Misalnya, konfigurasi tingkat organisasi dan konfigurasi tingkat pengguna dapat memperluas profil yang sama secara independen:
# /etc/codex/config.toml
[permissions.server.workspace_roots]
"~/code/server" = true# ~/.codex/config.toml
[permissions.server.workspace_roots]
"~/code/mobile-app" = trueSaat server aktif, kedua root ruang kerja berpartisipasi dalam profil
efektif.
default_permissions = "project-edit"
[permissions.project-edit.workspace_roots]
"~/code/app" = true
"~/code/shared-lib" = true
[permissions.project-edit.filesystem]
":minimal" = "read"
[permissions.project-edit.filesystem.":workspace_roots"]
"." = "write"
".devcontainer" = "read"
"**/*.env" = "deny"
[permissions.project-edit.network]
enabled = true
[permissions.project-edit.network.domains]
"api.openai.com" = "allow"
"objects.githubusercontent.com" = "allow"
"*.github.com" = "allow"
"tracking.example.com" = "deny"Profil ini:
- Membaca jalur runtime minimum yang diperlukan alat pengembang umum.
- Menerapkan aturan root ruang kerja yang sama pada sesi saat ini dan root yang ditentukan profil.
- Mempertahankan pengaturan yang terkait IDE seperti
.devcontainer/sebagai hanya-baca di bawah setiap root. - Menolak file lingkungan yang cocok dengan aturan glob.
- Mengizinkan akses jaringan hanya melalui kebijakan domain yang dikonfigurasikan.
Di dalam profil aktif, aturan penolakan yang lebih sempit tetap berlaku meskipun jalur yang lebih luas
dapat dibaca atau ditulis. Misalnya, profil dapat membuat root ruang kerja
dapat ditulis sekaligus tetap menetapkan jalur .env yang cocok ke deny.
Memperluas profil
Gunakan extends saat sebagian besar profil sama dengan profil bawaan atau profil bernama
lainnya. Utamakan memperluas profil bawaan daripada memulai dari awal agar
perlindungan dasar tetap diwariskan. Memperluas :workspace, misalnya, mempertahankan
direktori .codex milik root ruang kerja sebagai hanya-baca kecuali Anda secara eksplisit
menimpanya. Tetapkan induk satu kali, lalu tambahkan atau timpa hanya aturan yang
berbeda.
default_permissions = "project-edit"
[permissions.project-edit]
description = "Project editing with OpenAI API access."
extends = ":workspace"
[permissions.project-edit.filesystem.":workspace_roots"]
"**/*.env" = "deny"
[permissions.project-edit.network]
enabled = true
[permissions.project-edit.network.domains]
"api.openai.com" = "allow"Profil ini dimulai dengan :workspace, tetap menolak file .env yang cocok, dan
mengizinkan permintaan ke api.openai.com. Profil dapat memperluas :read-only,
:workspace, atau profil bernama lain. Profil tidak dapat memperluas
:danger-full-access; Codex juga menolak induk yang tidak dikenal dan siklus
pewarisan.
Spesifikasi konfigurasi
| Entri | Jenis / nilai | Default | Detail |
|---|---|---|---|
default_permissions |
Nama profil berupa string | Tidak ada | Menamai profil izin yang diterapkan Codex secara default. Nama harus cocok dengan profil di bawah [permissions] atau profil bawaan seperti :workspace. Tetapkan secara eksplisit agar perilakunya dapat diprediksi; persyaratan terkelola boleh mengabaikannya hanya jika :workspace dan :read-only sama-sama diizinkan secara eksplisit. Codex menggunakan pengaturan sandbox lama kecuali allowed_permission_profiles terkelola memerintahkannya menggunakan profil izin dalam penyiapan ini. |
[permissions.<name>] |
Tabel | Tidak ada | Menentukan profil bernama. default_permissions memilih satu profil sebagai default; pengaturan profil izin lainnya juga menggunakan nama profil. |
permissions.<name>.description |
String | Tidak ada | Menyediakan deskripsi profil yang mudah dipahami. Profil tidak mewarisi deskripsi induknya melalui extends. |
permissions.<name>.extends |
Nama profil berupa string | Tidak ada | Memulai profil ini dari profil bernama lain atau profil bawaan :read-only maupun :workspace. Codex menolak :danger-full-access, induk yang tidak dikenal, dan siklus pewarisan. |
[permissions.<name>.workspace_roots] |
Tabel | Tidak ada | Menambahkan root ruang kerja yang ditentukan profil, yang menerima aturan sistem file :workspace_roots bersama root ruang kerja runtime sesi saat ini. |
permissions.<name>.workspace_roots."<path>" |
Boolean | false |
Menambahkan jalur ke kumpulan root ruang kerja profil saat true. Entri yang ditetapkan ke false tetap tidak aktif. |
[permissions.<name>.filesystem] |
Tabel | Tidak ada | Memetakan jalur sistem file ke nilai akses atau peta subjalur tercakup. Tabel sistem file yang tidak ada atau kosong mempertahankan pembatasan akses sistem file dan menghasilkan peringatan saat mulai. |
permissions.<name>.filesystem.glob_scan_max_depth |
Angka | Tidak ada | Membatasi perluasan glob penolakan baca di Linux, WSL, dan Windows native saat Codex mengambil snapshot kecocokan sebelum sandbox dimulai. Nilai yang lebih besar dapat menambah pekerjaan pemindaian awal. Gunakan nilai minimal 1 saat pola ** tanpa batas memerlukan praperluasan terbatas. |
[permissions.<name>.filesystem]."<path>" |
read, write, atau deny |
Tidak ada | Memberikan akses langsung untuk jalur yang didukung. deny menolak akses dan mengungguli entri write atau read yang sama spesifiknya. Codex menolak aturan penulisan langsung yang tidak dapat diterapkan oleh runtime aktif. |
[permissions.<name>.filesystem."<path>"]."<subpath>" |
read, write, atau deny |
Tidak ada | Memberikan akses ke turunan dari <path>. Gunakan . untuk jalur dasar. Subjalur lain harus berupa turunan relatif dan tidak boleh berisi komponen . atau ... |
[permissions.<name>.network] |
Tabel | Tidak ada | Mengonfigurasikan proksi sandbox jaringan dan kebijakan jaringan sandbox untuk profil. |
permissions.<name>.network.enabled |
Boolean | false |
Mengaktifkan akses jaringan bagi perintah yang di-sandbox dalam profil. Ini mengubah kebijakan jaringan sandbox; pengaturan ini tidak memulai proksi jaringan dengan sendirinya. |
[permissions.<name>.network.domains] |
Tabel | Tidak ada | Memetakan pola host ke allow atau deny. Jika tidak ada entri allow, permintaan domain akan diblokir. Entri penolakan mengungguli entri pengizinan. |
permissions.<name>.network.domains."<pattern>" |
allow atau deny |
Tidak ada | Mendukung host persis, *.example.com untuk subdomain, **.example.com untuk domain apex beserta subdomain, dan * sebagai wildcard global khusus pengizinan. Pola host dinormalisasi dengan memangkas spasi, mengubahnya menjadi huruf kecil, menghapus titik di akhir, serta menghapus port atau kurung sederhana. |
[permissions.<name>.network.unix_sockets] |
Tabel | Tidak ada | Memetakan penimpaan daftar izin soket Unix. Gunakan hanya untuk integrasi lokal seperti Docker. |
permissions.<name>.network.unix_sockets."<path>" |
allow atau deny |
Tidak ada | Menambahkan jalur absolut soket Unix ke daftar izin efektif dengan allow, atau menolaknya dengan deny. Entri yang ditolak dihilangkan dari daftar izin efektif. |
permissions.<name>.network.proxy_url |
String URL | http://127.0.0.1:3128 |
Listener proksi HTTP yang digunakan untuk HTTP_PROXY, HTTPS_PROXY, variabel proksi websocket, dan variabel lingkungan proksi alat terkait. |
permissions.<name>.network.enable_socks5 |
Boolean | true |
Mengaktifkan listener SOCKS5 yang digunakan untuk ALL_PROXY dan variabel proksi FTP. |
permissions.<name>.network.socks_url |
String URL | http://127.0.0.1:8081 |
Alamat listener SOCKS5. |
permissions.<name>.network.enable_socks5_udp |
Boolean | true |
Mengaktifkan dukungan UDP SOCKS5 saat listener SOCKS5 diaktifkan. |
permissions.<name>.network.allow_upstream_proxy |
Boolean | true |
Mengizinkan proksi sandbox jaringan mematuhi pengaturan upstream HTTP(S)_PROXY dan ALL_PROXY untuk permintaan keluar. |
permissions.<name>.network.allow_local_binding |
Boolean | false |
Menonaktifkan pelindung jaringan lokal/pribadi saat true. Saat false, literal lokal persis seperti localhost atau 127.0.0.1 harus dimasukkan secara eksplisit ke daftar izin, dan nama host yang di-resolve ke IP lokal atau pribadi tetap diblokir. |
permissions.<name>.network.dangerously_allow_non_loopback_proxy |
Boolean | false |
Mengizinkan listener proksi mengikat alamat non-loopback. Biarkan tidak ditetapkan untuk pengembangan lokal biasa. |
permissions.<name>.network.dangerously_allow_all_unix_sockets |
Boolean | false |
Melewati daftar izin soket Unix jika pemroksian soket Unix didukung. Ini merupakan jalan keluar lokal yang luas. |
Izin sistem file
Entri sistem file menggunakan read, write, atau deny:
| Akses | Arti |
|---|---|
read |
Mengizinkan perintah membaca file dan mencantumkan direktori di bawah jalur tersebut. Perintah tidak dapat membuat, mengubah, mengganti nama, atau menghapus file di sana. |
write |
Mengizinkan perintah membaca dan mengubah file di bawah jalur tersebut, termasuk membuat, mengganti nama, dan menghapus file jika diizinkan OS. |
deny |
Menolak pembacaan dan penulisan di bawah jalur tersebut. Gunakan untuk mengecualikan subjalur yang ditolak dari izin read atau write yang lebih luas. |
Entri yang lebih spesifik mengungguli entri yang lebih luas. Jika dua entri menargetkan
jalur yang sama, deny lebih diprioritaskan daripada write, dan write lebih diprioritaskan
daripada read.
Prioritas ini memungkinkan profil menjelaskan area kerja yang luas terlebih dahulu, lalu mengecualikan file atau direktori yang harus tetap tidak dapat dibaca:
[permissions.project-edit.filesystem]
":minimal" = "read"
[permissions.project-edit.filesystem.":workspace_roots"]
"." = "write"
".devcontainer" = "read"
"**/*.env" = "deny"Dalam contoh ini, root ruang kerja tetap dapat ditulis, .devcontainer/ tetap
dapat dibaca tanpa menjadi dapat ditulis, dan file lingkungan yang cocok tetap
tidak tersedia bagi perintah yang di-sandbox.
Jalur yang lebih spesifik juga dapat membuka kembali subpohon yang lebih sempit di dalam penolakan yang lebih luas:
[permissions.project-edit.filesystem]
"~/Documents" = "deny"
"~/Documents/codex" = "write"Bentuk jalur yang didukung:
| Jalur | Arti | Subjalur tercakup |
|---|---|---|
:root |
Root sistem file | . saja |
:minimal |
Jalur platform dan runtime yang diperlukan alat umum | . saja |
:workspace_roots |
Root ruang kerja sesi saat ini ditambah root ruang kerja aktif yang ditentukan profil | Ya |
:tmpdir |
Lokasi $TMPDIR, jika tersedia |
. saja |
:slash_tmp |
Folder /tmp, jika ada |
. saja |
/absolute/path |
Jalur absolut platform, seperti /path di macOS/Linux/WSL atau C:\path di Windows native |
Ya |
~/path |
Jalur di bawah direktori home pengguna saat ini | Ya |
Di Windows native, jalur yang relatif terhadap home juga dapat menggunakan garis miring terbalik, seperti
~\work.
Gunakan :root hanya jika profil sengaja memerlukan cakupan baca yang luas:
[permissions.audit.filesystem]
":root" = "read"Gunakan entri bertingkat di bawah :workspace_roots untuk membatasi akses ke subjalur yang
relatif terhadap root ruang kerja:
[permissions.project-edit.filesystem.":workspace_roots"]
"." = "write" # each workspace root
"docs" = "read" # each workspace-root docs directory
"generated" = "deny" # each workspace-root generated directorySubjalur bertingkat harus tetap berada di dalam root ruang kerjanya. Traversal induk seperti
../other-repo akan ditolak.
Menolak pembacaan dengan jalur persis atau glob
Gunakan deny untuk file atau subpohon yang tidak boleh dibaca Codex, meskipun aturan
profil yang lebih luas memberikan akses di sekitarnya. Jalur persis sesuai untuk lokasi stabil
seperti ~/.ssh. Pola glob lebih sesuai saat profil perlu mencakup
sekumpulan file sensitif yang lokasi persisnya berbeda-beda di setiap repositori.
Saat glob berada di bawah :workspace_roots, Codex menafsirkannya relatif terhadap setiap
root ruang kerja efektif. Misalnya:
[permissions.project-edit.filesystem.":workspace_roots"]
"**/*.env" = "deny"Aturan ini menolak pembacaan file .env yang cocok dan ditemukan di bawah setiap root ruang kerja runtime atau
yang ditentukan profil. Gunakan aturan ini jika Anda ingin mempertahankan penulisan normal pada
ruang kerja sekaligus menjaga agar file lingkungan, rahasia yang dihasilkan, atau file serupa
yang memuat kredensial tidak dapat dibaca.
Pola glob deny didukung sebagai aturan penolakan baca. Glob read atau write
kurang portabel pada sandboxing Linux, WSL, dan Windows native, jadi utamakan jalur
persis atau aturan subpohon seperti "docs/**" = "read" jika memungkinkan.
Di Linux, WSL, dan Windows native, pola penolakan baca ** tanpa batas mungkin memerlukan
praperluasan terbatas sebelum sandbox dimulai. Tetapkan glob_scan_max_depth saat
Anda menggunakan pola tanpa batas seperti "**/*.env" = "deny":
[permissions.project-edit.filesystem]
glob_scan_max_depth = 3
[permissions.project-edit.filesystem.":workspace_roots"]
"**/*.env" = "deny"glob_scan_max_depth harus minimal 1. Nilai yang lebih tinggi memindai lebih dalam sebelum
sandbox dimulai, yang dapat menambah pekerjaan awal di Linux, WSL, dan Windows native.
Jika Anda tidak ingin menggunakan perluasan terbatas, cantumkan kedalaman eksplisit seperti
*.env, */*.env, dan */*/*.env.
Tambahkan root ruang kerja yang dapat digunakan kembali ke profil jika aturan yang sama harus berlaku untuk lebih dari root sesi saat ini:
[permissions.project-edit.workspace_roots]
"~/code/app" = true
"~/code/shared-lib" = trueSaat profil ini aktif, Codex menerapkan aturan :workspace_roots pada
root ruang kerja runtime sesi saat ini dan setiap root ruang kerja aktif yang
ditentukan profil.
Di Windows native, jalur huruf drive seperti D:\work dan jalur UNC seperti
\\server\share didukung sebagai jalur absolut.
Izin jaringan
Tetapkan enabled = true untuk mengizinkan akses jaringan bagi profil yang dipilih:
[permissions.project-edit.network]
enabled = trueSaat akses jaringan diaktifkan, Codex menggunakan perilaku jaringan penuh secara default. Sebagian besar profil juga sebaiknya menentukan aturan domain:
[permissions.project-edit.network.domains]
"example.com" = "allow" # exact host
"*.example.com" = "allow" # subdomains only
"**.example.com" = "allow" # apex and subdomains
"ads.example.com" = "deny" # deny wins over allowProksi sandbox jaringan mengikat listener lokal secara default:
[permissions.project-edit.network]
enabled = true
proxy_url = "http://127.0.0.1:3128"
enable_socks5 = true
socks_url = "http://127.0.0.1:8081"
enable_socks5_udp = trueBiarkan pengaturan listener ini pada nilai default kecuali Anda mengintegrasikannya dengan
runtime tertentu. Kunci jaringan dangerously_* merupakan jalan keluar untuk
lingkungan khusus dan tidak boleh digunakan untuk pengembangan lokal biasa.
Jaringan lokal dan pribadi
Codex menerapkan pelindung jaringan lokal/pribadi secara default sebagai pertahanan terhadap DNS rebinding dan akses tidak disengaja ke layanan lokal. Untuk sengaja mengizinkan target lokal literal, masukkan host atau literal IP persis ke daftar izin:
[permissions.project-edit.network.domains]
"localhost" = "allow"
"127.0.0.1" = "allow"Tetapkan allow_local_binding = true hanya jika profil harus menjangkau nama host
dalam daftar izin yang di-resolve ke alamat lokal atau pribadi:
[permissions.project-edit.network]
enabled = true
allow_local_binding = true
[permissions.project-edit.network.domains]
"localhost" = "allow"Soket Unix
Pemroksian soket Unix merupakan jalan keluar lokal untuk alat seperti Docker. Gunakan secukupnya:
[permissions.project-edit.network.unix_sockets]
"/var/run/docker.sock" = "allow"
"/tmp/old.sock" = "deny"Gunakan deny untuk menolak jalur soket, termasuk entri pengizinan yang diwarisi. Jalur
soket yang ditolak dihilangkan dari daftar izin efektif.
Saat soket Unix diaktifkan, pertahankan listener proksi agar terikat ke alamat loopback.
Bermigrasi dari pengaturan sandbox lama
Profil izin menggantikan kombinasi lama sandbox_mode dan
sandbox_workspace_write jika Anda ingin satu profil yang dapat digunakan kembali untuk menjelaskan perilaku
sistem file dan jaringan. Gunakan salah satu sistem untuk suatu sesi, jangan
keduanya.
Titik awal yang disarankan:
- Untuk alur kerja hanya-baca, gunakan profil bawaan
:read-onlyatau tentukan profil khusus dengan akses baca hanya jika diperlukan. - Untuk pengeditan ruang kerja, gunakan profil bawaan
:workspaceatau tentukan profil khusus yang menulis melalui:workspace_rootsdan hanya menambahkan jalur temporer atau cache tambahan yang diperlukan alur kerja. - Untuk eksekusi lokal tanpa batas, gunakan
:danger-full-accesshanya jika Anda memang menginginkan model akses lokal yang paling luas.
Profil menjelaskan postur default lokal untuk suatu sesi. Persyaratan yang dikelola organisasi tetap dapat menambahkan pembatasan yang tidak boleh diperluas oleh konfigurasi pengguna. Lihat Konfigurasi terkelola untuk batasan sistem file dan jaringan yang diterapkan administrator.
Cakupan dan penerapan
Profil izin menentukan batas eksekusi perintah lokal yang di-sandbox. Gunakan profil bersama kebijakan persetujuan dan kontrol terpisah untuk konektor, server MCP, browser bawaan, Computer Use, dan cloud Codex.
Hal yang dikontrol profil
- Eksekusi perintah lokal: Profil izin mengatur perintah yang di-sandbox dan berjalan di komputer Anda. Konektor, server MCP, permukaan browser atau computer-use, pengaturan lingkungan cloud Codex, dan eskalasi yang disetujui menggunakan kontrolnya masing-masing.
- Penulisan sistem file: Profil yang dapat menulis bisa membuat perubahan permanen. Perlakukan penulisan ke skrip, langkah build, hook pengelola paket, file startup shell, dan direktori bersama sebagai hal sensitif karena alat atau pengguna lain nantinya dapat mengeksekusi file tersebut di luar konteks sandbox awal.
- Tujuan keluar: Aturan domain jaringan membatasi tujuan lalu lintas perintah yang di-sandbox melalui proksi jaringan. Aturan ini tidak menentukan apakah tujuan yang diizinkan dapat dipercaya, dan aturan wildcard pengizinan tetap luas.
- Layanan lokal: Target jaringan lokal dan pribadi diblokir secara default.
Memasukkan
localhost, IP pribadi, atau soket Unix ke daftar izin, atau menetapkanallow_local_binding = true, secara eksplisit membuka akses ke layanan lokal.
Cara kerja penerapan
- Di macOS, Codex menggunakan profil sandbox Seatbelt. Jika kebijakan yang dipilih tidak dapat diterapkan oleh sandbox platform, Codex menolak menjalankan perintah alih-alih menjalankannya diam-diam tanpa sandbox.
- Di Linux dan WSL, Codex menggunakan bubblewrap dan seccomp, dengan Landlock tersedia untuk jalur fallback kompatibilitas. Jalur penerapan terkuat bergantung pada namespace pengguna dan dukungan kernel; host container terbatas dapat memaksa penggunaan jalur kompatibilitas, dan kebijakan terpisah yang tidak didukung akan ditolak.
- Di Windows native, sandboxing
elevatedmerupakan opsi terkuat karena dapat menggunakan pengguna sandbox khusus dengan hak akses lebih rendah, batas izin sistem file, dan aturan firewall. Sandboxingunelevatedmerupakan fallback dengan isolasi jaringan lebih lemah dan tidak dapat menerapkan setiap pengecualian baca/tulis terpisah, sehingga kebijakan yang tidak didukung akan ditolak. Gunakan WSL jika Anda memerlukan model sandbox Linux.
Panduan operasional
Pilih profil paling terbatas yang tetap memungkinkan tugas diselesaikan, khususnya saat Anda memberikan akses tulis atau jaringan keluar. Selaraskan kebijakan persetujuan, penanganan rahasia, dan aturan pengizinan dengan tingkat akses tersebut.
Profil umum
Hanya-baca dengan daftar izin jaringan
default_permissions = "readonly-net"
[permissions.readonly-net.filesystem]
":minimal" = "read"
[permissions.readonly-net.filesystem.":workspace_roots"]
"." = "read"
[permissions.readonly-net.network]
enabled = true
[permissions.readonly-net.network.domains]
"api.openai.com" = "allow"Akses file dibatasi pada ruang kerja
Berikut adalah contoh profil izin yang akan membuat folder ruang kerja Anda dapat ditulis oleh Codex sekaligus menolak pembacaan pada seluruh sistem file lainnya (dengan pengecualian terbatas, sebagaimana ditentukan oleh :minimal).
default_permissions = "workspace-only"
[permissions.workspace-only]
# By extending the :workspace profile, you get Codex's safeguards to ensure
# subfolders such as .codex/ and .git/ within a workspace root are read-only
# while the rest of the folder is writable.
extends = ":workspace"
[permissions.workspace-only.filesystem]
# By default, deny read access to all files on disk.
":root" = "deny"
# Though in practice, a software agent needs to be able to read folders that
# contain common tools, such as `/usr/bin`, to get work done, so grant access
# to a "minimal" set of files and folders, as determined by Codex.
":minimal" = "read"
# By extending the :workspace profile, :tmpdir and :slash_tmp are "write" by
# default, though you can deny access to them altogether, if desired.
":tmpdir" = "deny"
":slash_tmp" = "deny"Penulisan ruang kerja tanpa jaringan
default_permissions = "project-edit"
[permissions.project-edit.filesystem]
":minimal" = "read"
[permissions.project-edit.filesystem.":workspace_roots"]
"." = "write"
[permissions.project-edit.network]
enabled = falsePenulisan ruang kerja dengan akses web publik
default_permissions = "workspace-net"
[permissions.workspace-net.filesystem]
":minimal" = "read"
[permissions.workspace-net.filesystem.":workspace_roots"]
"." = "write"
[permissions.workspace-net.network]
enabled = true
[permissions.workspace-net.network.domains]
"*" = "allow"Gunakan aturan pengizinan global "*" hanya jika Anda memang bermaksud mengizinkan akses
jaringan publik. Aturan penolakan dapat mempersempit daftar izin yang luas.