🔥 Brûlez les graisses rapidement. Découvrez comment ! 💪

Linux&Bash Python_Experts

Logo de la chaîne télégraphique blacklinux - Linux&Bash Python_Experts L
Logo de la chaîne télégraphique blacklinux - Linux&Bash Python_Experts
Adresse du canal : @blacklinux
Catégories: Non classé
Langue: Français
Abonnés: 431
Description de la chaîne

Admin : @rayvar

Ratings & Reviews

2.00

2 reviews

Reviews can be left only by registered users. All reviews are moderated by admins.

5 stars

0

4 stars

0

3 stars

1

2 stars

0

1 stars

1


Les derniers messages

2022-05-19 00:54:30 Linux&Bash+Python_Experts pinned a photo
21:54
Ouvert / Commentaire
2022-05-16 13:23:27 https://t.me/Toncoin_airdrop_fa_bot?start=46f04f80e1
31 viewsAlireza, 10:23
Ouvert / Commentaire
2022-05-01 23:18:01
https://www.coinex.com/register?refer_code=6u5kc
243 viewsAlireza, 20:18
Ouvert / Commentaire
2021-07-16 19:41:22 fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to gitserver closed.
در حال حاضر، کاربران همچنان می‌توانند از پورت-فورواردینگ SSH برای دسترسی به هر میزبانی که سرور گیت می‌تواند به آن برسد استفاده کنند. اگر می‌خواهید از این موضوع جلوگیری کنید می‌توانید فایل authorized_keys را اصلاح کنید و آپشن‌های زیر را پیش از هر کلیدی که می‌خواهید محدود شود اضافه کنید:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
نتیجه کار باید چیزی شبیه به این باشد:
$ cat ~/.ssh/authorized_keys
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4LojG6rs6h
PB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4kYjh6541N
YsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9EzSdfd8AcC
IicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myivO7TCUSBd
LQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPqdAv8JggJ
ICUvax2T9va5 gsg-keypair

no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDEwENNMomTboYI+LJieaAY16qiXiH3wuvENhBG...

حالا دستورات شبکه گیت همچنان به خوبی کار خواهند کرد اما کاربران قادر به گرفتن شل نخواهند بود. همانطور که خروجی بیان می‌کند، شما همچنین می‌توانید یک پوشه درون پوشه خانه کاربر git بسازید که دستور git-shell را کمی سفارشی می‌کند. برای مثال، می‌توانید دستوراتی که سرور قبول خواهد کرد را محدود کنید یا می‌توانید پیامی که کاربران در صورت تلاش به استفاده از SSH می‌بینند را سفارشی سازی کنید. برای اطلاعات بیشتر درمورد سفارشی سازی شل git help shell را اجرا کنید.
347 viewsAlireza, 16:41
Ouvert / Commentaire
2021-07-16 19:41:21 4.4 گیت روی سرور - نصب و راه‌اندازی سرور
نصب و راه‌اندازی سرور
اجازه دهید تا گام به گام به راه‌اندازی دسترسی SSH روی سرور بپردازیم. در این مثال شما از متد authorized_keys برای تصدیق هویت کاربرانتان استفاده خواهید کرد. همچنین ما فرض می‌کنیم که از یک توزیع استاندارد لینوکس مانند اوبونتو استفاده می‌کنید.
یادداشت به جای کپی و نصب دستی کلیدهای عمومی، بخش اعظمی از چیزهایی که در اینجا در اینجا توضیح داده شده‌اند را می‌تواند با دستور ssh-copy-id خودکار کرد.
اول یک حساب کاربری git و یک پوشه .ssh برای همان کاربر می‌سازید.
$ sudo adduser git
$ su git
$ cd
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

بعد از آن، لازم است که چند کلید عمومی SSH از توسعه‌دهندگان را به فایل authorized_keys کاربر git اضافه کنید. فرض کنیم شما چند کلید عمومی قابل اعتماد دارید و آن را در فایل‌های موقتی ذخیره کرده‌اید. مجدداً، کلید عمومی چیزی شبیه به این است:
$ cat /tmp/id_rsa.john.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L
ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k
Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez
Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv
O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq
dAv8JggJICUvax2T9va5 gsg-keypair
شما آن‌ها را به انتهای فایل authorized_keys در پوشه .ssh کاربر git اضافه می‌کنید:
$ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys
حالا می‌توانید با اجرای دستور git init همراه با آپشن --bare یک مخزن خالی، یا در واقع بدون پوشه کاری، برای آن‌‌ها راه‌اندازی کنید:
$ cd /srv/git
$ mkdir project.git
$ cd project.git
$ git init --bare
Initialized empty Git repository in /srv/git/project.git/
سپس، John، Josie یا Jessica می‌توانند با افزودن آن به عنوان یک ریموت و ارائه یک برنچ، اولین نسخه از پروژه خود را به آن مخزن پوش کنند. توجه داشته باشید که هر زمان بخواهید پروژه جدیدی بسازید حتماً شخصی باید به شل آن سیستم وصل شود و یک مخزن بِر بسازد. حالا بیایید از gitserver به عنوان نام هاست (Hostname) سروری که روی آن مخزن و کاربر git را راه‌اندازی کردیم استفاده کنیم. اگر آن را به صورت داخلی کار می‌کنید و DNS برای`gitserver` راه‌اندازی می‌کنید تا به آن سرور اشاره کند، می‌توانید از دستورات، تقریباً، همانگونه که هستند استفاده کنید (با فرض اینکه myproject پروژه‌ای از پیش موجود با فایل‌هایی در خود است).
# on John's computer
$ cd myproject
$ git init
$ git add .
$ git commit -m 'Initial commit'
$ git remote add origin git@gitserver:/srv/git/project.git
$ git push origin master
حال، دیگران می‌توانند به راحتی آنرا کلون کنند یا تغییرات را به همین سادگی به سرور پوش کنند:
$ git clone git@gitserver:/srv/git/project.git
$ cd project
$ vim README
$ git commit -am 'Fix for README file'
$ git push origin master
بدین طریق شما سریعاً می‌توانید سرور گیتی با قابلیت خواندن/نوشتن راه‌اندازی کنید و آن در اختیار توسعه‌دهندگان قرار دهید.
باید به این نکته توجه کنید که در حال حاضر تمامی کاربران می‌توانند به داخل سرور ورود کنند و به عنوان کاربر git یک شل در دست بگیرند. اگر می‌خواهید از این موضوع جلوگیری کنید، می‌بایست شل را در داخل /etc/passwd به چیز دیگری تغییر دهید.
شما به سادگی می‌توانید حساب کاربر git را فقط به فعالیت‌های مربوط به گیت و با ابزار شل محدودی به نام git-shell که با گیت می‌آید محدود کنید. اگر شما این ابزار را به عنوان شل ورودی حساب کاربری git تنظیم کنید، آن حساب کاربری نمی‌تواند دسترسی شل معمولی به سرور شما داشته باشد. برای انجام این کار، باید ابتدا مسیر کامل دستور git-shell را به /etc/shells اضافه کنید:
$ cat /etc/shells # see if git-shell is already in there. If not...
$ which git-shell # make sure git-shell is installed on your system.
$ sudo -e /etc/shells # and add the path to git-shell from last command
حالا می‌توانید با استفاده از chsh -s شل هر کاربر را تغییر دهید:
$ sudo chsh git -s $(which git-shell)
اکنون کاربر git همچنان می‌تواند از SSH برای پوش و پول از مخازن گیت استفاده کند اما نمی‌تواند به شل دستگاه وصل شود. اگر یکبار امتحان کنید، پیغام رد درخواستی مانند پیغام پایین را مشاهده خواهید کرد:
$ ssh git@gitserver
212 viewsAlireza, 16:41
Ouvert / Commentaire
2021-07-16 19:34:58 ابتدا از شما می‌پرسد که کلید را کجا می‌خواهید ذخیره کنید (.ssh/id_rsa)، سپس دو بار از شما یک رمز (Passphrase) می‌خواهد، که می‌توانید آنرا خالی بگذارید اگر مایل نیستید هر بار که از کلید استفاده می‌کنید رمز وارد کنید. هرچند، اگر از رمزی استفاده می‌کنید، مطمئن شوید که از آپشن -o در دستور استفاده می‌کنید؛ این کار کلید خصوصی را به نحوی ذخیره می‌کند که در برابر حملات شکستن رمز Brute-force مقاوم‌تر است که فرمت پیش‌فرض فایل کلید خصوصی است. همچنین می‌توانید از ابزار ssh-agent برای اجتناب از هر بار رمزعبور وارد کردن رمز عبور استفاده کنید.
حالا، هر کاربر باید این کار را انجام دهد و کلید عمومی خود را به شما یا هرکسی که سرور گیت را مدیریت می‌کند ارسال کند (با فرض اینکه شما از سرور SSH استفاده می‌کند که نیازمند کلیدهای عمومی است). تمام کاری که آنها باید انجام دهند کپی کردن محتویات فایل .pub و ایمیل کردن آن به شما است. کلید عمومی چیزی شبیه به این است:
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

برای آموزش عمیق‌تر درباره ساختن کلید SSH در سیستم‌عامل‌‌های مختلف، به صفحه راهنمای کلیدهای SSH در گیت‌هاب به آدرس https://help.github.com/articles/generating-ssh-keys مراجعه کنید
147 viewsAlireza, 16:34
Ouvert / Commentaire
2021-07-16 19:34:33 4.3 گیت روی سرور - ساختن کلید عمومی SSH
ساختن کلید عمومی SSH
بسیاری از سرور‌های گیت به وسیله کلید عمومی SSH تصدیق هویت می‌کنند. برای تهیه کردن یک کلید عمومی، هر کاربر در سیستمتان، در صورتی که ندارد، ملزم است یکی بسازد. این فرایند در همهٔ سیستم‌عامل‌ها یکسان است. اول، باید اطمینان حاصل کنید که از قبل کلید کلیدی ندارید. به صورت پیش فرض، کلید SSH هر کاربر در پوشه ~/.ssh ذخیره‌ می‌شود. شما می‌توانید به سادگی با رفتن به آن پوشه و لیست کردن محتویات آن را بررسی کنید:
$ cd ~/.ssh
$ ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
شما به دنبال یک جفت فایل با نام‌هایی شبیه به id_dsa یا id_rsa و فایلی مشابه با پسوند .pub هستید. فایل .pub کلید عمومی شما است و فایل دیگر کلید خصوصی نظیر آن است. اگر این فایل‌ها (و یا حتی پوشه .ssh) را ندارید، می‌توانید آن‌ها را با اجرای برنا‌مه‌ای به نام ssh-keygen بسازید، که همراه پکیج SSH در سیستم‌‌عامل‌های لینوکس/مک و همراه «گیت برای ویندوز» ارائه می‌شود:
$ ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local
133 viewsAlireza, 16:34
Ouvert / Commentaire
2021-07-16 19:33:58 راه‌اندازی‌های کوچک
اگر شما گروه کوچکی هستید یا فقط درحال امتحان گیت در سازمانتان هستید و تعداد کمی توسعه‌دهنده دارید، برای شما خیلی چیزها می‌تواند ساده باشند. یکی از پیچیده‌ترین جنبه‌های راه‌اندازی سرور گیت مدیریت کاربران‌ است. اگر شما بخواهید بعضی از مخزن‌ها، برای کاربران مشخصی فقط خواندنی و برای دیگران نوشتنی/خواندنی باشند، مدیریت و تعیین دسترسی و سطح‌ دسترسی‌ها می‌تواند کمی سخت‌تر باشد.
دسترسی SSH
اگر سروری دارید که همهٔ توسعه‌دهندگان شما از قبل به آن دسترسی SSH دارند، عموماً راحت‌ترین جا برای راه‌اندازی اولین مخزنتان است، چرا که تقریباً هیچ‌کاری نیاز نیست انجام دهید (همانطور که در بخش آخر درباره آن گفته بودیم). اگر انواع پیچیده‌تری از مجوز‌های کنترل دسترسی بر روی مخزنتان می‌خواهید، می‌توانید آن‌ها را به وسیله مجوز‌های معمولی فایل‌سیستم در سیستم‌عامل سرور خود کنترل کنید.
اگر می‌خواهید مخزنتان را در سروری قرار دهید که هیچ حساب کاربری برای هیچ یک از اعضای تیم شما که می‌خواهید به آن‌ها دسترسی نوشتن اعطا کنید ندارد، باید برای آن‌ها دسترسی SSH راه‌اندازی کنید. ما فرض می‌کنیم که اگر شما سروری دارید که می‌خواهید با آن این کار را کنید، از قبل سرور SSH نصب شده دارید و نحوه دسترسی شما به سرور هم همین است.
چندین راه وجود دارد که می‌توانید از طریق آنها اجازه دسترسی به هر شخص در تیمتان بدهید. اول راه‌اندازی حساب‌های کاربری

برای همه‌ است که ساده است، اما می‌تواند دست‌وپاگیر باشد. ممکن است نخواهید هربار دستور adduser یا دستور جایگزین
احتمالی useradd را اجرا کنید و مجبور به تنظیم رمزهای عبور موقتی برای هر کاربر جدید باشید.
دومین روش ساخت یک حساب «git» واحد بر روی دستگاه، درخواست دریافت کلید SSH عمومی از هر کاربری که دسترسی نوشتن دارد و اضافه کردن آن کلید به فایل ~/.ssh/autorized_keys آن حساب جدید «git» است. پس از این، همه قادر به دسترسی به آن ماشین به وسیله همان اکانت «git» هستند. این کار به هیچ وجه هیچ تأثیری بر روی اطلاعات کامیت نخواهد داشت — کاربر SSH که از طریق آن متصل هستید هیچ تأثیری بر کامیت‌هایی که شما ضبط کرده‌اید نمی‌گذارد.
راه دیگری که می‌توانید بروید این است که سرور SSH خود را وادار به احراز هویت از یک سرور LDAP یا نوعی دیگر از منابع تصدیق هویت متمرکزی کنید که شاید از قبل راه‌اندازی کرده‌اید. تا زمانی که هر کاربر بتواند به دستگاه دسترسی شل داشته باشد، هر مکانیزم تصدیق هویت SSH دیگری که می‌توانید به آن فکر کنید باید کار کند.
124 viewsAlireza, 16:33
Ouvert / Commentaire
2021-07-16 19:33:37 حالا می‌بینید که گرفتن یک مخزن گیت، ساخت نسخه‌ بِر و قرار دادن آن روی سروری که شما و مشارکت‌ کنندگان به آن دسترسی دارید، چقدر ساده است. اکنون آماده هستید تا بر روی یک پروژه همکاری کنید.
خیلی مهم است که به خاطر داشته باشید که این به معنای واقعی کلمه تمام چیزی هست که نیاز دارید تا یک سرور گیت کاربردی راه‌اندازی کنید که چندین کاربر به آن دسترسی دارند — فقط حساب‌هایی با قابلیت SSH به سرور اضافه کنید و مخزن بِر را جایی بگذارید تا همهٔ کاربران دسترسی خواندن و نوشتن به آن داشته باشند. حالا شما آماده کار هستید — هیچ کار دیگری نیاز نیست.
در چند قسمت بعدی، خواهید دید که نحوه گسترش راه‌اندازی‌های پیچیده‌تر چگونه است. این بحث شامل مجبور نبودن به ساخت حساب‌های کاربری به ازای هر کاربر، اضافه کردن دسترسی خواندن عمومی به مخزن‌ها، راه‌اندازی رابط‌های کاربری وب و بیشتر خواهد بود. با این حال، به خاطر داشته باشید که تمام چیزی که برای مشارکت با تعدادی کمی از افراد بر روی یک پروژه خصوصی لازم دارید، یک مخزن بِر و یک سرور SSH است.
125 viewsAlireza, 16:33
Ouvert / Commentaire
2021-07-16 19:33:10 اگر یک کاربر با SSH به سرور وارد شود و دسترسی نوشتن به پوشه /srv/git/my_project.git داشته باشد، به طور خودکار دسترسی پوش نیز خواهد داشت.
اگر دستور git init را با آپشن --shared اجرا کنید،‌ گیت به طور خودکار دسترسی‌های نوشتن گروه را به مخزن اضافه خواهد کرد. توجه داشته باشید که با اجرای این دستور، شما هیچ کامیت، رف، و… دیگری را نابود نخواهید کرد:
$ ssh user@git.example.com
$ cd /srv/git/my_project.git
$ git init --bare --shared
121 viewsAlireza, 16:33
Ouvert / Commentaire