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

GCP Linux启动脚本如何为所有用户授予目录及文件权限?

问题分析与解决方案

问题根源

GCP VM的启动脚本默认以root身份执行,所以你创建的/home/example_user/、test子目录和.env文件的所有者都是root。你之前仅修改了父目录的权限,但子目录和文件的权限未对普通SSH用户开放,导致执行nano /home/example_user/test/.env时提示权限不足。

正确的启动脚本配置

根据需求提供两种方案:

方案1:开放所有用户的完整权限(适合测试场景)

直接递归给目录和所有文件设置全权限,确保任何用户都能读写操作:

# -p参数自动创建嵌套目录,避免报错
mkdir -p /home/example_user/test
echo "hello world" >> /home/example_user/test/.env
# 递归设置所有用户对该目录下的文件/子目录拥有读写执行权限
chmod -R 777 /home/example_user/

方案2:更安全的权限配置(生产环境推荐)

将目录和文件的所有者改为你的SSH登录用户(假设用户名为example_user),同时设置合理的权限:

mkdir -p /home/example_user/test
echo "hello world" >> /home/example_user/test/.env
# 递归将目录及所有内容的所有者/组设置为SSH登录用户
chown -R example_user:example_user /home/example_user/
# 设置目录权限:用户可读写执行,其他用户仅能查看
chmod -R 755 /home/example_user/
# 单独给.env文件设置用户可读写、其他用户只读的权限
chmod 644 /home/example_user/test/.env

为什么之前的命令无效?

  • chmod a+x仅添加了执行权限,普通用户需要对.env有读权限才能用nano打开;
  • chmod -R a+x给所有文件加了执行权限,但普通文本文件不需要执行权限,反而缺少必要的读权限;
  • 未处理子目录test和.env文件的所有者问题,即使父目录开放权限,root所有的文件依然会限制普通用户访问。

内容的提问来源于stack exchange,提问作者Matt - Block-Farms.io

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:18:29