[{"data":1,"prerenderedAt":749},["ShallowReactive",2],{"guide-chmod-common-permission-sets":3},{"id":4,"title":5,"body":6,"date":739,"description":740,"extension":741,"meta":742,"navigation":743,"path":744,"readingTime":745,"seo":746,"stem":747,"__hash__":748},"guides\u002Fguides\u002Fchmod-common-permission-sets.md","10 Essential Chmod Permission Sets",{"type":7,"value":8,"toc":721},"minimark",[9,14,18,22,229,233,238,249,252,282,286,292,303,331,335,341,344,378,382,388,391,415,419,425,432,456,460,466,469,473,479,482,526,530,536,539,563,567,573,580,584,673,677,700,704,707,717],[10,11,13],"h2",{"id":12},"the-permission-sets-youll-actually-use","The Permission Sets You'll Actually Use",[15,16,17],"p",{},"You could memorize every chmod value from 000 to 777, but in practice, about ten permission sets cover nearly every real-world scenario. Understanding why each exists — not just what it does — helps you choose correctly instead of guessing.",[10,19,21],{"id":20},"quick-reference","Quick Reference",[23,24,25,50],"table",{},[26,27,28],"thead",{},[29,30,31,35,38,41,44,47],"tr",{},[32,33,34],"th",{},"Octal",[32,36,37],{},"Symbolic",[32,39,40],{},"Owner",[32,42,43],{},"Group",[32,45,46],{},"Other",[32,48,49],{},"Typical Use",[51,52,53,73,92,110,127,144,161,178,195,212],"tbody",{},[29,54,55,59,62,65,68,70],{},[56,57,58],"td",{},"644",[56,60,61],{},"rw-r--r--",[56,63,64],{},"read\u002Fwrite",[56,66,67],{},"read",[56,69,67],{},[56,71,72],{},"Default file permissions",[29,74,75,78,81,84,87,89],{},[56,76,77],{},"755",[56,79,80],{},"rwxr-xr-x",[56,82,83],{},"full",[56,85,86],{},"read\u002Fexecute",[56,88,86],{},[56,90,91],{},"Directories, executable scripts",[29,93,94,97,100,102,105,107],{},[56,95,96],{},"600",[56,98,99],{},"rw-------",[56,101,64],{},[56,103,104],{},"none",[56,106,104],{},[56,108,109],{},"Private files, SSH keys",[29,111,112,115,118,120,122,124],{},[56,113,114],{},"700",[56,116,117],{},"rwx------",[56,119,83],{},[56,121,104],{},[56,123,104],{},[56,125,126],{},"Private directories",[29,128,129,132,135,137,139,141],{},[56,130,131],{},"640",[56,133,134],{},"rw-r-----",[56,136,64],{},[56,138,67],{},[56,140,104],{},[56,142,143],{},"Group-shared config files",[29,145,146,149,152,154,156,158],{},[56,147,148],{},"750",[56,150,151],{},"rwxr-x---",[56,153,83],{},[56,155,86],{},[56,157,104],{},[56,159,160],{},"Group-shared directories",[29,162,163,166,169,171,173,175],{},[56,164,165],{},"664",[56,167,168],{},"rw-rw-r--",[56,170,64],{},[56,172,64],{},[56,174,67],{},[56,176,177],{},"Collaborative files",[29,179,180,183,186,188,190,192],{},[56,181,182],{},"775",[56,184,185],{},"rwxrwxr-x",[56,187,83],{},[56,189,83],{},[56,191,86],{},[56,193,194],{},"Collaborative directories",[29,196,197,200,203,205,207,209],{},[56,198,199],{},"400",[56,201,202],{},"r--------",[56,204,67],{},[56,206,104],{},[56,208,104],{},[56,210,211],{},"Read-only sensitive files",[29,213,214,217,220,222,224,226],{},[56,215,216],{},"444",[56,218,219],{},"r--r--r--",[56,221,67],{},[56,223,67],{},[56,225,67],{},[56,227,228],{},"Immutable public files",[10,230,232],{"id":231},"detailed-breakdown","Detailed Breakdown",[234,235,237],"h3",{"id":236},"_644-the-default-file","644 — The Default File",[239,240,245],"pre",{"className":241,"code":243,"language":244},[242],"language-text","Owner:  rw-  (read + write)\nGroup:  r--  (read only)\nOther:  r--  (read only)\n","text",[246,247,243],"code",{"__ignoreMap":248},"",[15,250,251],{},"This is the most common file permission on Linux systems. The owner can edit; everyone else can read. Web servers use 644 for CSS, JavaScript, images, and HTML files because the server process only needs to read them.",[239,253,257],{"className":254,"code":255,"language":256,"meta":248,"style":248},"language-bash shiki shiki-themes github-light github-dark","chmod 644 index.html style.css app.js\n","bash",[246,258,259],{"__ignoreMap":248},[260,261,264,268,272,276,279],"span",{"class":262,"line":263},"line",1,[260,265,267],{"class":266},"sScJk","chmod",[260,269,271],{"class":270},"sj4cs"," 644",[260,273,275],{"class":274},"sZZnC"," index.html",[260,277,278],{"class":274}," style.css",[260,280,281],{"class":274}," app.js\n",[234,283,285],{"id":284},"_755-the-default-directory","755 — The Default Directory",[239,287,290],{"className":288,"code":289,"language":244},[242],"Owner:  rwx  (full access)\nGroup:  r-x  (read + traverse)\nOther:  r-x  (read + traverse)\n",[246,291,289],{"__ignoreMap":248},[15,293,294,295,298,299,302],{},"Directories need execute permission to be traversed — without ",[246,296,297],{},"x",", you can't ",[246,300,301],{},"cd"," into them or access files inside, even with read permission. 755 is the standard for directories and executable scripts.",[239,304,306],{"className":254,"code":305,"language":256,"meta":248,"style":248},"chmod 755 \u002Fvar\u002Fwww\u002Fhtml\nchmod 755 deploy.sh migrate.py\n",[246,307,308,318],{"__ignoreMap":248},[260,309,310,312,315],{"class":262,"line":263},[260,311,267],{"class":266},[260,313,314],{"class":270}," 755",[260,316,317],{"class":274}," \u002Fvar\u002Fwww\u002Fhtml\n",[260,319,321,323,325,328],{"class":262,"line":320},2,[260,322,267],{"class":266},[260,324,314],{"class":270},[260,326,327],{"class":274}," deploy.sh",[260,329,330],{"class":274}," migrate.py\n",[234,332,334],{"id":333},"_600-private-files","600 — Private Files",[239,336,339],{"className":337,"code":338,"language":244},[242],"Owner:  rw-  (read + write)\nGroup:  ---  (no access)\nOther:  ---  (no access)\n",[246,340,338],{"__ignoreMap":248},[15,342,343],{},"Use 600 for any file that should be invisible to everyone except the owner. The most critical use case is SSH private keys — if your key is readable by anyone else, SSH will refuse to use it.",[239,345,347],{"className":254,"code":346,"language":256,"meta":248,"style":248},"chmod 600 ~\u002F.ssh\u002Fid_rsa\nchmod 600 ~\u002F.env\nchmod 600 ~\u002F.my.cnf\n",[246,348,349,359,368],{"__ignoreMap":248},[260,350,351,353,356],{"class":262,"line":263},[260,352,267],{"class":266},[260,354,355],{"class":270}," 600",[260,357,358],{"class":274}," ~\u002F.ssh\u002Fid_rsa\n",[260,360,361,363,365],{"class":262,"line":320},[260,362,267],{"class":266},[260,364,355],{"class":270},[260,366,367],{"class":274}," ~\u002F.env\n",[260,369,371,373,375],{"class":262,"line":370},3,[260,372,267],{"class":266},[260,374,355],{"class":270},[260,376,377],{"class":274}," ~\u002F.my.cnf\n",[234,379,381],{"id":380},"_700-private-directories","700 — Private Directories",[239,383,386],{"className":384,"code":385,"language":244},[242],"Owner:  rwx  (full access)\nGroup:  ---  (no access)\nOther:  ---  (no access)\n",[246,387,385],{"__ignoreMap":248},[15,389,390],{},"The directory equivalent of 600. Use this for home directories and any directory containing private files.",[239,392,394],{"className":254,"code":393,"language":256,"meta":248,"style":248},"chmod 700 ~\u002F.ssh\nchmod 700 ~\u002Fprivate-projects\n",[246,395,396,406],{"__ignoreMap":248},[260,397,398,400,403],{"class":262,"line":263},[260,399,267],{"class":266},[260,401,402],{"class":270}," 700",[260,404,405],{"class":274}," ~\u002F.ssh\n",[260,407,408,410,412],{"class":262,"line":320},[260,409,267],{"class":266},[260,411,402],{"class":270},[260,413,414],{"class":274}," ~\u002Fprivate-projects\n",[234,416,418],{"id":417},"_640-group-readable-configs","640 — Group-Readable Configs",[239,420,423],{"className":421,"code":422,"language":244},[242],"Owner:  rw-  (read + write)\nGroup:  r--  (read only)\nOther:  ---  (no access)\n",[246,424,422],{"__ignoreMap":248},[15,426,427,428,431],{},"When a service needs to read a config file but the world shouldn't see it. The web server user (e.g., ",[246,429,430],{},"www-data",") is in a group that can read the file, while other users on the system are locked out.",[239,433,435],{"className":254,"code":434,"language":256,"meta":248,"style":248},"chmod 640 \u002Fetc\u002Fnginx\u002Fssl\u002Fssl-cert.pem\nchmod 640 \u002Fvar\u002Fwww\u002F.env\n",[246,436,437,447],{"__ignoreMap":248},[260,438,439,441,444],{"class":262,"line":263},[260,440,267],{"class":266},[260,442,443],{"class":270}," 640",[260,445,446],{"class":274}," \u002Fetc\u002Fnginx\u002Fssl\u002Fssl-cert.pem\n",[260,448,449,451,453],{"class":262,"line":320},[260,450,267],{"class":266},[260,452,443],{"class":270},[260,454,455],{"class":274}," \u002Fvar\u002Fwww\u002F.env\n",[234,457,459],{"id":458},"_750-group-shared-directories","750 — Group-Shared Directories",[239,461,464],{"className":462,"code":463,"language":244},[242],"Owner:  rwx  (full access)\nGroup:  r-x  (read + traverse)\nOther:  ---  (no access)\n",[246,465,463],{"__ignoreMap":248},[15,467,468],{},"For directories that a specific group needs to access but shouldn't be world-readable. Common in multi-user server environments where departments share resources.",[234,470,472],{"id":471},"_664-and-775-collaborative-work","664 and 775 — Collaborative Work",[239,474,477],{"className":475,"code":476,"language":244},[242],"664: rw-rw-r--  (files)\n775: rwxrwxr-x (directories)\n",[246,478,476],{"__ignoreMap":248},[15,480,481],{},"When a team collaborates on files, both the owner and group need write access. The \"other\" group gets read-only or read+execute (for directories). Often paired with SGID on directories so new files inherit the group.",[239,483,485],{"className":254,"code":484,"language":256,"meta":248,"style":248},"chmod 2775 \u002Fvar\u002Fwww\u002Fshared\nfind \u002Fvar\u002Fwww\u002Fshared -type f -exec chmod 664 {} +\n",[246,486,487,497],{"__ignoreMap":248},[260,488,489,491,494],{"class":262,"line":263},[260,490,267],{"class":266},[260,492,493],{"class":270}," 2775",[260,495,496],{"class":274}," \u002Fvar\u002Fwww\u002Fshared\n",[260,498,499,502,505,508,511,514,517,520,523],{"class":262,"line":320},[260,500,501],{"class":266},"find",[260,503,504],{"class":274}," \u002Fvar\u002Fwww\u002Fshared",[260,506,507],{"class":270}," -type",[260,509,510],{"class":274}," f",[260,512,513],{"class":270}," -exec",[260,515,516],{"class":274}," chmod",[260,518,519],{"class":270}," 664",[260,521,522],{"class":274}," {}",[260,524,525],{"class":274}," +\n",[234,527,529],{"id":528},"_400-read-only-sensitive","400 — Read-Only Sensitive",[239,531,534],{"className":532,"code":533,"language":244},[242],"Owner:  r--  (read only)\nGroup:  ---  (no access)\nOther:  ---  (no access)\n",[246,535,533],{"__ignoreMap":248},[15,537,538],{},"Even more restrictive than 600 — the owner can read but not modify. Useful for backed-up credentials that shouldn't be accidentally changed.",[239,540,542],{"className":254,"code":541,"language":256,"meta":248,"style":248},"chmod 400 ~\u002F.ssh\u002Fid_rsa.pub\nchmod 400 \u002Fbackup\u002Fcredentials.gpg\n",[246,543,544,554],{"__ignoreMap":248},[260,545,546,548,551],{"class":262,"line":263},[260,547,267],{"class":266},[260,549,550],{"class":270}," 400",[260,552,553],{"class":274}," ~\u002F.ssh\u002Fid_rsa.pub\n",[260,555,556,558,560],{"class":262,"line":320},[260,557,267],{"class":266},[260,559,550],{"class":270},[260,561,562],{"class":274}," \u002Fbackup\u002Fcredentials.gpg\n",[234,564,566],{"id":565},"_444-immutable-public","444 — Immutable Public",[239,568,571],{"className":569,"code":570,"language":244},[242],"Owner:  r--  (read only)\nGroup:  r--  (read only)\nOther:  r--  (read only)\n",[246,572,570],{"__ignoreMap":248},[15,574,575,576,579],{},"Everyone can read, nobody can write. Use for published logs or documentation that must not be altered after creation. Combine with ",[246,577,578],{},"chattr +i"," for true immutability.",[10,581,583],{"id":582},"server-scenario-quick-reference","Server Scenario Quick Reference",[23,585,586,602],{},[26,587,588],{},[29,589,590,593,596,599],{},[32,591,592],{},"Server Task",[32,594,595],{},"Files",[32,597,598],{},"Directories",[32,600,601],{},"Command",[51,603,604,618,632,647,661],{},[29,605,606,609,611,613],{},[56,607,608],{},"Static website",[56,610,58],{},[56,612,77],{},[56,614,615],{},[246,616,617],{},"find \u002Fvar\u002Fwww -type d -exec chmod 755 {} + && find \u002Fvar\u002Fwww -type f -exec chmod 644 {} +",[29,619,620,623,625,627],{},[56,621,622],{},"SSH config",[56,624,96],{},[56,626,114],{},[56,628,629],{},[246,630,631],{},"chmod 700 ~\u002F.ssh && chmod 600 ~\u002F.ssh\u002Fid_rsa",[29,633,634,637,639,642],{},[56,635,636],{},"Shared project",[56,638,165],{},[56,640,641],{},"2775",[56,643,644],{},[246,645,646],{},"chmod 2775 \u002Fproject && find \u002Fproject -type f -exec chmod 664 {} +",[29,648,649,652,654,656],{},[56,650,651],{},"WordPress uploads",[56,653,58],{},[56,655,77],{},[56,657,658],{},[246,659,660],{},"find \u002Fwp-content\u002Fuploads -type d -exec chmod 755 {} +",[29,662,663,666,668,670],{},[56,664,665],{},"Log directory",[56,667,58],{},[56,669,77],{},[56,671,672],{},"Files auto-created with umask",[10,674,676],{"id":675},"related-guides","Related Guides",[678,679,680,688,694],"ul",{},[681,682,683],"li",{},[684,685,687],"a",{"href":686},"\u002Fguides\u002Fchmod-guide","Chmod Guide",[681,689,690],{},[684,691,693],{"href":692},"\u002Fguides\u002Flinux-file-permissions","Linux File Permissions",[681,695,696],{},[684,697,699],{"href":698},"\u002Fguides\u002Fchmod-recursive-permissions","Setting Recursive Chmod Permissions",[10,701,703],{"id":702},"try-it-yourself","Try It Yourself",[15,705,706],{},"See what each permission set allows at a glance. Toggle read, write, and execute for owner, group, and others — our tool converts between numeric, symbolic, and binary forms instantly.",[15,708,709,710],{},"👉 ",[684,711,713],{"href":712},"\u002Ftools\u002Fchmod-calculator",[714,715,716],"strong",{},"Free Chmod Calculator",[718,719,720],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":248,"searchDepth":320,"depth":320,"links":722},[723,724,725,736,737,738],{"id":12,"depth":320,"text":13},{"id":20,"depth":320,"text":21},{"id":231,"depth":320,"text":232,"children":726},[727,728,729,730,731,732,733,734,735],{"id":236,"depth":370,"text":237},{"id":284,"depth":370,"text":285},{"id":333,"depth":370,"text":334},{"id":380,"depth":370,"text":381},{"id":417,"depth":370,"text":418},{"id":458,"depth":370,"text":459},{"id":471,"depth":370,"text":472},{"id":528,"depth":370,"text":529},{"id":565,"depth":370,"text":566},{"id":582,"depth":320,"text":583},{"id":675,"depth":320,"text":676},{"id":702,"depth":320,"text":703},"2026-05-28","The most-used chmod values (644, 755, 600) explained with real-world server scenarios.","md",{"immutable":743},true,"\u002Fguides\u002Fchmod-common-permission-sets",6,{"title":5,"description":740},"guides\u002Fchmod-common-permission-sets","DmWluLHO2ARk3sPR_aFDeoyjVsQvTt13ICq9jlvODug",1780401332083]