خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه استفاده از رمزهای عبور رمزگذاری شده در شل اسکریپت در لینوکس

اسکریپت های Shell می توانند در زمان و تلاش شما صرفه جویی کنند، اما اگر از رمزهای عبور خود محافظت نکنید، ممکن است یک مسئولیت باشد. در اینجا نحوه ایمن ماندن آورده شده است.

اسکریپت های Bash بخش مهمی از کار یک مدیر سیستم هستند. آنها به شما این امکان را می دهند که کارهای روزمره و حیاتی را خودکار کنید.

یکی از بهترین چیزهایی که در مورد اسکریپت ها وجود دارد این است که آنها می توانند به طور مستقل و بدون دخالت انسان اجرا شوند، اما گاهی اوقات انجام خودکار کارهایی که نیاز به رمز عبور کاربر دارند می تواند چالش برانگیز باشد. بیایید ببینیم چگونه می‌توانید اسکریپت‌هایی را که نیاز به رمز عبور دارند بدون به خطر انداختن امنیت، به طور ایمن خودکار کنید.

ایجاد یک اسکریپت ساده

بیایید فرض کنیم که می‌خواهید یک اسکریپت ساده ایجاد کنید که از پوشه اصلی لینوکس شما در یک مکان راه دور پشتیبان‌گیری کند تا در صورت از دست رفتن داده‌ها، بتوانید به راحتی اطلاعات خود را بازیابی کنید.

با ایجاد یک فایل اسکریپت Bash در پوشه اصلی خود، با استفاده از دستور لمسی یا هر روش دیگری شروع کنید و نام آن را backup_home.sh بگذارید. با خیال راحت از هر نام و دایرکتوری دلخواه خود استفاده کنید.

این اسکریپت از دستور rsync، یک ابزار قدرتمند کپی فایل، برای پشتیبان‌گیری از تمام فایل‌های فهرست اصلی محلی شما در یک سرور راه دور استفاده می‌کند.

محتوای اسکریپت زیر را کپی کرده و در فایل Bash خود قرار دهید. به یاد داشته باشید که کاربر جان را با نام صحیح کاربر خانگی محلی خود جایگزین کنید. همچنین نام کاربری و آدرس IP صحیح را برای سرور راه دور ارائه دهید.

#!/bin/bash
#Copy data to a remote server
rsync -avl --mkpath /home/john user_name@remote_server/home/Backup

اگر سرور راه دور برای آزمایش ندارید، می توانید به سادگی VirtualBox را نصب کرده و یک VM را روی دستگاه محلی خود راه اندازی کنید. از مهمان VM به عنوان سرور راه دور خود استفاده کنید.

مطلب مرتبط:   Marble: یک جایگزین منبع باز Google Earth برای لینوکس

فایل را ذخیره کنید. برای اجرای اسکریپت باید با استفاده از دستور sudo chmod 755 مجوز اجرا را به آن بدهید. همه کاربران می توانند اسکریپت را اجرا کنند اما فقط کاربران sudo می توانند فایل را تغییر دهند.

در نهایت، اسکریپت Bash را از ترمینال با استفاده از دستور زیر اجرا کنید:

./backup_home.sh

هر زمان که این اسکریپت را اجرا می کنید، از شما خواسته می شود رمز عبور سرور راه دور را وارد کنید. اگر می خواهید اسکریپت را بدون دخالت انسان اجرا کنید، مانند زمانی که از Cron استفاده می کنید، این ایده آل نیست.

ورود خودکار رمز عبور

sshpass، یک ارائه‌دهنده رمز عبور غیر تعاملی، را روی رایانه شخصی محلی خود یا رایانه‌ای که اسکریپت را از آن اجرا می‌کنید، نصب کنید.

در توزیع های مبتنی بر دبیان

اگر در توزیع مبتنی بر دبیان مانند Ubuntu، Pop!_OS و Lubuntu هستید:

sudo apt update && sudo apt install sshpass

در RHEL و Fedora

dnf install sshpass

پس از نصب sshpass اسکریپت را طوری تغییر دهید که به شکل زیر باشد.

#!/bin/bash
#Copy data to a remote server
sshpass -p "yourpassword" rsync -avl --mkpath /home/john user_name@remote_server/home/Backup

در اینجا رمز عبور را به صورت متن ساده ارائه می دهید. بدیهی است که این راه ایده آل نیست، زیرا ایمن نیست و تمرین خوبی نیست. اگر فیلمنامه در دستان اشتباهی قرار بگیرد، دچار مشکل شدید.

برای ایجاد امنیت بیشتر، از GnuPG، یک ابزار رمزگذاری ایمن و منبع باز استفاده می کنیم.

رمزگذاری رمز عبور شما

GnuPG به طور پیش‌فرض روی اکثر سیستم‌های لینوکس نصب می‌شود، اما در صورتی که روی سیستم شما نصب نشده باشد، در اینجا نحوه نصب GnuPG آورده شده است.

مطلب مرتبط:   رمزگذاری AES-256 چیست؟ چگونه کار می کند؟

با استفاده از دستور touch .secrets یک فایل مخفی به نام Secrets ایجاد کنید. از آنجایی که ما فایل را به صورت پیش‌فرض به عنوان یک اقدام امنیتی مخفی کرده‌ایم، در اینجا نحوه مشاهده فایل‌های مخفی در لینوکس آورده شده است.

در فایل Secrets رمز عبور کامپیوتر راه دور خود را وارد کرده و آن را ذخیره کنید.

سپس با استفاده از دستور gpg فایل را رمزگذاری کنید.

sudo gpg -c .secrets

از شما خواسته می شود که یک عبارت عبور امن و قوی برای باز کردن فایل رمزگذاری شده وارد کنید.

GnuPG یک فایل جدید با پسوند .gpg که به نام فایل قدیمی اضافه شده است ایجاد می کند. نام فایل جدید شما اکنون باید secrets.gpg باشد، با این فرض که از نام فایل Secrets استفاده کرده اید.

اگر محتوای Secrets.gpg را با استفاده از دستور cat مشاهده کنید، متنی مبهم برای شما نمایش داده می شود که نشان می دهد رمز عبور شما رمزگذاری شده است.

برای مشاهده محتویات فایل به صورت متن ساده، باید آن را با استفاده از دستور زیر رمزگشایی کنید (از شما خواسته می شود رمز عبوری را که در هنگام رمزگذاری تعیین کرده اید وارد کنید):

gpg -dq secrets.gpg

استفاده از رمز عبور رمزگذاری شده در اسکریپت شما

برای استفاده از رمز عبور رمزگذاری شده در اسکریپت، اسکریپت را به صورت زیر به روز کنید:

#!/bin/bash
#Copy data to a remote server
gpg -dq secrets.gpg | sshpass rsync -avl --mkpath /home/john user_name@remote_server/home/Backup

اسکریپت های پشتیبان را دوباره اجرا کنید و این بار رمز عبور از شما خواسته نمی شود.

مطلب مرتبط:   JES چیست و چگونه کار می کند؟

خودکارسازی وظایف با اسکریپت های Bash

GnuPG اغلب برای ایمن‌سازی فایل‌ها و داده‌های حساس در رایانه شخصی شما استفاده می‌شود و همچنین ابزاری عالی برای ایمن‌سازی پسوردها در اسکریپت‌های Bash خودکار در لینوکس است.

کارهای زیادی می توانید با اسکریپت های Bash انجام دهید. Bash ابزار قدرتمندی است که می تواند به شما در خودکارسازی بسیاری از موارد در لینوکس کمک کند و یادگیری نوشتن اسکریپت های Bash یک سرمایه گذاری ارزشمند است.