سامانه آموزش آنلاین

مقلات آموزشی

آموزش BSD به زبان ساده

اطلاعات کاربران در کجا ذخیره می شود؟

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

شاید به این موضوع فکر کرده باشید که اطلاعاتی را که شما در زمان اضافه کردن کاربر جدید به سیستم وارد می کنید در کجا و به چه صورتی ذخیره می شود. جواب این سوال در دو فایل passdw و master.passwd است که در شاخه /etc قرار دارد. حال چرا دو فایل در این باره وجود دارد؟  یکی از این فایلها فقط شامل اطلاعات کاربران بدون مقدار کد شده رمز عبور است و دیگری  علاوه بر اطلاعات سابق رمز عبور را به صورت کد شده در خود جای داده است. تفاوت انها هم در سطح دسترسی هر کاربر به این فایها هم است که در شکل زیر این تفاوت را مشاهده می کنید:

همانطور که در شکل بالا مشاهده می کنید فقط کاربر root است که به فایل master.passwd دسترسی خواندن و نوشتن دارد و فایل passwd هم برای سایر کاربران و همه فقط خواندی است،

 

نکته:

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

 

فابل passwd:

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

در خط اول  با استفاده از فرمان cat و grep خطی که به کاربر abedini مربوط می شود را از سایر خطوط این فایل جدا کردم تا توضیحات بیشتر رو در این زمینه برای شما بیان کنم، البته به این نکته توجه داشته باشید که این کاربر abedini    در بخش قبلی ایجاد شده است و شما هم به جار Abedini از نام کاربری که ایجاد کرده اید استفاده کنید.

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

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

 

#cut –f 1 –d : /etc/passwd

فرمان cut  به خوبی می تواند عمل جدا کردن را انجام دهد کافیست که بعد از سویچ f عدد فیلد را مشخص کنید برای مثال چون فیلد اول در فایل نام کاربری است و من قصد دارد فقط نام کاربری را برای من نمایش دهد از فیلد 1 استفاده می کنم و بعد از سویچ d جداکننده را مشخص می کنید این جدا کننده علامت :  است. خروجی این فرمان در شکل زیر نمایش داده شده است:

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

به دلیل اینکه خروجی فرمان قبلی شامل خطهایی که با # شروع شده است هم بوده با استفاده از فرمان grep و سویچ –v خطوطی را که با # شروع می شود را حذف و با فرمان wc و سویچ  l تعداد خطوط را شمارش کرده و در خروجی نمایش داده می شود.

 

نکته :

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

 

نکته :

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

 

برای نمایش shell های استفاده توسط کاربران شما کافیست که فرمان اجرا شده در شکل زیر را اجرا کنید:

 

با استفاده از فرمان sort خروجی فرمان قبلی را مرتب کنید و با استفاده از فرمان uniq موارد تکراری را حذف کنید. این فرمان به صورت زیر است:

 

#cut –f 7 –d : /etc/passwd | sort | uniq

 

فایل master.passwd  :

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

Hash چیست؟

برای اینکه رمزعبور ها به صورت متن ساده در این فایل قرار نگیرد در FreeBSD از روش password hashing برای رمز کردن پسورد وارد شده توسط کاربر استفاده می کند این عمل توسط تابع crypt در FreeBSD انجام می شود.

Hash کردن در حقیقت یک روش رمزنگار یک طرفه محسوب می شود بدان معنی که اگر شما تعداد کاراکتر را که همان رمزعبور است را با استفاده از برنامه های hash به مقادیر کد شده تبدیل کنید هربار که این مقدار را hash می کنید به یک رشته کاراکترهای ثابتی دست پیدا می کنید ولی شما نمی توانید به راحتی عمل معکوس را انجام دهید.

 

نکته

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

 

روشهای hash  در FreeBSD عبارت اند از md5 , sha256  و sha512 تفاوت ظاهری انها طول مقدار hash است، هر سه این روش ها فرمانهایی با نام خود دارد، در شکل زیر کد hash شده abeidni را به سه روش موجود مشاهده می کنید:

 

برای استفاده کردن از روش md5   شما باید بعد از سویچ s مقدار مورد نظر را وارد کنید، برای sha256 و sha512  شما نیاز به سویچ ندارید، همانطوری که در شکل بالا مشاهده می کنید سه روش hash و تفاوت طول هر کدام را مشاهده می کنید.

 

نکته :

در برنامه های FreeBSD برنامه ای به نام crack موجود بود که به راحتی فایل master.passwd که با روش md5 ایجاد شده را دریافت می کرد و رمزهای عبور را برای شما نمایش میداد. این برنامه در حال حاضر به صورت خودکار برای نصب موجود نیست. این برنامه در تاریخ 2014-02-27  از رده خارج شده است.

 

 

 

 

تعیین صحت یک فایل با sha256  و sha512:

در زمان دانلود فایلها از ftp سرور های سایت FreeBSD شما به فایلهایی مواجه می شوید که مقادیر sha در آنها نوشته شده است بعد از دانلود این فایلها شما می توانید با استفاده از فرمان های sha مقدار sha فایل خود را مشخص کنید و با مقدار اعلام شده در سایت چک کنید در صورت یکسان بودن شما می توانید اطمینان حاصل کنید که فایل به صورت کامل و درست دریافت شده، شما می توانید مقدار sha هر فایلی را که می خواهید داشته باشید ، این امر در شکل زیر نمایش داده شده است :

در مثال بالا مقدار sha512 فایل /etc/rc.conf نمایش داده شده است.

نکته :

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

 

 

روش تنظیم password hash در FreeBSD :

 

در FreeBSD فایلی وجود دارد که نام login.conf که در شاخه /etc  قرار دارد، این فایل به صورت کامل در آینده نزدیک مورد بررسی قرار خواهد گرفت، مثلا شما می توانید طول رمزعبور ، مدت زمان اعتبار رمز عبور و غیره را در این فایل تنظیم کنید. یکی از مقداری که شما می توانید آنرا تغییر دهید تعیین روش hash است که محل قرار گرفتن این بخش را در شکل زیر مشاهده می کنید:

در بخش default  در خط اول خطی وجود دارد به نام passwd_format که همانطوری که مشاهده می کنید روش sha512 را انتخاب کرده است.

فرمان cap_mkdb:

برای افزایش سرعت در پردازش رمز های عبور و سایر بخشها در FreeBSD مثل فایل login.conf که می تواند تعداد درخواست های زیادی داشته باشد، در FreeBSD این فایلها به صورت دیتابیس در امده تا سرعت افزایش پیدا کند، در شکل زیر مشاهده می کنید که علاوه بر فایل login.conf فایل دیگری با همین نام و ختم شده به .db وجود دارد که در شکل زیر مشاهده می کنید:

در بخش ابتدایی از فایل login.conf خطوط برای شما نوشته شده است که روش ایجاد شدن این دیتابیس را با استفاده از فرمان cap_mkdb توضیح داده شده. فایل .db یکبار ایجاد شده است، پس ویرایش دستی شما در این فایل هیچ تغییر را در رفتار سیستم شما اعمال نمی کند مگر اینکه شما از فرمان cap_mkdb استفاده کنید و این دیتابیس را دوباره ایجاد کنید.

 


 

نظرات (0)

هیچ نظری در اینجا وجود ندارد

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان ثبت نام یا ورود به حساب کاربری خود.
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید
عبارت تصویر زیر را بازنویسی کنید. واضح نیست؟
آموزش BSD با محمدعابدینی

اولین مرکز آموزش BSD  و نخستین مرکز ارائه نرم افزارهای مبتنی بر BSD در ایران

کلیه حقوق این سایت متعلق به محمد عابدینی است که در زمینه آموزش BSD فعالیت می کند.
All rights are reserved for Mohammad Abedini 2019

Search

09356757020
محمد عابدینی
کرج 
مهرشهر
Your SEO optimized title