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 git
pengguna:
[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-shell
adalah shell yang dibatasi untuk digunakan hanya untuk fungsi push / pull (yaitugit push
,git fetch
dangit pull
). Itu tidak dimaksudkan untuk menjadi interaktif, jadi Anda tidak harus login di shell interaktif. Anda dapat membuatnya agak interaktif dengan menambahkangit-shell-commands
direktori 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 sebagairoot
atausudo
pengguna yang mampu dan lakukansudo -u git -s
untuk mendapatkanbash
shell penuh di bawahgit
pengguna.