سفارش تبلیغ
صبا ویژن

نصب و پیکربندی یک گواهی SSLدر Mac OS X Server 10.4

نصب گواهی SSL:  10.4 SSL

 

نصب و پیکربندی یک گواهی SSLدر Mac OS X Server 10.4

پس از تایید درخواست گواهی SSL، می توانید گواهی SSLSSL and intermediate  خود را از داخل نرم افزار  SSL دانلود کنید. هر دو فایل باید بر روی وب سرور شما نصب شود.

نصب گواهی SSLهای Intermediate CA

51JY1TmyEJL

قبل از نصب گواهی SSL، شما باید روش زیر را برای نصب گواهی SSLIntermediate CA تکمیل کنید:

مشاهده مخزن
فایل Intermediate.crt را دانلود کنید.
راه اندازی برنامه Keychain Access

(/Applications/Utilities/Keychain Access)

اگر دکمه پایین سمت چپ پنجره Keychain Access با برچسب "Show Keychains" باشد، آنگاه روی دکمه کلیک کنید تا لیست Keychain  را نشان دهد.
System keychain را انتخاب کنید.
File->Import  را انتخاب کنید. حرکت کنید و فایل Intermediate.crt  که در مرحله 2 در بالا دانلود کرده اید را انتخاب کنید.
وقتی که درخواست تایید هویت برای تغییر keychain  بود ، رمز عبور خود را وارد کنید.

تأیید کنید که "Comodo Certification Authority" در لیست نمایش داده می شود.
بستن برنامه Keychain Access

 

برای نصب گواهینامه SSLشما

برای نصب گواهی SSLserver  بر روی سیستم خود از روش زیر استفاده کنید:

راه اندازی ابزار Server Admin  و اتصال به سروری که شما می خواهید در آن گواهی SSLنصب کنید.
گره سرور را در بالای درخت در پنجره Computers & Services برجسته کنید.
سربرگ Settings  را از ردیف سربرگها در پایین صفحه سمت راست انتخاب کنید.

سربرگ Certificates  را از ردیف سربرگها در بالای صفحه سمت راست انتخاب کنید.
آیتم مربوط به گواهی SSLدرخواست شده را انتخاب کنید و دکمه " pencil" را برای ویرایش آن مورد کلیک کنید.
روی دکمه Add Signed Certificate ... کلیک کنید. متن گواهی SSLخود را در فیلد جایگذاری (Paste) کنید. اطمینان حاصل کنید که خطوط  "-----BEGIN CERTIFICATE-----" and "-----END CERTIFICATE-----" header and footerرا وارد کنید . روی OK کلیک کنید.
روی دکمه Save  کلیک کنید.

 

برای اختصاص گواهی SSLبه سرویس های شما

پس از نصب گواهی SSLخود به خوبی گواهی SSL Intermediate CA، می توانید این گواهی SSLرا به سرویس های مورد نظر (وب، ایمیل، iChat، دایرکتوری باز و غیره) اختصاص دهید. در پنجره تنظیمات مناسب برای سرویس دلخواه این کار انجام دهید.

منبع :https://sarvssl.com/%D9%86%D8%B5%D8%A8-%D9%88-%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C-%DB%8C%DA%A9-%DA%AF%D9%88%D8%A7%D9%87%DB%8C-ssl%D8%AF%D8%B1-mac-os-x-server-10-4/


نصب و پیکربندی یک گواهی SSLدر Mac OS X Server 10.4

نصب گواهی SSL:  10.4 SSL

 

نصب و پیکربندی یک گواهی SSLدر Mac OS X Server 10.4

پس از تایید درخواست گواهی SSL، می توانید گواهی SSLSSL and intermediate  خود را از داخل نرم افزار  SSL دانلود کنید. هر دو فایل باید بر روی وب سرور شما نصب شود.

نصب گواهی SSLهای Intermediate CA

51JY1TmyEJL

قبل از نصب گواهی SSL، شما باید روش زیر را برای نصب گواهی SSLIntermediate CA تکمیل کنید:

مشاهده مخزن
فایل Intermediate.crt را دانلود کنید.
راه اندازی برنامه Keychain Access

(/Applications/Utilities/Keychain Access)

اگر دکمه پایین سمت چپ پنجره Keychain Access با برچسب "Show Keychains" باشد، آنگاه روی دکمه کلیک کنید تا لیست Keychain  را نشان دهد.
System keychain را انتخاب کنید.
File->Import  را انتخاب کنید. حرکت کنید و فایل Intermediate.crt  که در مرحله 2 در بالا دانلود کرده اید را انتخاب کنید.
وقتی که درخواست تایید هویت برای تغییر keychain  بود ، رمز عبور خود را وارد کنید.

تأیید کنید که "Comodo Certification Authority" در لیست نمایش داده می شود.
بستن برنامه Keychain Access

 

برای نصب گواهینامه SSLشما

برای نصب گواهی SSLserver  بر روی سیستم خود از روش زیر استفاده کنید:

راه اندازی ابزار Server Admin  و اتصال به سروری که شما می خواهید در آن گواهی SSLنصب کنید.
گره سرور را در بالای درخت در پنجره Computers & Services برجسته کنید.
سربرگ Settings  را از ردیف سربرگها در پایین صفحه سمت راست انتخاب کنید.

سربرگ Certificates  را از ردیف سربرگها در بالای صفحه سمت راست انتخاب کنید.
آیتم مربوط به گواهی SSLدرخواست شده را انتخاب کنید و دکمه " pencil" را برای ویرایش آن مورد کلیک کنید.
روی دکمه Add Signed Certificate ... کلیک کنید. متن گواهی SSLخود را در فیلد جایگذاری (Paste) کنید. اطمینان حاصل کنید که خطوط  "-----BEGIN CERTIFICATE-----" and "-----END CERTIFICATE-----" header and footerرا وارد کنید . روی OK کلیک کنید.
روی دکمه Save  کلیک کنید.

 

برای اختصاص گواهی SSLبه سرویس های شما

پس از نصب گواهی SSLخود به خوبی گواهی SSL Intermediate CA، می توانید این گواهی SSLرا به سرویس های مورد نظر (وب، ایمیل، iChat، دایرکتوری باز و غیره) اختصاص دهید. در پنجره تنظیمات مناسب برای سرویس دلخواه این کار انجام دهید.

منبع :https://sarvssl.com/%D9%86%D8%B5%D8%A8-%D9%88-%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C-%DB%8C%DA%A9-%DA%AF%D9%88%D8%A7%D9%87%DB%8C-ssl%D8%AF%D8%B1-mac-os-x-server-10-4/


نحوه نصب گواهی SSL SSL برای Citrix Access Gateway 5.0

نحوه نصب گواهی SSL SSL برای Citrix Access Gateway 5.0

نصب گواهی SSL: Citrix Access Gateway 5.0

 

برای نصب گواهی SSLSSL برای  Citrix Access Gateway 5.0، مراحل زیر را انجام دهید.

 

مرحله 1: نصب گواهی SSLSSL

گواهی SSL از طریق ایمیل ارسال خواهد شد. کلیک کنید گواهی SSLبرروی لینک را تا فایل فشرده (zip) را استخراج کنید، کپی کنید و آن را در یکویرایشگر متن جایگذاری کنید (ذخیره کنید به عنوان cert.pem) به شکل Notepad یا Notepad ++  . از Microsoft Word یا سایر برنامه های پردازش کلمه که ممکن است کاراکترها را اضافه کنند ، استفاده نکنید. تأیید کنید که خطوط یا فضاهای اضافی در فایل وجود ندارد.

فایل متنی باید شبیه باشد به :

-----BEGIN CERTIFICATE-----
[encoded data] -----END CERTIFICATE-----
اطمینان حاصل کنید که 5 خط تیره در هر دو طرف BEGIN CERTIFICATE و END CERTIFICATE وجود دارد و هیچ فضای سفید، خط اضافی شکسته یا کاراکترهای اضافی به طور تصادفی اضافه نشده است.

  1. در Access Gateway Management Console روی Certificates کلیک کنید.
  2. روی Import کلیک کنید و سپس Server (.pem) را برای وارد کردن گواهی SSLریشه امضاء شده توسط CA ، انتخاب کنید.
  3. در فایل انتخاب شده برای آپلود، به گواهی SSLبروید و سپس بر روی Open کلیک کنید.

slide_8

مرحله 2: نصب گواهی SSLIntermediate CA

 

  1. گواهی SSL Intermediate CA را بگیرید.
  2. در Access Gateway Management Console روی Certificates کلیک کنید.
  3. در پنل Certificate Management ، روی Import کلیک کنید و سپس Trusted (.pem) را انتخاب کنید.
  4. در قسمت Select file to upload ، به فایل بروید و سپس بر روی Open کلیک کنید.
    نکته : هنگام نصب یک گواهی SSLintermediate در Access Gateway ، لازم نیست که کلید خصوصی(private key) یا رمز عبور را مشخص کنید. بعد از اینکه گواهی SSLدر دستگاه نصب شد، گواهی SSLباید که به گواهی SSLserver  مرتبط شود.

 

مرحله 3 : گواهی SSLIntermediate CA  را به گواهینامه SSL پیوند دهید.

  1. در Access Gateway Management Console روی Certificates کلیک کنید.
  2. در قسمت Certificates table ، گواهیSSLserver  را که می خواهید به یک گواهی SSLintermediate  پیوند دهید را انتخاب کنید و سپس روی Add to Chain کلیک کنید.
  3. در پنجره محاوره ای که باز می شود، یک گواهی SSLرا انتخاب کنید و سپس برای هر گواهی SSLکه می خواهید به زنجیرهاضافه کنید، Add را کلیک کنید.
  4. وقتی که ساختن زنجیره گواهی SSLرا به پایان رسانید، روی Close کلیک کنید.
  5. منبع :https://sarvssl.com/%D9%86%D8%AD%D9%88%D9%87-%D9%86%D8%B5%D8%A8-%DA%AF%D9%88%D8%A7%D9%87%DB%8C-ssl-ssl-%D8%A8%D8%B1%D8%A7%DB%8C-citrix-access-gateway-5-0/

, , , , , , , , , , , , , , , ,


نصب گواهی SSLدر : Cisco WLAN 4400

نصب گواهی SSLدر : Cisco WLAN 4400

نصب گواهی SSLدر : Cisco WLAN 4400
دستورالعمل آپلود گواهی SSLهای زنجیره ای Cisco WLAN 4400 :
هنگامی که فایل zip را از sarvssl دریافت می کنید، آن شامل فایل های زیر می باشد .
"The Entity (domain certificate), The Root, and The Intermediate Certificates".
شما احتیاج دارید که آنها را در یک فایل .pem ترکیب کنید.
برای انجام وظیفه تغییر فایل .crt به فایل .pem شما باید موارد زیر را انجام دهید:
1. باز کردن هر فایل .crt در یک ویرایشگر متن (notepad, wordpad, etc.)
2. یک صفحه ویرایشگر متن خالی اضافی را باز کنید.
3. محتویات هر فایل .crt را به ترتیب کپی کنید و آن را در ویرایشگر متن خالی جایگذاری کنید.

wireless-4404-wireless-lan-controller
−−−−−−BEGIN CERTIFICATE−−−−−−
*Entity cert*
−−−−−−END CERTIFICATE−−−−−−
−−−−−−BEGIN CERTIFICATE−−−−−−
*Intermediate CA cert *
−−−−−−END CERTIFICATE−−−−−−−−
−−−−−−BEGIN CERTIFICATE−−−−−−
*Root CA cert *
−−−−−−END CERTIFICATE−−−−−−
4. هنگامی که فایل ها به ترتیب باشند ، شما می توانید فایل را به عنوان "yourdomain.pem" ذخیره کنید.
به منظور تعیین اینکه چه گارانتی (زنجیره ای از اعتماد ) دارید، لطفا روی مقاله زیر کلیک کنید:
مقالات مرتبط:
* Which is Root? Which is Intermediate?

 

نکته : Openssl برای نصب گواهی SSL مورد نیاز است.
برای به دست آوردن یک نسخه از OpenSSL برای:
Windows: Windows 2000 or better.
Unix-like: (Linux, OS X, etc.) OpenSSL.org website for binaries.
بعد، این فایل (yourdomain.pem) را با کلید خصوصی(private key) که همراه با CSR تولید کرده اید،ترکیب کنید ، کلید خصوصی(private key) مربوط به گواهی SSLدستگاه ، که در این مثال mykey.pem است. گواهی SSL"yourdomain.pem" را با کلید خصوصی(private key) ترکیب کنید و سپس فایل را به فایل .pem تبدیل کنید. این گواهی SSLنهایی"final.pem" نامیده می شود.
برای رسیدن به این مسئله، این دستورات را در برنامه OpenSSL قرار دهید :
openssl>pkcs12 −export −in yourdomain.pem −inkey mykey.pem −out yourdomain.p12 −clcerts
openssl>pkcs12 −in yourdomain.p12 −out final−cert.pem −passin pass:check123 −passout

نکته :
در این فرمان، شما باید یک رمز عبور برای پارامترها ی −passin و −passout وارد کنید.
رمز عبوری که برای پارامتر -passout پیکربندی شده است باید با پارامتر certpassword که در WLC پیکربندی شده است مطابقت داشته باشد.
در این مثال، رمز عبور که برای هر دو پارامتر -passin و -passout پیکربندی شده check123 است.
"final.pem" فایلی است که ما احتیاج داریم به Wireless LAN Controller آپلود کنیم. گام بعدی این است که این فایل را به WLC به عنوان گواهی SSLدستگاه Vendor آپلود کنیم.

https://sarvssl.com/%d9%86%d8%b5%d8%a8-%da%af%d9%88%d8%a7%d9%87%db%8c-ssl%d8%af%d8%b1-cisco-wlan-4400/


آموزش ویرایشگر VIM سرور مجازی

آموزش ویرایشگر VIM سرور مجازی

جولای 3, 2017

ویرایشگر vim

ما تا اینجا تعدادیفرمانیاد گرفتیم ولی گاهی اوقا شما نیاز دارید یک فایل را تغییردهید و یا تنظیماتی که مد نظرتان است را

اعمال کنید. بنابراین الزام است و می توان گفت ضروری است که یک لینوکس کار بتواند با یک editor کار کند.ویرایش گر یک ه

ما با آن کار می کنیم ویرایشگر vim می باشد.

در این جلسه ما به طور کامل ویرایشگر Vim را بررسی میکنیم.

[N.pardis@lpi1 ~]$ vim

[N.pardis@Lpi1~]$man vim

این فرمان جزوه ی کاملی هم دارد. برای اینکه یک فایل را ویرایش کنیم این فرمان را میزنیم

File-namevim[N.pardis@Lpi1~]

اگر فایلی را نتوانیم تغییردهیم vim در خط آخر اعتراض میکند و با خط قرمز اعتراضش را نشان میدهد.

Vim محدودیت ندارد و اگر باینری exe باشد میشود انجام داد و به طور کلی هر چیزی را آماده است ویرایش کند.

برنامهای بنویسید که یک اسم را بخواند و حرف اولش را چاپ کند: میخواهیم این برنامه را به صورت یک فرمان

در لینوکس در بیاوریم. شروع کار به صورت زیر است و فایلی با نام test1 سرور مجازی میسازد:

[N.pardis@Lpi1~]$vim testl

برای وارد کردن دستورا و یا ت ییرا در فایل کلید i در صفحه کلید را فشار می دهیم و تغییراتی را که می خواهیم اعمال می

کنیم.

برای ذخیره و خارج شدن از محیط ویرایشگر x : shift را میزنیم حال l –ls که بزنیم مشخصا فایل را میبینیم و اگر اسم

فایل را بزنیم اجرا میشود.

[N.pardis@Lpi1~]$ test1

میبینیم که اجرا نشد و به ما پی ام found not command را میدهد که این به این دلیل است که لینوکس به خاطر مسایل

امنیتیdirectory current را نمیگردد و از بیرون میخواهد بیاورد برخالف ویندوز مایکروسافت. مسایل امنیتی اینست که

ممکن است فرمانی مثل date در دایرکتوری جاری دستکاری شده باشد و اگر ما date را از دایرکت وری جاری اجرا کنیم مثالً

formatیا delete را انجام دهد به همین دلیل است که از دایرکتوری جاری نمیخواند

حال اگر خودمان مشخص کنیم که از دایرکتوری جاری بخوان باید به صورت زیر بزنیم

[N.pardis@Lpi1~]$./testl

Permission denied

که حال اجرا میشود ولی ممکن است پی ام denied permission هم بگیرید.

[N.pardis@Lpi1~]$chmod 777 test1

مجوزی که ما روی این فایل اعمال کردیم خیلی خطرناک است و هیچ وقت تحت هیچ شرایطی نباید این مجوز را بدهیم.

باید حواسمان باشد که اسم متغیرها را با حروف بزرگ و بقیه را با حرف کوچک بنویسیم اگر اشتباه بنویسیم متنی است خطای

گرفته شود. که این error را error semantic میگویند و اگر دستورکلا اشتباه باشد error syntax میدهد.

برنامهای بنویسید که اسم را بگیرد سرور اختصاصی و حرف آخر آن را چاپ کند؟

[N.pardis@Lpi1~]$vim testn

echo “please Enter ur NAME:”

read N

echo $N |tail-c2

خروج از vim با x : shift

[n.pardis@lpi ~]$ testn

-bash: testn: command not found

بنابراین برای اجرا testn ./را به کار می گیریم:

[N.pardis@Lpi1~]$ ./testn

bash:./testn permission denied

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

اینست که

[N.pardis@Lpi1~]$chmod 777 test1

[N.pardis@Lpi1~]$ ./testn

حال میبینیم که اجرا میشود و از ما اسم میخواهد و حرف آخرش را نمایش میدهد.

 

میخواهیم وارد یک دایرکتوری به نام dummy شویم و فایلهایی که اسمشان 0 حرفی است را به ما نشان دهد:

[N.pardis@Lpi1~]$ cd dummy

[N.pardis@Lpi1~/dummy]$ ls ??

1a 1b sh 1j

دو تا ؟؟ یعنی 0 حرفی وفایل های دو حرفی را نمایش میدهد. هر ؟ یعنی یک حرف . فایلهای

دو حرفی که اوّلش عدد است را نمایش دهد؟

[N.pardis@lpi1~/dummy]$ls [0-9]?

فایلهایی که اسمشان به عدد ختم میشود را نمایش دهد ؟

[N.pardis@lpi1~/dummy]$ ls *[0-9]

فایلهایی که آخرشان حرف صدادار دارد را نمایش دهد ؟

[N.pardis@lpi1~/dummy]$ ls *[aciou]

فایلهایی که از a تا k شروع میشوند را نمایش دهد ؟

[N.pardis@lpi1~/dummy]$ ls [a-k] *

فایلهایی که با a شروع نمیشوند را نمایش دهد ؟

[N.pardis@lpi1~/dummy]$ ls [!a]*

ما در vim میتوانیم abbreviation تعریف کنیم به این صورت :

:abbr p pardis

با این تعریف به محظ اینکه حرف p را بزنیم و سپس کلید space را فشار دهیم pardis را مینویسد.

p space

همچنین در vim میتوانید macro تعریف کنید که مثالً اگر 5 F1 را فشار دادیم. بالای نامه ?به نام خدا ? بنویسید و خیلی

امکانات دیگر هم در vim داریم.

برنامهای بنویسید که یک IP بگیرد و کامپیوتر مربوطه را کنترل کند و اگر سیستم down بود به Adminیک

ایمیل ارسال کند؟

چطور میشود فهمید که یک کامپیوتر up است یا down؟ فرمان ping را اجرا میکنیم.

[N.pardis@Lpi1~]$ Ping 192.168.100.1

ping با استفاده از پروتوکل ICMP. ،56 حرفکه عبارت است از حروف الفبا به اضافه character special میفرستد و اگر

دوباره برایش پس فرستاد میفهمیم که up است.

به معنی در تاریکی به دنبال چیزی گشتن Groper internet packet  Ping

ping بیشتر برای رفع اشکال بدرد میخورد.

ICMP? internet control message protocol

اگر ما در این پروله ping کنیم مدام در حال پرسیدن و جواب گرفتن است و اگر . ماه بعد هم بیاییم باز هم همین کار را دارد

انجام میدهد. حال منوآل ping را بخوانید و بگویید چه کار کنیم که 1 بار بیشتر ping نکند؟ از آپشن c1 –استفاده میکنیم که

یک بار بیشتر نفرستد.

[N.pardis@Lpi1~]$ ping 192.168.100.1

[N.pardis@Lpi1~]$ vi test2

#!/bin/bash

با نوشتن این خط داریم میگوییم که این نرمافزار را چه کسی اجرا میکند و در این مثال bash آن را اجرا می کند.

این خط صفحه را پاک میکند.

clear

X=`date`

read -p “please Enter Ip:” IP

این خط پی امی را روی صفحه مینویسد و توقع دارد IP بدهیم.

Ping -c1 $IP>/dev/null 2>/dev/null

ttp

24

به طور کلی هر نرم افزاری عدد یک ورودی میخواهد و حداقل دو تا خروجی دارد:

1 خروجی استاندارد

0 خروجی خطا

نرمافزاری که خروجیاش همیشه یک چیز درست و مشخصی است همیشه به output standard میفرستد و نرمافزار اعتراض

و پیامهای خطایش را به خروجی خطا میفرستد.

&> 0 یعنی 0 جایی برود که یک 1 میرود.

null/dev </1 یعنی ما نمیخواهیم خروجیا را ببینیم خروجیا را بریز دور.

null/dev </0 یعنی خروجی خطا را هم نمیخواهیم ببینیم و بریز دور.

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

تمام شود کدش صفر است و هر فرمانی اجرا نشود و error دهد و نتیجهای که خواستیم ندهد غیرصفر است.

فرمان دیگری که داریم و برای ادامه حل این تمرین نیاز داریم بدانیم اینست که باید بفهمیم وقتی ping کردیم چطور بفهمیم

که ping با موفقیت انجام شده و سیستم up است؟؟؟ فرمانی که در اینجا مطرح می شود فرمانی است که نتیجه نهایی فرمان

قبلی که اجرا شده را به ما میدهد که اگر صفر باشد با موفقیت انجام شده در غیر این صورت اگر هر عددی غیر از صفر باشد به

معنی عدم موفقیت فرمان قبلی می باشد.

[n.pardis@lpi1~]$ echo $?

0

مقدار تابع date را میگیرد `date=`Xیکبار ping میکند.

اگر ping انجام شد ویا به هر دلیلی انجام نشد را از طریق ساختار شرطیif چک می کنیم که در زبانهای برنامه نویسی برای شرط

بود و شرطی را بیان میکرد :

[n.pardis@lpi1~]$ type if

if is a shell keyword

If [$? !=0]; then

به Admin ایمیل میکند.

echo $Ip $X |mail -s “server is down…” Admin

else

echo “server is up”

fi

بنابراین پروژه ما به اتمام رسید به این صورت :

#!/bin/bash

clear

X=`date`

read -p “please Enter Ip:” Ip

ping -c1 $Ip>/dev/null 2>/dev/null

If [$?!= 0] then

echo $Ip $X | mail -s “server is down…” Admin

else

echo “server is up”

fi

از vim خارج می شویم و permission می دهیم و آن را اجرا می کنیم:

[N.pardis@Lpi1~]$ chmod 700 test2

[N.pardis@Lpi1~]$ ./test2

ttp

25

برای اینکه زمان و ساعت را نگه داریم آن را در یک متغیربا حرف بزرگ به نام X میریزیم و این نکته را هم به

خاطر داشته باشید وقتی می خواهید نتیجه ی اجراییک فرمان را در یک متغیرنگه دارید از` استفاده می کنیم و

فرمان را درون آن قرار می دهیم.

[N.pardis@Lpi1~]$ X=`date`

[N.pardis@Lpi1~]$ echo $X

اگر بخواهیم فقط روز را نگه داریم در X به این صورت عمل میکنیم:

[N.pardis@Lpi1~]$ X=` date |cut-cl-3′

[N.pardis@Lpi1~]$ echo $X

در تمرین 15 که در قسمت قبل حل کردیم این مشکل وجود دارد که اگر هیچ Ip ای هم وارد نکنیم و Enter بزنیم جلوی ما را

نمیگیرد میخواهیم کاری کنیم که اگر هیچip ای وارد نکردیم جلوی ما را بگیرد. برای این ک ار ping را دس ت نم یزن یم و در

بالای برنامه یک if میگذاریم میگوییم:

if [$Ip=’ ‘]

then

echo “U Must Enter Ip…”

exit

fi

اگر در دو طرف Ipیک حرف نگذاریم با یک Enter میشود شکستیعنی اگر enter بزنیم و بخواهیم خالی رد کنیم قبول می کند

و error نمیدهد چون enter را هم به عنوان ورودی می گیرد و فکر میکند خالی نیست.

این باز هم درست کار نمیکند.چرا؟

if مثل کفه ی ترازوهای قدیمی است که اگر یک طرف یک وزنه یک کیلویی باشد و آن طرف هم جنس هر دو طرف مثالً یک

وزنه ی خیلی کوچک قرار میدهند تا مساوی شوند. ما هم در if همین کار را میکنیم و هر دو طرف ifیک حرف مثالx قرار می

دهیم و حال if ما مساوی میشود و اگر Enter بزنیم در نتیجه هر دو طرف if ما مساوی میشود و مثل این می ماند که خالی

رد کنیم. اکثر script shell ها به این صورت است. چون هر دو طرف فقط یک x داریم و x ها مساوی هستند معلوم م یش ود

که ما Enter زدیم.

:میخواهیم پسورد دوّم را برایid user ایجاد کنیم و اگر پسورد دوّم غلط بود یک ایمیل برا یAdmin و صاحب

userid برود.

برای اینکه بتوانیم این تمرین را حل کنیم باید بدانیم که موقعی که ما login میکنیم چه اتفاقی میافتد.

اگر a-ls را بزنید تمام فایلهایی را که وجود دارد میبینید. وقتی شما در لینوکس userid میسازید فرد هر کاری که انجام ده د

یک فایل نقطهدار برای آن ساخته میشود که خود فرد هم از آنها خبر ندارد.

این فرمان روبهرو را که بزنیم تمام فایلهای نقطهدار را نشان میدهد.

less [N.pardis@Lpi1~]$ bash-history

عبارت است از یک فایلی که تمام history ها را به شما نشان میدهد.

برای اینکه history خود را ببینید این فرمان را بزنید:

[N.pardis@Lpi1~]$ less .bash-history

ما 1 تا فایل داریم که با bash .شروع میشود. فایل بعدیprofile-bash .است که معادل bash.Autoexec در ویندوز اس ت

که به مح اینکه loginکنید این فایل اجرا میشود. که میتوانیم در این فایل ت ییراتی هم ایجاد کنیم ک ه م ثالً بع د از ا ینک ه

login کردیم یک پی ام مثالً salam بنویسید.

echo “salam”

حال تمرین را حل میکنیم:

[N.pardis@Lpi1~]$ vi .bash-profile

trap “echo enter second password” 2

read –s-p “PLZ ENTER SECOND PASS:” pass

iF [ P$pass != pardisp ] then

echo $USER on `date` hacked | mail -s hacked admin

exit

else

حواسمان باشد در if اگر پسورد غلط بود قبل از elseیک exit هم باید بگذاریم.

اولین مشکل اینست که پسورد دیده شد باید کاری کنیم که دیده نشود میآییم بنابراین آپشن s –را ب ه read اض افه

میکنیم.

مشکل دوّم اینست که میخواهیم Enter زدیم prompt نگیرد.

فرمانsu را که بزنیم به معنیuser switch میباشد یعنی از یک id user به id user دیگر رفتن و اگر dash –جلوی

آن بگذاریم به معنیfull میباشد و به root میرود.

.bash-logout فایل

بنابراین ما متوجه شدیم که 1 فایل نقطه داریم. فایل بعدی که بررسی میکن یم logout-bash .است و وقتی شما out log

میکنید این نرم افزار اجرا میشود.

میخواهیم برنامهای بنویسید که وقتی میخواهید out log کنید از شما بپرسد مطمئن ی و اگر yes گفتید out log

کند و اگر No گفتید prompt را برای شما بیاورد؟

[n.pardis@lpi1~]$ vi .bash-logout

بررسی سیگنال ها

یک برنامه وقتی میآید در حافظه باید آنقدر محکم باشد که از بین نرود. یکی از عاللمی که یک برنامه را متوقف میکند و یا می

کشد c ctrl است. در محیط گرافیکال cut که وقتی به یک نرمافزار میرسد آن را از بین میبرد و میکشد.

به همین دلیل است که وقتیpass second را میخواهد c ctrl میزنیم که میکشد آن را و وارد م یش ود. ب ه c ctrl م ی

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

1 عکسالعمل نشان دادن Action

Ignore 0

Default 3

دو سیگنال معروفی که داریم یکیc ctrl و دیگریup Hang شماره 1 ارتباط مخاطب با پروسس قطع شده است است.

حال این فرمان را میزنیم تا ببینیم چند تا سیگنال داریم.

[N.pardis@Lpi1~]$ kill -l

1 .سیگنال ما داریم که لینوکس همه را support میکند. که یکی از آنها Hangup است و interrupt شماره 0 همان

c ctrl است. Vim را نمیتوان با c ctrl کشت. هر سیگنال یک کد دارد. ما به وسیلهیtrapیعنی فرمانtrap برای سیگنال می

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

مناسب را در مقابل سیگنال اتخاذ نمود و توصیه میشود دستور trap را در ابتدایscript گذاشت. با این فرمان میگو ییم هر

وقت

[n.pardis@lpi1~]$ trap ‘cal’ 2

سیگنال شماره 0 یعنیc ctrl آمد تقویم را اجرا کن. یعنی سیگنال 0 را اجرا نمیکند و تقویم را اجرا میکند.

اگر فرمان زیر را وارد کنیم دوباره c ctrl کار می کند.

[n.pardis@lpi1~]$ trap ” 2

حال اگر دو تا کوتیشن را به هم بچسبانیم و بعد c ctrl را بزنیم م یبینیم که اجرا نمیش ود. وقت یspace بینشان باشند

یعنیc ctrl را بگیرد ولی هیچ کاری نکند.

و اگر دو تا کوتیشن به هم چسبیده باشندیعنیignore میکند c ctrl را. در بین دو کوتیشن میتوانیم هر چی بگذاریم echo

salamیا اجراییک نرمافزار. اگر خواستیم دوباره برگردانیم به حالت پیشفرض بین دو تا کوتیشن یک blank میگذاریم.

برای دیدن منوآل signal که خیلی هم مهم است این فرمان را بزنید:

[n.pardis@lpi1~]$

man -a signal