پیش از خواندن این مطلب این لینک وآشنایی با مدیریت کاربران در لینوکس – بخش اول را بخوانید.
در این پست با فایل ها و متغیر های محلی هر کاربر لینوکسی و همچنین دسته بندی کردن کاربران در غالب گروه یا گروه ها آشنا شدیم و اهمیت گروه ها به خاطر تقسیم بندی منابع و فایل میان کاربران هر گروه با توجه به نیازهایشان است. ۴ فایلی که هر کاربر در دایرکتوری خانگی خود دارد نیز به همراه دستور هایی برای دریافت اطلاعات کاربری توضیح داده شدند.
در این پست با فایل ها و متغیر های محلی هر کاربر لینوکسی و همچنین دسته بندی کردن کاربران در غالب گروه یا گروه ها آشنا شدیم و اهمیت گروه ها به خاطر تقسیم بندی منابع و فایل میان کاربران هر گروه با توجه به نیازهایشان است. ۴ فایلی که هر کاربر در دایرکتوری خانگی خود دارد نیز به همراه دستور هایی برای دریافت اطلاعات کاربری توضیح داده شدند.
دستور های adduser و passwd نیاز به سطح کاربر ریشه دارند.
ایجاد یک حساب کاربری(اکانت)جدید:
لینوکس برای به هر کاربر یک شناسه و نام کاربری مخصوص داده می شود.هر کاربر در غالب گروه یا گروه هایی دسته بندی خواهتد شد تا از منابع و فغایل های گروه استفاده کنند. به هر کاربر یک دایرکتوری خانگی و یک شل پیش فرض به آن داده می شود.دستور useradd در یونیکس برای ایجاد کاربر ایجاد کاربران استفاده می شود که دارای تعدای گزینه برای همین اطلاعات پیش فرض استفاده می شود که مهمترین آنها بصورت زیر هستند :
c- : شرح اطلاعات اکانت جدید که اغلب نام کامل شخص است.
d- : معین کننده دیرکتوری اصلی که معمولا همان دایرکتوcmری خانگی است.
e- : تاریخ انقضای اکانت یا expire
-g : معین کننده گروه اصلی برای کاربر که اغلب شما در گروهی با نام کاربری خود خواهید بود.
G- : تعیین دیگر گروه های اکانت که گروه ها با کاما از هم جدا می شوند.
p- : تعیین کننده پسورد که باید بصورت کدگذاری شده باشد.(در ادامه با دستوری آشنا خواهیم شد که پسورد کدگذاری شده را ایجاد می کند و بهتر از این دستور پس از ایجاد اکانت استفاده شود).
u- : شناسه کاربر را تعیین می کند که اگر استفاده نشود یک بصورت خودکار عدد به کاربر داده می شود.معمولا یک عدد پیش فرض وجود دارد که با ایجاد هر کاربر جدید یکی به این عدد اضافه می شود و به کاربر جدید داده می شود.
در لینوکس فایلی در مسیر etc/ به نام login.defs وجود دارد که همین اطلاعات پیش فرض را در خود نگه می دارد و دستور useradd اطلاعات را از آن می خواند.در این فایل که مخفف login defines است اطلاعاتی مانند عبارات زیر وجود دارد :
لینوکس برای به هر کاربر یک شناسه و نام کاربری مخصوص داده می شود.هر کاربر در غالب گروه یا گروه هایی دسته بندی خواهتد شد تا از منابع و فغایل های گروه استفاده کنند. به هر کاربر یک دایرکتوری خانگی و یک شل پیش فرض به آن داده می شود.دستور useradd در یونیکس برای ایجاد کاربر ایجاد کاربران استفاده می شود که دارای تعدای گزینه برای همین اطلاعات پیش فرض استفاده می شود که مهمترین آنها بصورت زیر هستند :
c- : شرح اطلاعات اکانت جدید که اغلب نام کامل شخص است.
d- : معین کننده دیرکتوری اصلی که معمولا همان دایرکتوcmری خانگی است.
e- : تاریخ انقضای اکانت یا expire
-g : معین کننده گروه اصلی برای کاربر که اغلب شما در گروهی با نام کاربری خود خواهید بود.
G- : تعیین دیگر گروه های اکانت که گروه ها با کاما از هم جدا می شوند.
p- : تعیین کننده پسورد که باید بصورت کدگذاری شده باشد.(در ادامه با دستوری آشنا خواهیم شد که پسورد کدگذاری شده را ایجاد می کند و بهتر از این دستور پس از ایجاد اکانت استفاده شود).
u- : شناسه کاربر را تعیین می کند که اگر استفاده نشود یک بصورت خودکار عدد به کاربر داده می شود.معمولا یک عدد پیش فرض وجود دارد که با ایجاد هر کاربر جدید یکی به این عدد اضافه می شود و به کاربر جدید داده می شود.
در لینوکس فایلی در مسیر etc/ به نام login.defs وجود دارد که همین اطلاعات پیش فرض را در خود نگه می دارد و دستور useradd اطلاعات را از آن می خواند.در این فایل که مخفف login defines است اطلاعاتی مانند عبارات زیر وجود دارد :
MAIL_DIR /var/spool/mail تعیین کننده دایرکتوری پیش فرض پست الکترونیک برای کاربران
PASS_MIN_LEN حداقل کارکتر ها برای پسورد ها
PASS_MIN_LEN حداقل کارکتر ها برای پسورد ها
UID_MIN همانطور که گفته شد اگر از گزینه u برای تعیین شناسه کاربری استفاده نکنید یک عدد بصورت خودکار به آن داده می شود که مقدار اولیه این عدد بصورت پیش فرض با عبارت UID_MIN معین می شود.
GID_MIN مانند عبارت قبلی اما برای تعیین عدد پیش فرض برای گروه اصلی کاربر
CREATE_HOME از نام آن معلوم است و تعیین کننده اینکه ایا دایرکتوری خانگی ایجاد شود و آن بعنوان دایرکتوری خانگی شما باشد که ارتباط با گزینه d دارد.
UMASK یک عدد خاص دارد که تعیین می کند هرگاه کاربر یک فایل یا دایرکتوری ایجاد کرد چه پرمیشن پیش فرضی به آن داده شود بطور ساده تر این دستور یک پرمیشن پیش فرض برای فایل و یک پرمیشن پیش فرض برای دایرکتوری های ایجاد شده توسط کاربران را معلوم می کند.(بخش پرمیشن ها را بخوانید)
برای انکه محتویات این دستور را ببینید دستور زیر را در خط فرمان اجرا کنید:
GID_MIN مانند عبارت قبلی اما برای تعیین عدد پیش فرض برای گروه اصلی کاربر
CREATE_HOME از نام آن معلوم است و تعیین کننده اینکه ایا دایرکتوری خانگی ایجاد شود و آن بعنوان دایرکتوری خانگی شما باشد که ارتباط با گزینه d دارد.
UMASK یک عدد خاص دارد که تعیین می کند هرگاه کاربر یک فایل یا دایرکتوری ایجاد کرد چه پرمیشن پیش فرضی به آن داده شود بطور ساده تر این دستور یک پرمیشن پیش فرض برای فایل و یک پرمیشن پیش فرض برای دایرکتوری های ایجاد شده توسط کاربران را معلوم می کند.(بخش پرمیشن ها را بخوانید)
برای انکه محتویات این دستور را ببینید دستور زیر را در خط فرمان اجرا کنید:
cat /etc/login.defs
تعیین پسور برای اکانت جدید :
فایل دیگری که در ارتباط با کاربران است فایل passwd ودر مسیر etc/ قرار دارد. به ازای هر کاربر موجود در یک خط در ارتباط با آن کاربر وجود دارد که هر خط آن در قالب زیر است :
username:password:uid:gid:user id Info:home_directory:default_shell
خط مربوط به من در این فایل که amirnami معرف نام کاربری من است.
mirza:x:500:500:amirnami:/home/amirnami:/bin/bash
هرگاه که یک کاربر جدید به سیستم اضافه می شود یک خط برای آن در این فایل اضافه می شود.برای درک بیشتر دستور زیر را برای ایجاد یک کاربر به نام user1 اجرا کنید. دستور – su برای داشتن امکانات کاربر ریشه است چون دستور useradd از دستورهای کاربر ریشه است.
– suuseradd user1
و سپس با دستور cat /etc/passdw به دنبال خطی که حاوی user1 باشد بگردید که آن خط مانند خط زیر باید باشد
user1:x:501:501::/home/user1:/bin/bash
توجه کنید در خط عدد 501 اولی نشان دهنده شناسه کاربر و اینکه برای این عدد 501 شده است چونکه عبارت UID_MIN در فایل login.defs عدد 500 بوده و چون کاربر amirnami پیش از این در سیستم ثبت شده عدد 500 متعلق به آن است و همین روند افزایشی برای دیگر کاربران صادق است مگر اینکه با گزینه u از دستور useradd شناسه کاربر را خودتان تعیین کنید و همین توضیح برای عدد دوم که متعلق به شناسه گروه است نیز صادق است. البته می توان از قبل گروهی را ایجاد کرد و ان گروه را به کاربر از طریق گزینه g تعلق داد اما چون گروهی تعیین نشده پس سیستم یگ گروه همنام با نام کاربری خود کاربر جدی به کاربر جدید می دهد.
پس از مراحل بالا نوبت به دادن پسورد به کاربر است پس برای این کار از دستور passwd بصورت زیر استفاده می کنیم
پس از مراحل بالا نوبت به دادن پسورد به کاربر است پس برای این کار از دستور passwd بصورت زیر استفاده می کنیم
supasswd username
برای کاربر user1 :
passwd user1
New Password
Retype New Password
دو خط قرمز معلوم است که از شما می خواهد یک پسورد وارد کنید و پس از زدن Enter دوباره آنرا تکرار کنید و پس از تکمیل دستور خط زیر بعنوان موفقیت در انجام دستور نشان داده خواهد شد.
passwd: all authentication tokens updated successfully
حال که شما با ایجاد یک اکانت جدید اشنا شدید اید بخواهید که کلمه عبور خود یا یک کاربر خاص را تغییر دهید این کارر در یونیکس توسط دستور passwd انجام خواهد شد که بصورت زیر است :
۱ – شما می خواهید نام کاربری خود را عوض کنید که باید دستورpasswd را به تنهایی اجرا کنید. اجرای تنهای دستور passwd شما به دستور passwd می گویید که می خواهیم پسورد کاربر فعلی یعنی خودم را عوض کنم
۱ – شما می خواهید نام کاربری خود را عوض کنید که باید دستورpasswd را به تنهایی اجرا کنید. اجرای تنهای دستور passwd شما به دستور passwd می گویید که می خواهیم پسورد کاربر فعلی یعنی خودم را عوض کنم
passwd
۲ – یا اینکه می خواهید پسورد یک کاربر خاص تغییر دهیم که بصورت زیر خواهد بود.
passwd username
در هردو حالت باید پسورد جدید را مانند بالا یک بار وارد کنید و دوبازره برای تایید تطابق آنرا وارد کنید.یک مثال :
برای پایان مبحث یک مثال کلی از ایجاد تا تعیین پسورد خواهیم گفت :
برای پایان مبحث یک مثال کلی از ایجاد تا تعیین پسورد خواهیم گفت :
step 1 : Create Account
useradd -g users -c “New User” -s /bin/csh user2step 2 : Set Password for user2
passwd user2
type password and retype password
حذف کاربر :
دستور userdel برای حذف یک کاربر از سیستم بکار می رود. این دستور جز دستور های کاربر ریشه بوده و برای اجرای آن نیاز به داشتن سطح کاربر ریشه دارید و بصورت زیر استفاده می شود :
– su
userdel username
برای کاربر user1 بصورت زیر استفاده خواهد شد.
userdel user1
تغییر اطلاعات اکانت کاربران :
در بالا به چگونگی ایجاد یک اکانت جدید و دادن اطلاعات لازم و ضروری برای کار روی سیستم آشنا شدید اما می توان به غیر از اطلاعات بالا دیگر اطلاعاتی مانند اطلاعات تماس و آدرس ها را برای کاربر بعنوان پروفایل آن کاربر اضافه نمود. در لینوکس دستوری به نام chfn که مخفف change fullname است وجود دارد که اطلاعاتی از قبیل آذرس و تلفن های تماس را دریافت می کند. اگر می خواهید برای کاربر فعلی یعنی خودتان انجام دهید کافیست دستور chfn را اجرا کنید و اطلاعات لازم را وارد کنید و برای پر کردن اطلاع بعدی Enter را بزنید و اگر هم می خواهید برای دیگر کاربران انجام دهید باید بصورت زیر باشد.
chfn username
البته توجه کنید که با انجام حالت دوم (خط بالا) باید دسترسی کاربر ریشه داشته باشید.البته برای انکه بتوانید دستور بالا را بصورت گرافیکی انجام دهید دستور دیگری به نام userinfo وجود دارد که عملکرد آن همان دستور chfn است اما بصورت گرافیکی و بازهم حالت تغییر اطلاعات برای کاربر دیگر نیاز به سطح دسترسی ریشه دارد.در زیر حالت نخست برای کاربر فعلی یعنی شما و حالت دوم برای کاربری خاص بکار می رود و حالت دوم نیاز به داشتن سطح ریشه دارد.
userinfo
userinfo username
دستور گرافیکی userpasswd برای انجام عمل دستور passwd وجود دارد که مانند مشابه متنی خود برای دادن یک پسورد به کاربر جدید و همچنین برای تغییر پسورد بکار می رود.در زیر حالت نخست برای کاربر فعلی یعنی شما و حالت دوم برای کاربری خاص بکار می رود و حالت دوم نیاز به داشتن سطح ریشه دارد.
userpasswd
userpasswd username
مدیریت گروه ها :
دستور های بالا برای ایجاد و مدیریت کاربران بود و همانطور که گفته شد کاربران در دسته گروه هایی قرار می گیرند. فایلی که بطور مستقیم با گروه ها در ارتباط است فایلی به نام group در مسیر etc/ قرار دارد و برای دیدین آن دستور cat /etc/group را اجرا کنید. خروجی شامل خطوطیست که هر خط متعلق به یک گروه و همراه شناسه و پسورد گروه است.هر خط بصورت زیر خواهد بود.
groupname:password:gid:lists users
cdrom:x:24:vivek,student13,raj
cdrom نام گروه و x معرف پسورد ذخیره شده با تکنولوژی shadow و 24 معرف شناسه گروه و در نهاست فهرست اخر فهرست کاربران عضو است.
ایجاد و حذف یک گروه جدید و افزودن کاربر به آن :
دستور groupadd برای ایجاد یک گروه جدید یکار می رود و دستور groupdel برای حذف یک گروه از سیستم. به ازای ایجاد یک گروه یک خط در فایل group ایجاد می شود.
دستور groupadd برای ایجاد یک گروه جدید یکار می رود و دستور groupdel برای حذف یک گروه از سیستم. به ازای ایجاد یک گروه یک خط در فایل group ایجاد می شود.
groupadd groupname
groupdel groupname
همچنین دستوری به نام gpasswd وجود دارد که مخفف group password است و مشابه passwd اما برای دادن کلمه عبور جدید به گروه و یا تغییر ان بکار می رود.
توجه : دستور useradd -D رو با دسترسی کاربر ریشه برای نمایش اطلاعات پیش فرض گفته شده در بالاکه در فایل login.defs ذخیره شده اند استفاده کنید.
دستور usermode :
برای تغییر در یک اکانت بکار می رود.دارای ۲ گزینه اساسی و کاربردی دارکه:
گزینه L برای Lock کردن یا غیر فعال کردن پسورد کاربر مورد نظر و غیر فعال کردن آن کاربر بکار می رود.
گزینه U برای Unlock کردن پسورد و فعال کردن دوبازه اکانت و اجازه دسترسی و login کردن به سیستم.
خطوط زیر را در دسترسی کاربر ریشه وارد نمایید :
برای تغییر در یک اکانت بکار می رود.دارای ۲ گزینه اساسی و کاربردی دارکه:
گزینه L برای Lock کردن یا غیر فعال کردن پسورد کاربر مورد نظر و غیر فعال کردن آن کاربر بکار می رود.
گزینه U برای Unlock کردن پسورد و فعال کردن دوبازه اکانت و اجازه دسترسی و login کردن به سیستم.
خطوط زیر را در دسترسی کاربر ریشه وارد نمایید :
useradd -mc ” Sample tutorial” -e 2011/11/8 -s /bin/tcsh user1passwd user1
NEW PASSWORD ENTER
RETYPE PASSWORD ENTER
حالا کلید های Ctrl+Alt+F2 را فشرده تا وارد محیط ترمینال مجازی شوید و با کاربر USER1 به سیستم LOGIN شوید.شما می توانید وارد شوید اما در تارخ هشتم نوامبر تاریخ expire است.
در همان ترمینال مجازی با دستور – su کاربر ریشه شوید و دستور زیر را اجرا کنید.
در همان ترمینال مجازی با دستور – su کاربر ریشه شوید و دستور زیر را اجرا کنید.
usermod -L user1