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

Google Cloud VM实例多用户共享代码目录的最佳实践

多用户共享代码目录的最佳实践(GCP Compute Engine场景)

问题背景

我有一台GCP Compute Engine VM实例,/home目录下包含多个独立用户,每个用户都有自己的SSH密钥:

(base) user1@a100-80gb:/home$ ls
user1  user2  user3  user4  user5

我希望创建一个/code目录来管理多个代码库,让所有用户都能访问。请问这种场景下的最佳实践是什么?

我曾考虑把/code目录建在/home下,结构如下:

(base) user1@a100-80gb:/home$ ls
user1  user2  user3  user4  user5 code

但不确定这是不是最优方案,同时疑惑这个/code目录能不能有独立的SSH密钥用于GitHub(或者直接在/code目录下用ssh-gen生成密钥?)

附根目录文件夹列表参考:

(base) user1@a100-80gb:/$ ls
bin   dev  home  lib32  libx32      media  opt   root  sbin  sys  usr
boot  etc  lib   lib64  lost+found  mnt    proc  run   srv   tmp  var

最佳实践方案

1. 目录位置:别放在/home下

/home是用户个人主目录的专属容器,共享资源放在这里不符合Linux文件系统规范。更合理的位置选这两个:

  • /srv/code:/srv专门用于存放服务相关的共享数据,适配代码库场景
  • /opt/code:/opt用于存放可选应用或共享资源,也是合规选择

2. 权限与用户组管理

  • 先创建一个共享用户组,比如devs:
    sudo groupadd devs
    
  • 把所有需要访问/code的用户加入这个组:
    sudo usermod -aG devs user1
    sudo usermod -aG devs user2
    # 其他用户以此类推添加
    
  • 创建共享目录并设置正确权限:
    sudo mkdir /srv/code
    sudo chown root:devs /srv/code
    sudo chmod 2775 /srv/code
    
    这里的2775权限中,2代表setgid位,能确保目录下新建的文件/子目录自动继承devs组权限,保证所有组内用户都能正常访问。

3. SSH密钥的处理(针对GitHub等平台)

共享目录不需要“独立SSH密钥”,Git操作是以执行命令的用户身份进行的,每个用户已有自己的密钥,直接用各自的密钥即可:

  • 用户执行git clone/git push等操作时,Git会自动读取当前用户主目录~/.ssh下的密钥,完全不用在/code目录下单独生成密钥。
  • 如果需要统一使用共享密钥(比如用于CI/CD或机器人账户),可以把密钥放在公共位置(比如/etc/ssh/shared_github_key),然后让用户修改~/.ssh/config,指定访问GitHub时使用这个密钥:
    Host github.com-shared
      HostName github.com
      IdentityFile /etc/ssh/shared_github_key
      User git
    
    之后用户克隆仓库时用git clone git@github.com-shared:username/repo.git即可,同时要确保这个密钥文件的权限是600,组权限设为devs。

4. 额外建议

  • 定期检查用户组成员,确保只有需要的用户能访问共享代码
  • 可以给目录设置磁盘配额,避免单个用户占用过多空间
  • 如果需要更细粒度的权限控制,可使用ACL(访问控制列表):
    sudo setfacl -R -m g:devs:rwx /srv/code
    sudo setfacl -R -m d:g:devs:rwx /srv/code
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:52:42