کرنل لینوکس این امکان را به کاربرانی که هویت آنها تصدیق شده باشد میدهد تا بتوانند به فایلها و دایرکتوری هایی که دسترسی به آنها برای آن کاربر مد نظر باز گذاشته شده است دست یابند. در لینوکس، هویت هر کاربر با یک شناسه ی کاربری که تحت عنوان uid (بر گرفته از User ID به معنی شناسه ی کاربری) شناخته میشود مشخص میگردد؛ در عین حال، دیتابیسی در سیستم عامل گنو/لینوکس وجود دارد که Username (یوزرنیم یا نام کاربری) هر کاربر به همراه uid وی در آن به ثبت میرسند.
زمانی که در لینوکس یک کاربر جدید ایجاد میکنیم، اطلاعات این کاربر جدید به این دیتابیس افزوده شده و یک دایرکتوری home اختصاصی برای این کاربر جدید ایجاد میگردد.
در فایلی تحت عنوان passwd که در مسیر etc/passwd/ قرار دارد، اطلاعات قرار گرفته در جدول زیر برای هر کاربر جدیدی که ایجاد شود ذخیره میشود:
اگر بخواهیم فیلدهای فوق الذکر را در کنار هم داشته باشیم، می توانیم نمونه ی یوزر روت زیر را در نظر بگیریم:
root:x:0:0:root:/root:/bin/bash
انواع اکانت های کاربری در لینوکس
به صورت پیشفرض، لینوکس دارای ۴ نوع اکانت کاربری به شرح زیر است:
- روت
- سیستم
- نرمال
- شبکه
به عنوان یک راهکار امنیتی، توصیه میشود که تا حد ممکن پرمیشن های محدودی به اکانت های کاربری اختصاص دهید و همواره مراقب باشید تا اکانت های غیر فعال را حذف نمایید.
نکته برای آن که متوجه شویم آخرین باری که یک کاربر در سیستم لاگین کرده چه زمانی بوده، میتوانیم از دستور last استفاده نماییم.به طور کلی، root اکانتی در لینوکس است که دارای بیشترین سطح دسترسی ها و پرمیشن ها است؛ با استفاده از اکانت روت میتوان به مدیریت کامل سیستم پرداخت از آن جمله میتوان به حذف/اضافه نمودن اکانت های جدید، تغییر پسورد، نصب نرمافزار، تغییر فایلهای سیستمی، ریبوت سرویس های سیستمی و غیره پرداخت.
زمانی که ما با اکانت root در سیستم لاگین می کنیم، در کامند لاین علامت # نمایش داده میشود که این علامت حاکی از روت بودن سیستم است:
root@sokanacademy-inspiron-1545:/#
هشدار
زمانی که با اکانت روت وارد سیستم می شویم، می بایست خیلی مراقب باشیم چرا که اگر دستوری را به اشتباه اجرا کنیم، شاید امکان جبران خرابی ها به بار آمده دیگر وجود نداشته باشد!
مقایسه ی دستورات sudo و su
در لینوکس این امکان برای کاربران عادی که روت نیستند فراهم شده تا در صورت نیاز، بتوانند به صورت موقت از پرمیشن های روت برخوردار شده و کارهایی که نیاز به سطح دسترسی روت دارند را عملی سازند. برای این کار، ۲ دستور مختلف وجود دارد که عبارتند از sudo و su که تفاوتهای این ۲ دستور در جدول زیر ارائه شده است:
قابلیتهای دستور sudo
دستور sudo این امکان را در اختیار ما قرار میدهد تا بتوان رفتار کاربرانی که از این دستور استفاده نموده اند را رصد کرد؛ به عبارت دیگر، اگر کاربری با استفاده از دستور sudo اقدام به گرفتن پرمیشن های روت کند اما پسورد وارد شده توسط وی اشتباه باشد، پیغامی همچون چیزی که در ادامه مشاهده میکنید در فایل لاگ های سیستمی ذخیره میگردد:
authentication failure; logname=op uid=0 euid=0 tty=/dev/pts/6 ruser=op rhost= user=op
conversation failed
auth could not identify password for [op]
op : 1 incorrect password attempt ;
TTY=pts/6 ; PWD=/var/log ; USER=root ; COMMAND=/bin/bash
همانطور که میبینیم، کلیهٔ جزئیات در اختیار ما قرار خواهد گرفت.