Самый простой способ заключить пользователей в тюрьму за git

Я хотел бы создать пару учетных записей пользователей на моем сервере таким образом, чтобы пользователи могли просматривать определенный репозиторий git. В идеале пользователь не сможет получить доступ к оболочке или скопировать какие-либо файлы, кроме git-репо.

И в идеале это тоже не займет больше 3 минут:)

Я использую старую установку Gentoo.

2 ответа

Это можно сделать несколькими способами.

  1. Если это относится только к git, вы можете установить gitolite и выполнять все действия ACL из репозитория gitolite-admin.

  2. Настройте SFTP тюрьму с помощью SSH. Вы можете контролировать каждый бинарный файл, который вы хотели бы, чтобы пользователи использовали.

    groupadd sftpusers
    useradd -g sftpusers -d /jailed netusers
    

    Изменить файл SSHD: /etc/ssh/sshd_config

    Subsystem       sftp    internal-sftp
    Match Group sftpusers
       ChrootDirectory /sftp/%u
       ForceCommand internal-sftp
    

    А потом

    mkdir /jailed/netusers
    chown netusers.sftpusers /jailed/netusers
    service sshd restart
    
  3. Создайте виртуальную машину, предназначенную для таких пользователей, и установите git repo в качестве RO, чтобы никто ничего не мог изменить.

Наконец, что не менее важно, ни один из них не может быть сделан за 3 минуты. Я думаю, что это займет у вас 2-3 минуты, чтобы прочитать:-)

Я собираюсь предложить альтернативную вещь, так как вы сосредоточены на аутентификации и тянете: git обслуживается через HTTPS с базовой аутентификацией. Ограничивая HTTPS, вы предотвращаете открытое раскрытие паролей.

См. http://maymay.net/blog/2008/08/08/how-to-use-http-basic-authentication-with-git/ для получения дополнительной информации и просто добавьте базовую настройку SSL из любого другого учебного пособия.

Другие вопросы по тегам