【问题标题】:How does Gitolite check user read/write permissions?Gitolite 如何检查用户的读/写权限?
【发布时间】:2013-04-02 00:07:43
【问题描述】:

Gitolite 如何检查当前用户是否拥有给定存储库的写/读权限?这是由自定义外壳完成的吗?如果是,那么它是如何工作的?

【问题讨论】:

    标签: git permissions gitolite


    【解决方案1】:

    它使用ssh forced command mechanism 调用gitolite-shell 脚本。

    Gitolite 通过在 ~git/ssh/authorized_keys 中添加类似于以下内容的行来注册用户:

    command="/devit_home/users/vobadm/gitpoc/ce7/gitolite/bin/gitolite-shell gitoliteadm",no-port-forwarding,no-X11-for        warding,no-agent-forwarding,no-pty ssh-rsa AAAAB3N
    

    用户 ID 直接从公钥的名称派生而来。

    更多信息,请参阅“How do programs like gitolite work?”。

    读/写权限是declared in the gitolite.conf file

    gitolite 的大部分功能都在 conf/gitolite.conf 文件中,该文件指定了对 repos 的详细访问控制。
    除了添加用户之外的一切都发生在这个文件中。

        @staff              =   dilbert alice           # line 1
        @projects           =   foo bar                 # line 2
    
        repo @projects baz                              # line 3
            RW+             =   @staff                  # line 4
            -       master  =   ashok                   # line 5
            RW              =   ashok                   # line 6
            R               =   wally                   # line 7
    

    【讨论】:

    • 谢谢。我只是在尝试编写纯 shell,我自己的 Git 权限服务器,它将在 Redis 上运行。它将被用作网络应用程序部署工具,我正在烦恼如何实现它:)
    • @ŁukaszNiemier 你会使用 ssh 还是 https 访问?
    • 我认为它只会是 SSH。但也许将来它将被提取为独立工具(现在它将在我的Puppet module 中)。然后也许我也通过 HTTP 添加身份验证。
    • @ŁukaszNiemier 好的,在这种情况下,强制命令是相关的。但是您可以将 Gitolite 与任何能够验证用户身份的机制相关联(并调用 gitolite-shell)。 Gitolite 只是一个授权层,它不进行身份验证:gitolite.com/gitolite/auth.html。在stackoverflow.com/questions/9339272/… 上查看该解释的另一个版本。
    猜你喜欢
    • 2016-04-23
    • 1970-01-01
    • 2013-04-28
    • 2015-09-04
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多