'\" t .\" Title: git-shell .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: Git Manual .\" Source: Git 2.55.0 .\" Language: Persian .\" .TH "GIT\-SHELL" "1" "2026\-06\-29" "Git 2\&.55\&.0" "Git Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" git-shell \- پوسته ورود محدود برای دسترسی امن فقط-گیت از طریق SSH .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIchsh\fR \-s $(command \-v git\-shell) \fIgit clone\fR \fB@localhost:/path/to/repo\&.git\fR \fIssh\fR \fB@localhost\fR .fi .sp .SH "توضیحات (DESCRIPTION)" .sp این یک پوسته ورود برای حساب‌های کاربری SSH است تا دسترسی محدود به گیت را فراهم کند\&. این پوسته تنها اجازه اجرای دستورات سمت سرور گیت که قابلیت pull/push را پیاده‌سازی می‌کنند، به همراه دستورات سفارشی موجود در یک زیردایرکتوری با نام \fBgit\-shell\-commands\fR در دایرکتوری خانگی کاربر را می‌دهد\&. .SH "دستورها (COMMANDS)" .sp دستور \fIgit shell\fR دستورات زیر را پس از گزینه \fB\-c\fR می‌پذیرد: .PP \fIgit receive\-pack \fR, \fIgit upload\-pack \fR, \fIgit upload\-archive \fR .RS 4 دستور سمت سرور متناظر را برای پشتیبانی از درخواست \fIgit push\fR، \fIgit fetch\fR یا \fIgit archive \-\-remote\fR کلاینت فراخوانی می‌کند\&. .RE .PP \fIcvs server\fR .RS 4 شبیه‌سازی یک سرور CVS\&. به \fBgit-cvsserver\fR(1) مراجعه کنید\&. .RE .sp اگر دایرکتوری \fB~/git\-shell\-commands\fR وجود داشته باشد، \fIgit shell\fR دستورات سفارشی دیگر را نیز با اجرای "\fBgit\-shell\-commands/\fR\fI\fR \fI\fR" از دایرکتوری خانگی کاربر مدیریت خواهد کرد\&. .SH "استفاده تعاملی (INTERACTIVE USE)" .sp به‌طور پیش‌فرض، دستورات بالا تنها با گزینه \fB\-c\fR قابل اجرا هستند؛ این پوسته تعاملی نیست\&. .sp اگر دایرکتوری \fB~/git\-shell\-commands\fR وجود داشته باشد، \fIgit shell\fR می‌تواند به‌صورت تعاملی (بدون هیچ آرگومانی) نیز اجرا شود\&. اگر دستور \fBhelp\fR در دایرکتوری \fBgit\-shell\-commands\fR موجود باشد، برای ارائه نمای کلی از اقدامات مجاز به کاربر اجرا می‌شود\&. سپس اعلان "git> " نمایش داده می‌شود که در آن می‌توان هر یک از دستورات موجود در دایرکتوری \fBgit\-shell\-commands\fR را وارد کرد، یا برای بستن اتصال دستور \fBexit\fR را وارد نمود\&. .sp به‌طور کلی این حالت به‌عنوان یک رابط مدیریتی استفاده می‌شود تا به کاربران امکان دهد مخازنی را که به آن‌ها دسترسی دارند فهرست کنند، مخازن را ایجاد، حذف یا تغییر نام دهند، یا توضیحات و مجوزهای دسترسی مخزن را ویرایش کنند\&. .sp اگر دستور \fBno\-interactive\-login\fR وجود داشته باشد، آن دستور اجرا شده و پوسته تعاملی متوقف می‌شود\&. .SH "مثال‌ها (EXAMPLES)" .sp برای غیرفعال کردن ورودهای تعاملی و نمایش پیام خوش‌آمدگویی به‌جای آن: .sp .if n \{\ .RS 4 .\} .nf $ chsh \-s /usr/bin/git\-shell $ mkdir $HOME/git\-shell\-commands $ cat >$HOME/git\-shell\-commands/no\-interactive\-login <<\eEOF #!/bin/sh printf \*(Aq%s\en\*(Aq "Hi $USER! You\*(Aqve successfully authenticated, but I do not" printf \*(Aq%s\en\*(Aq "provide interactive shell access\&." exit 128 EOF $ chmod +x $HOME/git\-shell\-commands/no\-interactive\-login .fi .if n \{\ .RE .\} .sp .sp برای فعال کردن دسترسی git\-cvsserver (که عموماً باید مثال \fBno\-interactive\-login\fR بالا را به‌عنوان پیش‌نیاز داشته باشد، زیرا ایجاد دایرکتوری git\-shell\-commands ورودهای تعاملی را مجاز می‌سازد): .sp .if n \{\ .RS 4 .\} .nf $ cat >$HOME/git\-shell\-commands/cvs <<\eEOF if ! test $# = 1 && test "$1" = "server" then echo >&2 "git\-cvsserver only handles \e"server\e"" exit 1 fi exec git cvsserver server EOF $ chmod +x $HOME/git\-shell\-commands/cvs .fi .if n \{\ .RE .\} .sp .SH "همچنین ببینید (SEE ALSO)" .sp ssh(1), \fBgit-daemon\fR(1), contrib/git\-shell\-commands/README .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1)