You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VPS中sudo创建文件目录默认权限为x00是否正常及如何修改

问题解答

该权限是否为默认正常行为

  • 这属于发行版默认配置下的正常预期行为,和sudo本身无关,由root用户的umask参数决定。
  • 绝大多数Linux发行版为了安全,会将root用户的默认umask设为0077,而普通用户的umask通常为002或022。umask的作用是屏蔽新建文件/目录的对应权限位:
    • 新建目录默认基础权限为777,减去umask值后最终权限为777 - 0077 = 700,仅root用户拥有读写执行权限
    • 新建文件默认基础权限为666,减去umask值后最终权限为666 - 0077 = 600,仅root用户拥有读写权限
  • 你使用sudo执行命令时会切换为root身份,自然会继承root的umask配置,因此出现普通用户无法访问新建资源的情况。

是否可以修改默认权限规则

可以按需修改,分为临时修改和永久修改两类方案:

临时修改(单次生效,更安全)

  • 创建目录时直接指定权限:sudo mkdir -m 755 目标目录路径
  • 创建文件时直接指定权限:sudo install -m 644 /dev/null 目标文件路径
  • 也可以在执行命令前临时指定umask:sudo umask 022 && 要执行的命令

永久修改(全局生效,需注意安全风险)

方案1:修改root用户的默认umask

编辑root用户的配置文件/root/.bashrc或/root/.profile,添加一行配置:

umask 022

修改后执行source /root/.bashrc即可生效。如果需要非登录场景的sudo命令也生效,可修改/etc/login.defs中的UMASK参数为022。

方案2:修改sudo的默认umask配置

必须使用visudo命令编辑sudoers配置(避免语法错误导致sudo权限失效),添加以下任意一行配置:

  • 固定sudo的默认umask为022:Defaults umask = 022
  • 让sudo完全继承当前普通用户的umask:Defaults umask_override

注意:将默认umask从0077调整为022后,所有新建的root权限文件/目录会对系统内所有用户开放读权限,如果服务器存在其他不受信任的用户,不建议修改全局配置,优先使用单次指定权限的方案更安全。


内容的提问来源于stack exchange,提问作者Paul Knowler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:48:03