Saya memiliki repositori git yang di-host di server SunOS saya, yang saya gunakan dari jarak jauh melalui ssh
git clone ssh://[email protected]/path/to/git
Sekarang saya perlu menambahkan lebih banyak pengguna untuk dapat mengakses repositori itu, tetapi tidak yakin bagaimana caranya.
Saya telah menambahkan satu testUser ke ssh, tapi sepertinya saya tidak bisa membatasi hak pengguna untuk hanya menggunakan git.
testUser dapat melakukan ssh dan menelusuri seluruh server.
Bagaimana saya bisa membuat pengguna yang hanya dapat mengakses git dari jarak jauh, untuk mengkloning / menarik / mendorong dll ...
Terima kasih
sumber
Anda pada dasarnya memiliki dua opsi.
Seperti yang disebutkan oleh topdog, saat Anda membuat pengguna di server, atur shell mereka ke git-shell ( entri buku di sini ). Ini akan memungkinkan pengguna untuk masuk melalui SSH, tetapi alih-alih menjalankan shell normal, fitur lengkap (misalnya sh, bash, dll.) Ia akan berjalan, git-shell, yang hanya menyediakan akses ke fungsionalitas git.
Atau, Anda dapat membuat repositori Anda tersedia melalui protokol lain, seperti TCP (menggunakan git-deamon ) atau HTTP / HTTPS. Saya hanya merekomendasikan skenario seperti itu untuk akses hanya baca.
Anda menyebutkan ingin mendukung fungsionalitas 'push' untuk pengguna Anda, jadi Anda harus benar-benar menggunakan opsi # 1.
sumber
Anda perlu mengganti shell mereka menjadi git-shell, yang hanya akan memberi mereka akses ke fungsi git saja.
sumber
Cara lain untuk melakukannya adalah dengan membatasi akses pengguna dalam ssh.
( http://prefetch.net/blog/index.php/2006/09/05/limiting-access-to-openssh-directives/ )
Contohnya hanya dengan menggunakan hanya satu pengguna, tetapi jika pengguna berada di grup yang sama Anda dapat memfilternya dengan menggunakan arahan grup. Sesuatu seperti
sumber