مديريت كاربران و گروه ها
بررسى فايل etc/passwd/
احراز هويت همه كاربران محلى یک سيستم از طريق اين فايل انجام مى شود كه در هر سطر آن مشخصات هر كاربر در زمان ساخت و پس از آن ذخيره مى گردد. با اضافه شدن هركاربر در سيستم یک سطر به سطرهاى اين فايل اضافه مى شود. اين بدان معناست كه دراين فايل به ازاى هر كاربر یک سطر در نظر گرفته شده است. هر سطر از 7 ستون تشكيل شده است كه اجزاى آن به شكل زير هستند:
user name : password status : UID : GID : GECOS : home directory : login shell
فيلد 1 نمايانگر نام كاربرتعريف شده در سيستم است.
فيلد 2 اين فيلد مى تواند سه حالت داشته باشد: در حالت اول حرف x در آن قرار دارد كه بدين معنى است كه كاربر عمليات احراز هويت خود را در زمان login به سيستم از طريق فايل shadow انجام مى دهد. در دومين حالت چيزى در اين فيلد وجود ندارد كه بيانگر عدم تعريف كلمه عبور براى كاربر مورد نظر باشد و در آخرين حالت وجود * در آن است كه بيانگر غير فعال بودن حساب كاربر است.
فیلد 3 UserID : شناسه یکتاى هر كاربر را نشان مى دهد عموما براى كاربران غيرسيستمى از عدد 1000 شروع مى شود.
فيلد 4 Group ID : شناسه يكتاى گروه اصلى كاربر است كه براى گروه هاى سيستمى اين شناسه بين 0 تا 100 و براى گروه های غيرسيستمى مقدارى بزرگتر از 100 است.
فيلد 5 : GECOS اين فيلد مخفف كلمات General Electric Comprehensive Operating System است كه از آن جهت ذخيره سازى مشخصات فردى هر یک از كاربران تعريف شده در سيستم استفاده مى شود.
فيلد6 Home directory : شاخه خانگى هر كاربر را مشخص مى كند كه تنها در آن شاخه قادر به ذخيره سازى اطلاعات شخصى خود است.
فيلد 7 Login shell : پوسته پيش فرض هر كاربر را در زمان ورود به سيستم مشخص مى كند كه عموما bin/bash/ است و در مواردى جهت جلوگیرى از ورود یک كاربر به سيستم مى توان آن را sbin/nologin/ قرار داد.
بررسى فايل etc/shadow/
فايل shadow و فايل passwd دو فايل به هم مرتبط هستند كه اطلاعات مربوط به كاربر در فايل passwd و اطلاعات مربوط به كلمه عبور كاربر در فايل shadow قرار مى گیرد. مجوز اين فايل 700 است تا كاربران دیگر نتوانند اين فايل را خوانده و يا تغييرى در آن اعمال كنند. كلمه عبور هر یک از كاربران به شكل رمز نگارى شده براساس يكى از الگوریتم هاى رمزنگارى موجود در سيستم در اين فايل قرار مى گیرند.
دستو رات vipw , vigr
از اين دو دستور به منظور ويرايش كردن فايل هاى passwd و group و shadow استفاده مى شود. دستور vigi براى ويرايش كردن فايل group كه در مسير etc/group/ است، به كار مى رود. براى اين كار كافى است دستور را به تنهايى وارد كرده و كليد Enter را فشار دهيد. دستور vipw نيز به طورپیش فرض فايل passwd در مسير etc/passwd/ را ويرايش مى كند. اما اگر اين دستور را با سوئیچ -s استفاده كنيد، فايل shadow در مسير etc/shadow/ براى ويرايش باز مى شود. البته از دستور vipw براى ويرايش فایل group نيز مى توانيد استفاده كنيد. براى اين كار سوئیچ -g را همراه دستور vipw استفاده كنيد.
مديريت كاربران و گروه ها در سيستم
پس از آشنايى با اجزا و عملكرد فايل هاى اصلى احراز هويت كاربران در سيستم نوبت به بررسى نحوه ساخت و مديريت كاربران و گروه هاى موجو د در یک سيستم مى رسد كه توسط مجموعه اى از فرامين پیوسته صورت مى گیرد. در ادامه به بررسى نحوه كاركرد اين فرامين و ارائه مثال هال هایى از آنها مى پردازيم:
useradd : از اين دستور جهت تعريف كردن كاربر جديد استفاده مى شود و شكل كلى آن به شكل زير است:
# useradd [options] user_name
برخى از متداول ترين سوئيچ هاى دستور useradd به قرار زير هستند:
-m : در برخى از توزيع ها مانند SUSE Linux پس از ساخت یک كاربر در حالت پيش فرض براى آن كاربر شاخه خانگى ساخته نمى شود. با استفاده از اين سوئيج یک شاخه به نام كاربر در شاخه /home ساخته خواهد شد.
-d : با اين گزینه شاخه اى كه در دستور مشخص شده است به عنوان شاخ خانگى كاربر جديد در نظر گرفته مى شود.
# useradd ali -d /home/alavi
در اين مثال شاخه alavi به عنوان شاخ خانگی كاربر ali معرفى مى شود.
-s : اين سوئیچ پوسته اى را كه كاربر به طور پيش فرض با آن login مى كند را مشخص مى كند.
# useradd ali –m -s /bin/tcsh
ضمن اينكه شاخه اى به نام ali را در شاحه home/ مى سازد . login shell پيش فرض كاربر ali را tcsh قرار خواهد داد.
-e : با اين سوئیچ مى توانيد تاريخ پايان اعتبار كاربر را مشخص كنيد. به طور نمونه در مثال زير كاربر ali تا تاريخ 23-10-2005 در سيستم اعتبار دارد و پس از اين تاريخ قابل استفاده نخواهد بود.
# useradd ali –e 2005-10-23
-g : اين سوئیچ به شما اجازه مى دهد كاربر را درگروه مورد نظرتان عضو كنيد كه به عنوان گروه اصلى وى نيز است. به طور مثال كاربر ali در مثال زير حين ساخت در گروه backup قرار مى گیرد.
# useradd ali –g backup
userdel : از اين دستور جهت حذف كردن یک كاربر از سيستم استفاده مى شود و قالب آن به صورت زير است:
# userdel [options] user_name
از پركاربردترين سوئیچ هاى اين دستور -r مى باشد كه شاخه خانگی كاربر و تمام پارامترهاى وابسته به آن را پاک مى كند.
# userdel –r ali
در مثال فوق علاوه بر حذف شدن كاربر ali شاخه خانگی وى و هم امور زمان بندى شده مربوط به وى نيز حذف خواهد شد.
usermod : اين دستور به منظور تغيير مشخصات كاربرى استفاده مى شود و شكل كلى آن عبارت است از:
# usermod [options] user name
از جمله سوئیچ های مرسوم اين دستور عبارتند از:
-l : از اين سوئیچ جهت تغيير نام یک كاربر استفاده مى شود. به طور نمونه فرمان زير نام كاربر ali را به test تغییر مى دهد.
# usermod -l test ali
-d : از اين سوئیچ براى معرفی شاخه خانگی جديد كاربر مورد نظر استفاده مى شود.
# usermod –d /home/test ali
به طور نمونه در مثال فوق شاخه خانگی كاربر ali را از /home/ali به home/test/ تغيير پيدا مى كند. groupadd: اين دستور جهت ساخت یک گروه جديد در سيستم به كار مى رود كه قالب كلى آن عبارت است از:
# groupadd [options] group_name
از جمله سوئیچ هاى اين فرمان -g است كه با اين سوئیچ قادر خواهيد بود یک gid به گروه جديد تخصيص دهيد كه اين gid بايد عددى مثبت و منحصر به فرد باشد. با اجراى دستور زير، گروهى به نام gtest با 2006=gid ایجادمى شود.
#groupadd –g 2006 gtest
:groupdel از اين دستور براى حذف یک گروه مشخص استفاده مى شود كه عموما به شكل زير است:
# groupdel [options] group_name
groupmod : از اين دستور جهت تغيير مشخصات یک گروه استفاده مى شود كه برخى از سوئیچهاى آن به شرح زير هستند:
#groupmod [options] group_name
-g : براى تغییر gid استفاده مى شود.
-A : با استفاده از اين سوئيچ مى توانيد یک كاربر به گروه اضافه كنيد. به طور مثال دستور زير كاربر ali را به عنوان يكى از اعضاى جديد گروه gtest به آن اضافه مى كند.
# groupmod -A ali gtest
-R : به كمک اين سوییچ شما قادر خواهيد بود تا یک كاربر را از گروه حذف كنيد.
بررسى مجوزها در سيستم عامل هاى گنو/ لينوكسى
همان گونه كه مى دانيد در گنو/ لينوكس براى ساير كاربران جهت اعمال محدوديت بر روی منابع سيستم مجوزهايى وجود دارد كه شامل مجوزهاى w ، r و x است و برای هر یک از منابع سيستم اين مجوزها در 3 فيلد شامل مالک، گروه و ساير كاربران مرتبط با آن منبع تعريف مى شوند. زمانى كه اين مجوزها در قالب عددى نمايش داده مى شود، به صورت یک عدد سه رقمى است كه مقدار آن در محدوده 000 تا 777 قرار مى گیرد. حال در مواردى ممكن است با فايل ها و شاخه هايى برخورد كنيد كه داراى مجوزهای 4 رقمى هستند كه علاوه بر مجوزهاى ياد شده داراى مجوزهای یگرى هم هستند كه در ادامه به تشريح آنها خواهيم پرداخت.
مجو زهاى SUID , SGID, STICKY
Set User ID) SUID)
اگر فايلى داراى مجوز SUID باشد، كاربرانى كه مجوز اجراى آن فایل را داشته باشند مانند مالک فايل در نظر گرفته مى شوند. اين نوع مجوز عموما مخصوص فايل ها و فرامينى است كه نياز به دسترسى به منابع خاصى از سيستم و يا فايل هایى را دارند كه تنها كاربر ريشه مى تواند به آنها دسترسى داشته باشد. از جمله فرامينى كه اين مجوز را داراست فرمان chsh است كه جهت دسترسى به فايل etc/passwd/ اين مجوز را نياز دارد.
Set Group ID) SGID)
همانند SUID با اين تفاوت كه براى گروه ها اعمال مى شود. چنانچه فايلى داراى مجوز SGID باشد، گروه هايى كه مجوز اجراى آن فايل را داشته باشند، مانند گروه مالک فايل در نظر گرفته مى شوند.
Sticky bit
اين مجوز اصولا به شاخه ها داده مى شود و فايل ها درون شاخه هايى كه داراى اين مجوز هستند، تنها از طريق مالک آن فايل مى توانند حذف شوند، حتى اگر آن فايل براى همه كاربران داراى مجوز write باشد.
نحوه نمايش مجوزهاى اضافى
كاربران را به طور كلى مى توان در سه گروه زير دسته بندى كرد:
مالک فايل (Owner)
گروه (Group)
ديگران (Other)
همان طور كه مى دانيد مجوزى كه به یک فايل اعطا مى شود به صورت زيرنشان داده مى شود.
rwx rwx rwx
اولين rwx مربوط به مالک فايل بوده و چنانهه به شكل rwx باشد )كه همواره به اين شكل است( بدين معنا است كه مالک فايل داراى هر سه مجوز خواندن فايل، نوشتن در فايل و اجراى آن فايل است. دومين rwx مربوط به گروه فايل و سومين rwx مربوط به ساير كاربران سيستم است. مجوزهای SGID،SUID وsticky به جاى مجوزx قرار مى گیرند.
حال چنانچه در بخش مجوزهاى مالک فايلى به جاى حرف x، حرف s باشد، بدين معنا است كه كاربر علاوه بر مجوز اجراى آن فايل، مجوز SUID را نيز داراست. مثال rwsr-xr-x
در صورتى كه در مجوز فايلى به جاى حرف x ازحرف S استفاده شود، مجوز SUID كا آن فايل فعال
است اما مجوز اجرا ندارد.
مانند rwSr-xr-x
مجوز t براى یک شاخه به اين معناست كه آن شاخه علاوه بر مجوز اجرا و امكان وارد شدن به آن شاخه، داراى مجوز sticky نيز است و مجوز T بدين معنا است كه آن فايل مجوز اجرا ندارد اما داراى مجوز sticky است.
مثال rwxr-xr-t
در شكل نمايش عددى مجوزها ، SUID به صورت 4000، SGID با مقدار 2000 و sticky به شكل 1000 نمايش داده مى شود. جهت فعال سازى هر سه مجوز به صورت همزمان برروى یک منبع از مقدار 7000 استفاده مى شود.
فرمان chmod : از اين دستور براى تغيير در مجوز فايل ها يا شاخه ها استفاده مى شود كه شكل کلی آن بدين صورت است:
# chmod
نمونه اى از اين دستور به صورت زير است كه در آن به همه كاربران (other،group،owner) مجوز اجرا داده مى شود.
# chmod a=x demo.sh
با استفاده از سوئیچ a مجوز مورد نظر را مى توان روی تمام كاربران اعمال كرد. بنابراين در مثال فوق مجوز اجراى فايل demo.sh براى تمامى كاربرها فعال خواهد شد.
# chmod go+rw -R /home/document
در مثال دیگرى مشاهده مى كنيد كه به كاربران group و other مجوز خواندن و نوشتن بر روى تمام فايل های موجود در مسير /home/document داده مى شود. مى توان به جاى مقدار go+rw از 766 نیز استفاده كرد (كه در آن به مالک با عدد 7 تمام مجوز ها داده مى شود).
# chmod 744 /home/yadmane/mf
با اجراى اين فرمان مجوز های كاربران براى فایل mf به صورت زير تعريف خواهد شد:
rwx r- - r- -
یعنى مالک فايل داراى هر سه مجوز خواندن و نوشتن و اجراكردن فايل ذكر شده است ولى كاربرهاى group و other تنها داراى مجوز خواندن فايل هستند.
# chmod 1755 -R /home/yadmane/mf2
دراين مثال به شاخ مورد نظر مجوز sticky به تمام فايل ها و زير شاخه هاى موجو د در mf2 مجوز 755 داده شده است كه مى توان آن را به صورت rwx r-x r-t نمايش داد. اما با توجه به اينكه مجوز sticky براى شاخه mf2/ فعال است، بنابراين تنها مالک فايل ها قادرند فايل ها را حذف كنند.
فرمان umask : توسط اين فرمان مجوزهاى پيش فرض فايل ها و شاخه هاى سيستم را در زمان ساخت آنها مى توان مشخص كرد. در واقع اين دستور نشان دهنده مجوزهايى است كه فايل داراى آنها نيست. شكل كلى اين دستور به صورت زير است:
# umask [options] mode
از جمله سوئیچ هاى اين دستور -s مى باشد كه موجب مى شود خروجى در قالب حروف نمايش داده شود. اجراى اين فرمان به تنهايى مجوز پيش فرض سيستم جارى را نشان مى دهد. جهت تعيين مجوز پيش فرض سيستم، براى فايل ها ورودی اين فرمان را از 666 و براى شاخه ها از 777 كسر مى كنيم تا مجوز پيش فرض مشخص شود، مثلا اگر خروجى فرمان umask مقدار 0022 است آنگاه مجوز ييش فرض شاخه هاى ساخته شده 0755 و مجوز پيش فرض فايل ها 0644 خواهد بود.
فرمان chown: از اين دستور به منظور تغییر صاحب يا owner یک فايل يا شاخه استفاده مى شود. در اين دستور مى توان به همراه مشخص كردن صاحب فايل، گروه معينى را هم به وى تخصيص داد. شكل كلى دستور chown به صورت زير است:
# chown [options] owner [: group] file or folder_name
رايج ترين سوئيچ كه در اين دستور به كار می رود R- است كه باعث مى شود فرمان در زيرشاخه هاى یک شاخه مشخص اعمال شود. به طور مثال در اينجا صاحب فايل demo.doc را به کاربر ali تغییر داديم.
# chown ali /home/demo.doc
همان طور كه عنوان شد مى توان همزمان با تغییر صاحب فايل، گروه مالک فايل را نيز تغيير داد كه در مثال زير آن را مشاهده مى كنيد:
# chown ali:sales demo.doc
دراين مثال صاحب فايل doc.demo را به ali و گروه اين فايل را به sales تغییر داده ايم.
فرمان chroot : به كمک اين دستور مى توانيم مسير جارى پارتيشن ريشه را تغيير دهيم. كاربرد عمده اين دستور زمانى است كه در محيط یک توزيع قصد اتصال به پارتيشن ريشه یک توزيع دیگر و در نهايت قرار دادن پارتيشن ريشه آن به عنوان پارتيشن ريشه جارى را داريم. تنها ورودی اين فرمان نقطه اتصال پارتیشن ريشه مورد نظر است. به طور مثال اگر پارتيشن ريشه اى را روی /mnt سوار كرده باشيم آنگاه شكل دستور chroot به صورت زير خواهد بود:
# chroot /mnt
فرمان :chsh از اين دستور مى توانيد براى تغيير پوسته ( shell ) پيش فرض كاربر جارى استفاده كنيد. سوئيج -l اين فرمان روی profile مربوط به login تغيير ایجاد مى كند، به طورى كه از اين به بعد هر زمان كاربر به سيستم login كند با shell انتخابى توسط اين فرمان بالا مى آيد كه در فایل passwd نيز درج مى- شود. براى اينكه متوجه شويد درحال حاضر در كدام shell قرارداريد، مى توانيد از دستور زير استفاده كنيد كه با نمايش دادن مقدار متغير محيطى SHELL اين مقدار را نشان مى دهد:
# echo $SHELL
در اکثر سيستم عامل هاى گنو/ لينوكسى هم shell هاى موجود در سيستم در فايل /ete/shells قرار مى گیرند.
فرمان chfn : با استفاده از اين دستور كاربر مى تواند اطلاعات شخصى خود مانند نام كامل، شماره محل كار و... را تغيير دهد كه هم اين تغییرات در فايل passwd اعمال مى شوند. شكل كلى اين دستور به صورت زير است:
# chfn [options] UserID
برخى از سوئیچ هايى كه مى توانند با اين دستور استفاده شوند در زير ليست شده اند:
f- : براى تغيير نام كامل كاربر استفاده مى شود.
o- : براى تغییر شماره تلفن اتاق كارتان مى توانيد از اين سوئیچ استفاده كنيد.
p- : به منظور تغيير شماره تلفن محل كارتان از اين سوئیچ استفاده كنيد.
-h : براى تغيير شماره تلفن منزل استفاده مى شود.
-m : از اين سوئیچ براى اضافه كردن فيلدهايى كه به طور پيش فرض تعريف نشده اند استفاده مى شود. به طور مثال جهت تغيير نام كامل كاربر yadmane به yadi در فايل passwd از فرمان زير استفاده مى كنيم.
# chfn -f yadi yadmane
توجه داشته باشيد كه با اين فرمان تنها نام كاربرى تغییر مى كند و UserID و Username كاربر در زمان login بدون تغيير باقى مى ماند.
فرمان chgrp : از اين دستور به منظور تغيير گروه فايل و شاخه مورد نظر استفاده مى شود. شكل كلى آن همانند chown است:
# chgrp [options] group_name file_name
به طور نمونه در مثال زير گروه تمام فايل هايى كه در مسير home/docs/ قرار دارند به گروه dba تغییر پيدا مى كند.
# chgrp -R dba /home/docs
نگارنده : حسين عبدالكريمي تاریخ ارسال : 1388/9/25-03:54:41