AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 126716
Accepted
vpetersson
vpetersson
Asked: 2010-03-27 11:46:58 +0800 CST2010-03-27 11:46:58 +0800 CST 2010-03-27 11:46:58 +0800 CST

FreeBSD 上 Git(通过 SSH)的权限问题

  • 772

我们在 FreeBSD 上遇到了 Git 的权限问题。设置相当简单。我们在同一台服务器上有几个不同的存储库。为简单起见,假设它们位于 /git/repo1 和 /git/repo2 中。

每个 repo 都由用户 'git' 和一个自命名的组(例如 repo1)拥有。该 repo 配置了 g+rwX 访问权限。

每个提交到存储库的用户也是 repo 组的成员(例如 repo1)。

Git 存储库都设置了“sharedRepository = group”。

到目前为止一切顺利,所有用户都可以从存储库中签出代码,并且第一个用户可以毫无问题地提交。但是,当下一个用户尝试提交存储库时,他将收到权限错误。

一段时间以来,我们一直在努力解决这个问题,我们设法解决它的唯一方法是在提交之间运行以下脚本(这显然非常不方便):

查找 /git/repo1 -type d -exec chmod g+s {} \;
chmod -R g+rwX /git/repo1
chown -R git:repo1 /git/repo1/
cd /git/repo1
git gc

有人知道问题出在哪里吗?

ssh permissions freebsd git
  • 2 2 个回答
  • 1811 Views

2 个回答

  • Voted
  1. Best Answer
    voretaq7
    2010-03-27T12:10:00+08:002010-03-27T12:10:00+08:00

    在我的脑海中,可能是 umask 问题?

    您是否考虑过用 gitosis ( http://vafer.org/blog/20080115011413 ) 包装 git?我发现它是一种使用 Git 的更愉快的方式(没有权限问题,因为 repo 由一个操作系统用户拥有),并且您可以使用 gitosis 实现的权限是一个有吸引力的奖励。

    • 2
  2. Patrick Gibson
    2010-04-01T14:09:12+08:002010-04-01T14:09:12+08:00

    创建新存储库时,设置文件夹的组所有权,并给它一个粘性位:

    chown git:repo1 /git/repo1

    chmod g+ws /git/repo1

    还要确保您的每个用户都有正确的 umask。您可以在 /etc/login.conf 中设置默认的 umask。在 :default 下查找如下所示的行:

    :umask=002:

    将其更改为:

    :umask=022:

    并运行:

    sudo cap_mkdb /etc/login.conf

    • 0

相关问题

  • 如何最好地设置 ssh 隧道以访问远程网络 (Linux)

  • SSH 和重定向

  • 通过 SSH 会话使用 NET USER 命令拒绝访问

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve