تمامی کاربران لینوکس و کسانی که با این سیستم عامل کار کرده و از ره آورد آن و قابلیتهای چشمگیر موجود لذت برده اند در صورتی که تمایل به کار بابرنامه های گرافیکی داشته و بخواهند تنظیمات سیستم خود را از طرق ساده تر به انجام برسانند اغلب به توزیعهایی از لینوکس مثل suse و mandrake گرایش پیدا میکنند تا به مدد برنامه های کمکی گرافیکی مدیریت سیستمی مثل yast و Mcc موجود دراین توزیعها به امور جاری و مدیریتی و تنظیمات اساسی سیستم خود سرعت بخشند .
در این بین برنامه کمکی webmin که بصورت یک پروژه مستقل برای اغلب توزیعهای لینوکس و یونیکس و os/2 . ... طراحی و پیاده سازی گردیده و امکان نصب برروی توزیعهای مختلف لینوکس را به راحتی داراست یک محیط کامل و ابزار مدیریتی کافی در دستان مدیران سیستم قرار میدهد تا به سهولت و از طریق یک رابط گرافیکی وب مانند web base هرکاری را اراده دارند به ساده ترین شکل ممکن ودر اسرع وقت با دقت فراوان به انجام برسانند .
ورود به محیط این برنامه پس از نصب آن برروی سیستم از طزیق یک مرورگر وب مثل mozilla یا galeon و با وارد کردن آدرس url و پورت اتصال به webmin بصورت زیر صورت میگیرد :
در این مرحله برنامه webmin کلمه عبور و رمزکاربر ریشه را سوال میکند تا اجازه دسترسی کاربر را به منابع سیستمی صادر نماید .
از جمله قابلیتهای این برنامه سودمند ایجاد رابط گرافیکی با امکان مدیریت کامل بر تنظیمات سیستمی لینوکس در همه قسمتهای نصب شده و بعنوان مثال بسته های نرم افزاری زیر میباشد :
برنامه های سرور لینوکس :
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
Network Utilities
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
drwxr-xr-- 2 mohsen users 1024 Jul 8
نتایج فرمان 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 ) به معنای تعریف حداکثر سطح دسترسی برای کاربر یا گروههای کاربری است و ( - - - ) به معنای عدم امکان دسترسی به فایل یا دایرکتوری میباشد .
چند نکته مهم در مورد یونیکس و لینوکس :
نتیجه گیری کلی
شما حتی بایک نگاه گذرا به مقاله حاضر در مورد سیستم تعین سطوح امنیتی فایل در یونیکس و لینوکس و مقایسه آن با سیستم عامل ویندوز در خواهید یافت که وقتی صحبت از امنیت سیستمهای لینوکس به میان می آید منظور چیست ؟؟. چرا که در یک سیستم مبتنی بر یونیکس حتی برای یک فایل به تنهائی امکان تعیین سطوح دسترسی و امنیتی وجود دارد ولی در سیستم عامل ویندوز حداکثر امکان موجود تعین این سطوح دسترسی در سیستم فایل ntfs فقط برای دایرکتوریها (و نه برای تک تک فایلها) میباشد .