Saya menemukan ini setelah berjalan locate git-shell-commands
cat /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands/README
Program sampel dapat dipanggil melalui git-shell. Tempatkan direktori bernama 'git-shell-commands' di direktori home pengguna yang shell-nya adalah git-shell. Kemudian siapa pun yang masuk karena pengguna tersebut dapat menjalankan executable di direktori 'git-shell-commands'.
Perintah yang diberikan:
bantuan: Mencetak nama-nama perintah yang tersedia. Saat dijalankan secara interaktif, git-shell akan secara otomatis menjalankan 'bantuan' saat startup, asalkan ada.
daftar: Menampilkan repositori kosong yang namanya berakhir dengan ".git" di bawah direktori home pengguna. Tidak ada repositori git lain yang terlihat, meskipun mereka dapat dikloning melalui git-shell. 'daftar' dirancang untuk meminimalkan jumlah panggilan ke git yang harus dilakukan dalam menemukan repositori yang tersedia; jika pengaturan Anda memiliki repositori tambahan yang seharusnya dapat ditemukan pengguna, Anda mungkin ingin memodifikasi 'daftar'.
Jadi saya menjalankan perintah berikut sebagai root:
cp /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands /home/git -R
chown git:developers /home/git/git-shell-commands/ -R
chmod +x /home/git/git-shell-commands/help
chmod +x /home/git/git-shell-commands/list
exit
Saya kemudian dapat menjalankan yang berikut sebagai gitpengguna:
[me@svn ~]$ su git
Password:
Run 'help' for help, or 'exit' to leave. Available commands:
list
git> help
Run 'help' for help, or 'exit' to leave. Available commands:
list
git> list
git> exit
Sekarang saya tidak melihat apa bantuan dan daftar yang baik, tetapi login berhasil. :)
git-shelladalah shell yang dibatasi untuk digunakan hanya untuk fungsi push / pull (yaitugit push,git fetchdangit pull). Itu tidak dimaksudkan untuk menjadi interaktif, jadi Anda tidak harus login di shell interaktif. Anda dapat membuatnya agak interaktif dengan menambahkangit-shell-commandsdirektori di rumah pengguna dan menghubungkan beberapa biner di dalamnya. Tapi itu sangat terbatas (tidak ada biner untukcd, misalnya), jadi alternatif yang lebih baik adalah login sebagairootatausudopengguna yang mampu dan lakukansudo -u git -suntuk mendapatkanbashshell penuh di bawahgitpengguna.