کاوشگر لینوکس

آموزش لینوکس و معرفی نرم افزارهای کاربردی مرجع باز (open source)

کاوشگر لینوکس

آموزش لینوکس و معرفی نرم افزارهای کاربردی مرجع باز (open source)

مهمترین ابزار مدیریتی لینوکس برنامه ای به نام webmin :

تمامی کاربران لینوکس و کسانی که با این سیستم عامل کار کرده و از ره آورد آن و قابلیتهای چشمگیر موجود لذت برده اند در صورتی که تمایل به کار بابرنامه های گرافیکی داشته و بخواهند تنظیمات سیستم خود را از طرق ساده تر به انجام برسانند اغلب به توزیعهایی از لینوکس مثل suse  و mandrake  گرایش پیدا میکنند تا به مدد برنامه های کمکی گرافیکی مدیریت سیستمی مثل yast و Mcc  موجود دراین توزیعها به امور جاری و مدیریتی و تنظیمات اساسی سیستم خود سرعت بخشند  .

در این بین برنامه کمکی webmin که بصورت یک پروژه مستقل برای اغلب توزیعهای لینوکس و  یونیکس و os/2  . ... طراحی و پیاده سازی گردیده و امکان نصب برروی توزیعهای  مختلف لینوکس را به راحتی داراست یک محیط کامل و ابزار مدیریتی کافی در دستان مدیران سیستم قرار میدهد تا به سهولت و از طریق یک رابط گرافیکی وب مانند  web base  هرکاری را اراده دارند به ساده ترین شکل ممکن ودر  اسرع وقت با دقت فراوان به انجام برسانند .

ورود به محیط این برنامه پس از نصب آن برروی سیستم  از طزیق یک مرورگر وب مثل  mozilla  یا   galeon  و با وارد کردن آدرس url  و پورت اتصال به webmin  بصورت زیر صورت میگیرد :

https://localhost:10000

در این مرحله برنامه webmin  کلمه عبور و رمزکاربر ریشه را سوال میکند تا اجازه دسترسی کاربر را به منابع سیستمی صادر نماید .

از جمله قابلیتهای این برنامه سودمند ایجاد رابط گرافیکی با امکان مدیریت کامل بر تنظیمات سیستمی لینوکس در همه قسمتهای نصب شده و بعنوان مثال  بسته های نرم افزاری زیر میباشد :

برنامه های سرور لینوکس   :

CVS Server

Apache Webserver

BIND DNS Server

Calamaris Log Reports

DHCP Server

Jabber IM Server

Majordomo List Manager

MySQL Database Server

Netatalk Apple File/Print Sharing

OpenLDAP server

OpenSLP Server

Postfix Configuration

PostgreSQL Database Server

ProFTPD Server

Samba Windows File Sharing

SSH Server

Squid Proxy Server

WU-FTP Server

Wap gateway

برنامه های سودمند تنظیم سیستمی لینوکس System   :

Backup System

Bootup and Shutdown

CD Backup

Change Passwords

Disk Quotas

Disk and Network Filesystems

Filesystem Backup

LDAP Users and Groups

MON Service Monitor

Running Processes

SysV Init Configuration

Scheduled Commands

Software Packages

Security Sentries

Scheduled Cron Jobs

isdn4linux control

Users and Groups

System Logs

System Documentation

برنامه های سودمند تنظیم ابزارهای شبکه لینوکس  Networking:

Network Configuration

Linux Firewall

ADSL Client

Extended Internet Services

FreeS/WAN VPN

IPsec VPN Configuration

NFS Exports

NIS Client and Server

Network Utilities

PPP Dialin Server

PPP Dialup Client

PPTP VPN Client

PPTP VPN Server

SSL Tunnels

Shorewall Firewall

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

CD Burner

GRUB Boot Loader

Linux Bootup Configuration LILO

Linux RAID

Logical Volume Management

Partitions on Local Disks

Printer Administration

System Time

Voicemail Server

برنامه های سودمند مدیریت بر ابزارهای کلاستر closter سازی در لینوکس  :

Cluster Software Packages

Cluster Users and Groups

Cluster Webmin Servers

Configuration Engine

Heartbeat Monitor

برنامه های سودمند مدیریت بر سایر قسمتهای لینوکس  مثل :

Batch Apache Host Addition

Batch DNS Domain Addition

Custom Commands

Download

File Manager

File Upload

Front Page 2000 Admin

Gehrigal Theme Configurator

LDAP Browser

Log Viewer

System and Server Status

VNC Client

rinetd configuration / administration

SSH/Telnet Login

SSH Login

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

برنامه webmin  به همراه اغلب توزیعهای  لینوکس عرضه میشود و آخرین نسخه مناسب با نوع توزیع لینوکس مورد استفاده را میتوان از آدرس سایت تخصصی آن یعنی  www.webmin.com  بصورت رایگان دریافت و بر روی سیستم نصب کرد .

اصول اولیه سطوح دسترسی فایل در یونیکس و لینوکس

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

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

 چیزی که در اینجا در باره کاربران و گروه های کاربری لازم به ذکر است این است که هر کاربر در سیستم یونیکس یک دایرکتوری شخصی به نام home‌ خواهد داشت که کلیه اختیارات دسترسی فایل در آن برای او مجاز بوده و میتواند در آن به ایجاد و حذف فایل یا عملیات دیگر بپردازد و هیچیک از کاربران یا گروههای دیگر بجز کاربر ریشه root‌ در حالت عادی و بدون اجازه او نخواهند توانست به اطلاعات او دسترسی یابند .(نکته مهم امنیتی)

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

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

بطور کلی سه سطح دسترسی برای هر فایل یا دایرکتوری تعریف میشود که عبارتست از :

1 - Read permission (r) یا مجوز خواندن : مجوز خواندن محتوای یک فایل را به یک کاربر میدهد و برای دایرکتوریها امکان لیست کردن محتویات داخل دایرکتوری را برای کاربر فراهم میسازد.

 

2 - Write permission (w) یا مجوز ایجاد تغییرات : امکان ایجاد تغییرات در محتوای فایلها را به کاربر اهدا میکند . برای دایرکتوریها این گرینه امکان ایجاد فایل جدید در دایرکتوری یا حذف فایلهای موجود در آن را برای کاربر مهیا میسازد حتی اگر این کاربر یا گروه کاربری مالک یا ایجاد کننده اصلی فایل یا دایرکتوری نباشد.

 

3 - eXecute permission (x) یا مجوز اجرا : این مجوز در مورد فایلهای اجرائی امکان اجرای فایل را به یک کاربر میدهد و در مورد یک دایرکتوری این گزینه امکان ورود به داخل دایرکتوری را به کاربر یا گروه خاص میدهد . توجه داشته باشید که این گزینه را با گزینه Read‌ اشتباه نگیرید ، چون صرفا با داشتن مجوز  execute‌و بدون داشتن مجوز read  کاربر یا گروه میتواند وارد دایرکتوری خاصی شوند ولی امکان خواندن محتویات داخلی آن دایرکتوری بهیچ عنوان برایشان فراهم نخواهد بود .

 

همیشه ترکیبی از سطوح سه گانه مجوزهای فوق الذکر قابل استفاده است برای مثال شما در صورت مالکیت یک فایل میتوانید دسترسی به آنرا صرفا برای شخص خود تعریف و سایر کاربران و گروهها را ازدیدن یا اجرا و ایجاد تغییر در آن محدود نمائید.

نکته : یک کاربر حتی میتواند یک فایل یا دایرکتوری را که مالک و ایجاد کننده اصلی آن خود اوست برای کاربران دیگر قابل دسترسی و برای خودش غیر قابل دسترسی تعریف کند که به این صورت حتی خودش از کلیه مزایای فایل مربوطه محروم خواهد شد و در آینده هم قادر نخواهد بود تا با ایجاد تغییر مجددا به آن فایل یا دایرکتوری  دسترسی پیدا کند . در اینجاست که مدیر سیستم یا کاربر ریشه root‌ تنها کسی خواهد بود که بصورت پیش گزیده با داشتن کلیه مجوزهای لازم شامل خواندن و نوشتن و اجرا امکان تغییر مالکیت و سطوح دسترسی کاربران و گروهها را داشته و میتواند تغییرات لازم را در سیستم اعمال نماید .

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

 

بیائید تا باذکر یک مثال در مورد یک فایل و یک دایرکتوری به بررسی موضوع بپردازیم :

در این مثال فرض شده  که در مسیر جاری یک فایل به نام a_file‌ و یک دایرکتوری به نام a_directory‌ وجود دارد و با اجرای فرمان  ls –l  در خط فرمان  این اطلاعات بدست آمده است :

$ ls -l

total 1

-rw-r-----     1   mehrdad    users           0      Jul   8 14:11    a_file

drwxr-xr--    2   mohsen     users        1024    Jul   8 14:11    a_directory/

نتایج فرمان ls –l‌ را ازچپ به راست بررسی میکنیم :

ستون اول فرمان ls –l ‌ :

1 - ده کاراکتر اول نشان دهنده نوع فایل و سطوح دسترسی آن است و اولین کاراکتر که در مورد سطر اول  ( - )  و در مورد سطر دوم  ( d )  میباشد نشان میدهد که مورد موجود در سطر اول یک فایل معمولی و مورد موجود در سطر دوم یک دایرکتوری است .

البته انواع دیگری از فایل وجود دارد که با کاراکتری غیر از ( - )  مشخص میگردند و برای مطالعه بیشتر میتوانید به رفرانسهای موجود مراجعه کنید . نه کاراکتر بعدی نشان دهنده سطوح دسترسی تعریف شده میباشند و به ترتیب هر سه کاراکتر از چپ به راست شامل سطوح دسترسی متعلق به مالک owner‌ و سطوح دسترسی گروهها groups‌ و سطوح دسترسی برای سایرین  others‌ خواهد بود .

بعنوان نمونه سه کاراکتر مربوط به owner‌ و groups‌ و others‌ در مورد یک فایل موجود در مثال بالابصورت زیر تعریف شده است :

برای مالک r w -)      = owner)  یعنی اینکه امکان خواندن r  و نوشتن w  و اجراکردن  x   وجود دارد .

برای گروهها groups‌ =  ( r - - )  یعنی اینکه امکان خواندن فایل برای کاربران عضو کلیه گروههای کاربری موجود وجود دارد ولی هیچ کابری در گروههای موجود نمیتواند فایل را تغییر داده (یا حذف کند) و یا در صورت اجرائی بودن فایل آنرا اجرا نماید .

برای دیگران others  =  ( - - - )  سه کاراکتر dash به این معناست که سایر کاربران یعنی آنهائی که در هیچ گروه کاربری موجود تعریف نشده اند هیچیک از امکانات دسترسی موجود را نخواهند داشت . (نکته امنیتی مهم)

ستون دوم در فرمان ls -l‌ :

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

ستون سوم در فرمان ls -l  :

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

ستون چهارم در فرمان ls -l  :

این ستون نمایش دهنده اندازه و حجم فایل یا دایرکتوری و تاریخ و ساعت آخرین تغییرات اعمال شده بر آن و در نهایت ستون پنجم نتایج فرمان ls -l  شامل نام فایل یا دایرکتوری میباشد .

نکته : بدیهی است که (rwx ‌ ) به معنای تعریف حداکثر سطح دسترسی برای کاربر یا گروههای کاربری است و  ( - - - ) به معنای عدم امکان دسترسی به فایل یا دایرکتوری میباشد .

چند نکته مهم در مورد یونیکس و لینوکس :

  • اسامی فایلها در یونیکس و لینوکس مینوانند شامل هر نوع کاراتری حتی کاراکترهای ascii‌ بجز صفر 0  و /  باشند.
  • همانطوریکه میدانید در سیستمهای مبتنی بر یونیکس  بر خلاف ویندوز هر فایل حتما نیاز به داشتن پسوند سه حرفی مشخص کننده نوع فایل ندارد و قابلیتها و نوع فایلهای بدون پسوند  یا  extension  کاملا وابسته به محتویات فایل است و نه به پسوند آن . بدیهی است که کاراکتر ( . ) جداکننده نام فایل و پسوند آن در ویندوز در محیط یونیکس و گنو/لینوکس یک کاراکتر از کاراکترهای تشکیل دهنده نام فایل محسوب میگردد . و نکته ظریف اینجاست که در سیستمهای مبتنی بر یونیکس کلیه فایلها و دایرکتوریهائی که با کاراکتر  نقطه یا دات ( . ) آغاز گردند فایلها یا دایرکتوریهای پنهان hidden  محسوب میگردند .
  • توجه داشته باشید که چون برخی برنامه های گرافیکی مثلا برنامه openoffice  کماکان از پسوند نام فایل برای ذخیره سازی و تشخیص نوع فایل بهره میبرند گاهی لازم است پسوند فایلهای ایجاد شده توسط این برنامه های کاربردی حفظ گردد تا برنامه موصوف در شناسائی نوع فایل دچار مشکل نشود .

نتیجه گیری کلی

شما حتی بایک نگاه گذرا به مقاله حاضر در مورد سیستم تعین سطوح امنیتی فایل در یونیکس و لینوکس و مقایسه آن با سیستم عامل ویندوز در خواهید یافت که وقتی صحبت از امنیت سیستمهای لینوکس به میان می آید منظور چیست ؟؟. چرا که در یک سیستم مبتنی بر یونیکس حتی برای یک فایل به تنهائی امکان تعیین سطوح دسترسی و امنیتی وجود دارد ولی در سیستم عامل ویندوز حداکثر امکان موجود تعین این سطوح دسترسی در سیستم فایل ntfs‌ فقط برای دایرکتوریها  (و نه برای تک تک فایلها) میباشد .