اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

مدیریت کاربران، گروه ها، سطوح دسترسی و خصوصیت فایل ها در لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    مدیریت کاربران، گروه ها، سطوح دسترسی و خصوصیت فایل ها در لینوکس

    در این مقاله به آموزش مدیریت سطوح دسترسی User ها و Group ها، Permission های فایل، Attribute ها و فعال کردن دسترسی sudo روی Account ها در سیستم های لینوکسی خواهیم پرداخت. از آنجایی که سیستم عامل لینوکس یک سیستم عامل چند کاربره میباشد (یعنی چندین کاربر میتوانند از روی سیستم های مختلف به سیستم عامل دسترسی داشته و با آن کار نمایند) توانایی مدیریت یوزرها در لینوکس امری ضروری برای مدیر سیستم میباشد. این مدیریت شامل اضافه کردن (add)، ویرایش (edit)، حذف (deleted) و معلق کردن حساب های کاربری (suspend) همراه با توانایی تخصیص مجوزهای لازم برای حساب های کاربری مختلف برای انجام وظایف آنها میباشد.



    اضافه کردن حساب کاربری

    برای اضافه کردن یک کاربر در سیستم عامل لینوکس شما باید یکی از دستورات زیر را با یوزر root اجرا نمایید :
    کد PHP:
    # adduser [new_account]
    # useradd [new_account] 
    هنگام افزوده شدن یک user به سیستم عملیات زیر اعمال میشوند :

    1 - دایرکتوری خانگی آن کاربر بصورت پیشفرض در مسیر /home/username ایجاد میشود.

    2 - فایل های مخفی زیر به home directory کاربر کپی شده و برای تولید متغیرهای محیطی کاربر ایجاد شده، استفاده میشوند:
    کد PHP:
    .bash_logout
    .bash_profile
    .bashrc 
    3 - یک mail spool برای یوزر در مسیر /var/spool/mail/username ساخته میشود.

    4 - یک group هم بنام یوزر جدید ایجاد میشود.



    بررسی فایل /etc/passwd

    اطلاعات کامل اکانت های کاربری در فایل /etc/passwd ذخیره میشوند. این فایل برای هر user موجود در سیستم یک رکورد دارد. و فرمت رکورد بصورت زیر میباشد که فیلدها با کراکتر ":" از هم جدا میشوند :
    کد PHP:
    [username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell
    فیلد های [username] و [Comment] که خودشان همانطور از اسم شان مشخص هست توضیح دهنده ی فیلد هستند.
    فیلد x در دومین فیلد مشخص میکند که اکانت توسط یک پسورد مخفی محافظت میشود (که در فایل /etc/shadow ذخیره شده است) که برای logon کردن با [username] مورد نیاز است.
    فیلد های [UID] و [GID] اعدادی هستند که به ترتیب شناسه کاربر و شناسه گروه اولیه که [username] متعلق به آن گروه است، را مشخص میکنند.
    فیلد [Home directory] مسیر کامل دایرکتوری home کاربر [username] را نشان میدهد.
    فیلد [Default shell] مشخص کننده shell یی میباشد که بعد از login کردن کاربر در دسترس آن کاربر قرار میگیرد.



    بررسی فایل /etc/group

    اطلاعات گروه ها در فایل /etc/group ذخیره میشوند که هر رکورد در این فایل دارای فرمت زیر میباشد:
    کد PHP:
    [Group name]:[Group password]:[GID]:[Group members
    [Group name] نام گروه میباشد.
    کاراکتر x در فیلد [Group password] به این معنی میباشد که پسورد برای گروه ها استفاده نمیشوند.
    [GID] مشابه gid در فایل /etc/passwd میباشد.
    [Group members] لیستی از کاربرانی میباشد که عضو گروه [Group name] هستند. نام کاربران با کاراکتر کاما از هم جدا میشوند.
    کد PHP:
    [root@linuxzone ~]# grep --color parham /etc/passwd
    parham:x:1000:1000:super admin:/home/parham:/bin/bash
    [root@linuxzone ~]#
    [root@linuxzone ~]# grep --color parham /etc/group
    parham:x:1000:parham
    [root@linuxzone ~]
    بعد از افزودن یک کاربر، میتوانید با دستور usermod مشخصات آن کاربر را ویرایش نمایید. ساختار پایه یی دستور usermod بصورت زیر میباشد:
    کد PHP:
    usermod [options] [username


    خصوصیاتی که با دستور usermod میتوانید تغییر بدهید عبارتند از :


    تنظیم کردن تاریخ انقضا برای یک کاربر

    آپشن –expiredate را با دستور usermod همراه با تاریخ با فرمت YYYY-MM-DD برای ست کردن تاریخ انقضا برای یک کاربر بصورت زیر استفاده نمایید:
    کد PHP:
    # usermod --expiredate 2014-10-30 linuxzone 

    افزودن کاربر به گروه های دیگر

    آپشن –aG یا –append –groups همراه با لیستی از نام گروه هایی که میخواهید کاربر را عضو آنها نمایید بصورت زیر استفاده نمایید:
    کد PHP:
    # usermod --append --groups root,users linuxzone 

    تغییر مسیر پیش فرض دایرکتوری Home کاربر

    با آپشن –home و یا –d و در ادامه مسیر مورد نظر برای دایرکتوری homeرا بصورت زیر با دستور usermod استفاده نمایید :
    کد PHP:
    # usermod --home /tmp linuxzone 

    تغییر shell پیشفرض کاربر

    آپشن –shell همراه با مسیر کامل shell جدید را بصورت زیر استفاده نمایید:
    کد PHP:
    # usermod --shell /bin/sh linuxzone 

    نمایش گروه هایی که یک کاربر عضو آن هست

    برای نمایش گروه هایی که یک کاربر عضو آن میباشد، از دستور زیر استفاده کنید.

    کد PHP:
    # groups username
    # id username 
    حال بیایید تمامی دستورات فوق را در یک دستور بکار ببریم :
    کد PHP:
    # usermod --expiredate 2014-10-30 --append --groups root,users --home /tmp --shell /bin/sh linuxzone 
    در مثال فوق ما تاریخ انقضای کاربر username را به تاریخ 30 اکتبر 2014 ست نمودیم. همچنین کاربر را به گروه های root و users اضافه کردیم. و در نهایت shell پیشفرض کاربر را به sh و دایرکتوری home آن را به /tmp تغییر دادیم.


    توصیه میشود مقالات زیر را هم مطالعه کنید :

    دستور useradd در لینوکس به همراه 15 مثال عملی

    دستور usermod در لینوکس به همراه 15 مثال عملی



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


    غیر فعال کردن اکانت کاربری با قفل کردن پسورد

    آپشن –lock یا –L را بصورت زیر استفاده نمایید :
    کد PHP:
    # usermod --lock linuxzone 

    unlock پسورد یک کاربر

    آپشن –u و یا –unlock را برای unlock کردن پسورد یوزر که قبلا قفل شده بود را استفاده کنید :
    کد PHP:
    # usermod --unlock linuxzone 

    ایجاد گروه جدید

    برای ایجاد گروه جدید جهت دادن مجوز دسترسی read و write به فایل هایی که احتیاج هست توسط چندین user دیده بشوند از دستورات زیر استفاده کنید.
    کد PHP:
    # groupadd common_group # Add a new group
    # chown :common_group common.txt # Change the group owner of common.txt to common_group
    # usermod -aG common_group user1 # Add user1 to common_group
    # usermod -aG common_group user2 # Add user2 to common_group
    # usermod -aG common_group user3 # Add user3 to common_group 

    حذف گروه

    با دستور زیر میتوانید یک گروه را delete کنید :
    کد PHP:
    # groupdel [group_name] 
    اگر فایل یا فایلهایی به گروه group_name تعلق داشته باشند، حذف نخواهند شد اما group owner فایلها برابر با gid گروهی (group) که پاک شده، خواهد شد.



    Permission فایل ها در لینوکس : (سطوح دسترسی)

    علاوه بر پرمیژنهای read، write و execute اصلی موجود در لینوکس و ابزارهای Archive/Compress فایل ها و دایرکتوریها به همراه تنظیمات ویژگی فایل ها که در بخش سوم این سری آموزش ها مطرح کردیم، یک سری تنظیمات سطوح دسترسی کم کاربرد اما مهم دیگر نیز وجو دارند که گاهی اوقات به آنها "پرمیژنهای خاص" نیز میگوییم.

    مانند پرمیژنهای اصلی که قبلا بحث کردیم، پرمیژنهای خاص را میتوان با استفاده از عدهای هشت تایی (octal file) یا از طریق یک حرف (symbolic notation ، که نوع پرمیژن را نمایش می دهند) تعریف کرد.


    Delete کردن اکانت کاربران

    شما با استفاده از دستور userdel با آپشن –remove میتوانید یک کاربر را با home directory آن همراه با تمامی فایل های مربوط به آن کاربر و ایمیل های کاربر را حذف نمایید. دستور بصورت زیر میباشد :
    کد PHP:
    # userdel --remove [username] 

    مدیریت گروه ها

    هرگاه که کاربر جدید به سیستم اضافه میکنید یک گروه جدید با همان نام به سیستم اضافه شده و کاربر ایجاد شده تنها عضو آن گروه میباشد. بعدا میتوانید کاربران دیگری را به گروه اضافه نمایید. یکی از اهداف ایجاد گروه در لینوکس مدیریت کنترل دسترسی به فایل ها و منابع سیستم با ست کردن دسترسی ها روی آن منابع میباشد. فرض کنید کاربران زیر را داشته باشید :
    • User1 با گروه اولیه بنام user1
    • User2 با گروه اولیه بنام user2
    • User3 با گروه اولیه بنام user3


    و همه آنها نیازمند دسترسی read و write به فایلی بنام common.txt دارند که این فایل روی سیستم local شما قرار دارد و یا اینکه کاربر user1 آن را در شبکه به اشتراک گذاشته است. شاید وسوسه شوید که کاری بصورت زیر انجام دهید:
    کد PHP:
    # chmod 660 common.txt
    OR
    # chmod u=rw,g=rw,o= common.txt [notice the space between the last equal sign and the file name] 
    توجه نمایید که بعد از علامت مساوی در دستور دوم فاصله میباشد.

    با اینکه این دستور دسترسی read و write به صاحب فایل و کاربرانی که عضو گروه آن فایل (یعنی user1) هستند را میدهد. شاید بخواهید با اضافه کردن کاربران user2 و user3 به گروه user1 این کار را انجام دهید. اما باید دقت کنید که با این کار به تمامی فایل های کاربر user1 و گروه user1 دسترسی read و write میدهید.

    اینجاست که گروه ها به کمک ما می آیند. و در موارد مشابه باید کارهای زیر را انجام دهید.



    درک و بررسی setuid

    هنگامی که پرمیژن setuid را به یک فایل اجرایی اعمال مینمایید کاربری که آن برنامه را اجرا میکند پرمیژنهای owner برنامه را به ارث میبرد. چون این روش مشکلات امنیتی ایجاد میکند تعداد فایل هایی که مجوز setuid روی آنها ست شده باید کم باشد. این permission زمانی به کار میرود که کاربری بخواهد به فایلی دسترسی داشته باشد که owner آن یوزر root میباشد.

    خلاصه اینکه کاربر نه تنها میتواند فایل باینری را اجرا کند بلکه میتواند فایل را با مجوز root اجرا کند. بیایید به بررسی permission فایل /bin/passwd بپردازیم. این فایل باینری برای تغییر پسورد اکانت ها استفاده میشود و فایل /etc/shadow را تغییر میدهد. کاربر root میتواند پسورد هر کاربری را تغییر بدهد. اما سایر user ها فقط میتوانند پسورد خود را تغییر بدهند.
    مدیریت کاربران در لینوکس










    پس هر کاربری باید بتواند /bin/passwd را اجرا کند ولی تنها کاربر root قادر خواهد بود اکانتی را تعیین نماید. سایر کاربران فقط میتوانند پسورد مربوط به خودشان را تغییر دهند.
    کد PHP:
    [mohammad@linuxzone ~]$ passwd ahmad
    passwd
    Only root can specify a user name.
    [
    mohammad@linuxzone ~]$
    [
    mohammad@linuxzone ~]$ passwd
    Changing password 
    for user mohammad.
    Changing password for mohammad.
    (
    currentUNIX password:
    New 
    password:
    Retype new password:
    passwdall authentication tokens updated successfully.
    [
    mohammad@linuxzone ~]$ 


    درک و بررسی Setgid

    هنگامی که بیت setgid نعریف میشود GID کاربر حقیقی برابر GID مربوط به owner آنگروه میشود. پس هر کاربر میتواند با توجه به سطوح دسترسی داده شده همانند owner گروه به فایل ها دسترسی داشته باشد. بعلاوه هنگامی که بیت setgid روی یک دایرکتوری تعریف میشود فایل هایی که اخیرا در آن ایجاد شده اند group خود را همانند group دایرکتوری به ارث میبرند و همچنین زیر دایرکتوری های جدیدا ایجاد شده نیز بیت setgid را از دایرکتوری parent خود به ارث میبرند. شما اکثرا از این امکان زمانی استفاده میکنید که بخواهید به اعضای یک گروه خاص دسترسی به همه فایل های یک دایرکتوری را بدون توجه به primery group مربوط به owner فایل بدهید.
    کد PHP:
    # chmod g+s [filename] 
    برای تنظیم کردن setgid به شکل octal عدد 2 را به ابتدای permision اصلی و در حال حاضر (یا پرمیژن دلخواه) اضافه کنید :
    کد PHP:
    # chmod 2755 [directory] 
    تنظیمات SETGID در directory
    مدیریت یوزرها و گروه ها در لینوکس











    درک و بررسی Sticky Bit

    اگر “sticky bit” روی فایل ست شود لینوکس آن را نادیده میگیرد. در حالیکه برای دایرکتوری ها “sticky bit” باعث میشود که کاربران نتوانند فایل های داخل آن پوشه را حذف یا rename کنند مگر اینکه مالک آن پوشه یا فایل باشند و یا اینکه کاربر root باشد.
    کد PHP:
    # chmod o+t [directory] 
    برای تعریف کردن “sticky bit” به روش octal عدد 1 را به ابتدای permision اصلی و در حال حاضر (یا پرمیژن دلخواه) اضافه کنید :
    کد PHP:
    # chmod 1755 [directory] 
    بدون sticky bit افرادی که پرمیژن write در یک دایرکتوری را دارند میتوانند فایل های آن دایرکتوری را حذف یا تغییر نام دهند. به همین دلیل sticky bit عموما روی دایرکتوری هایی مثل دایرکتوری /tmp که قابل دسترس برای همه هستند تنظیم میشود.
    سطوح دسترسی و پرمیژن ها در لینوکس












    خصوصیات ویژه فایل

    در لینوکس خصوصیات دیگری وجود دارد که امکان افزودن محدودیت های بیشتر روی فایل ها را میدهند. مثلا جلوگیری کردن از امکان جابجایی، حذف، تغییر نام یا اعمال تغییرات روی فایل. برای تعریف این موارد از دستور chattr استفاده میکنیم. و برای نمایش موارد تعریف شده از ابزار lsattr استفاده میکنیم.
    کد PHP:
    # chattr +i file1
    # chattr +a file2 
    پس از اجرای دو دستور فوق فایل file1 تغییر ناپذیر خواهد شد. (این به معنی است که این فایل حذف، rename، جابجا و تغییر نخواهد کرد) در حالی که file2 به مد append-only وارد میشود (این بدین معناست که محتوای فایل در نوشتن به مد append تغییر یافته یعنی محتوای جدید فایل به محتوای قبلی فایل اضافه میگردد و در حقیقت محتوای قبلی از فایل حذف نمیشود).
    مدیریت کاربران و گروه ها در linux







    همچنین توصیه میشود مطالعه کنید :

    5 دستور chattr برای ایجاد فایل های مهم IMMUTABLE (غیرقابل تغییر) در لینوکس




    دسترسی به اکانت root و استفاده از sudo

    یکی از راه هایی که کاربران میتوانند دسترسی به کاربر root داشته باشند با استفاده از دستور زیر میباشد :
    کد PHP:
    su 
    و سپس پسورد root را وارد نمایند.

    اگر اهراز هویت به درستی انجام شود شما با یوزر root لاگین خواهید بود و در مسیری قرار خواهید گرفت که قبل از زدن دستور فوق بودید. اگر میخواهید که در دایرکتوری home کاربر root قرار بگیرید، به جای دستور su از دستور زیر استفاده نمایید :
    کد PHP:
    su 
    و سپس پسورد root را وارد نمایید.
    ایجاد کاربر با دسترسی sudo در لینوکس










    برای اجرای دستورات فوق لازم هست که کاربر عادی پسورد کاربر root را داشته باشد و این یک ریسک امنیتی میباشد. به همین دلیل مدیران سیستم ها میتوانند دستور sudo را کانفیگ نمایند تا برای اجازه دادن به کاربران معمولی اجازه دهد که دستورات با یک یوزر متفاوت (معمولا یک superuser) به شیوه ای کاملا کنترل شده و محدود اجرا کند. پس میتوان روی یک کاربر مجدودیت هایی اعمال کرد تا بتواند یک یا چندین دستور را اجرا کند (و نه اینکه بقیه دستورات را بتواند اجرا کند)


    پیشنهاد میشود مطالعه کنید :

    تفاوت بین دستور su و sudo


    هنگام استفاده از sudo کاربر برای اهراز هویت پسورد خودش را وارد میکند. بعد از وارد کردن دستور از ما (البته نه از یوزرهای superuser) پسورد خودمان خواسته شده و اگر پسورد را صحیح وارد کنیم (و اگر کاربر مجوز استفاده از sudo را داشته باشد) دستور مشخص شده بعد از sudo اجرا خواهد شد.

    برای اینکه کاربری بتواند مجوز استفاده از sudo را داشته باشد ادمین سیستم باید فایل /etc/sudoers را ویرایش نمایند. توصیه میکنیم که بجای ویرایش فایل با یک ویرایشگر متن از دستور visudo برای ویرایش فایل مذکور استفاده نمایید.
    کد PHP:
    # visudo 
    این دستور فایل /etc/sudoers را با ویرایشگر vim باز میکند. خط های مرتبط عبارتند از :
    کد PHP:
    Defaults    secure_path="/usr/sbin:/usr/bin:/sbin"
    root        ALL=(ALLALL
    tecmint     ALL
    =/bin/yum update
    gacanepa    ALL
    =NOPASSWD:/bin/updatedb
    %admin      ALL=(ALLALL 

    به بررسی عمیق تر آنها مبپردازیم :
    کد PHP:
    Defaults    secure_path="/usr/sbin:/usr/bin:/sbin:/usr/local/bin" 
    این خط به شما اجازه میدهد که دایرکتوریهایی برای sudo استفاده خواهند شد را مشخص نمایید. و باعث جلوگیری از استفاده از دایرکتوریهای مربوط به کاربر خاص (user-specific directories) میشود، که استفاده از این دایرکتوری ها میتواند منجر به آسیب سیستم بشود.

    خطوط بعدی برای تعریف permission ها میباشد :
    کد PHP:
    root        ALL=(ALLALL 
    کلمه کلیدی ALL اول نشان میدهد که این قاعده برای تمامی هاست ها اعمال میشود.
    کلمه کلیدی ALL دوم بیان میکند که کاربر موجود در ستون اول میتواند دستورات را با دسترسی هر کاربری اجرا کند.
    کلمه کلیدی ALL سوم به این معنی هست که هر دستوری میتواند اجرا شود.
    کد PHP:
    username1    ALL=/bin/yum update 
    اگر بعد از علامت = یوزری مشخص نشود دستور sudo کاربر root را در نظر میگیرد. و در مثال فوق کاربر username1 میتواند دستود yum update را مثل کاربر root اجرا کند.
    کد PHP:
    username1   ALL=NOPASSWD:/bin/updatedbusername1 
    بخش NOPASSWD به کاربر username1 اجازه میدهد که بدون وارد کردن پسورد خود دستور /bin/updated را اجرا نماید.
    کد PHP:
    %admin      ALL=(ALLALL 
    علامت % به این معنی میباشد که این خط روی گروه admin اعمال خواهد شد. این یعنی اعضای گروه admin میتوانند هر دستوری را با دسترسی های هر یوزری روی تمامی هاست ها اجرا نمایند.
    برای دیدن مجوزهایی که با دستور sudo به شما اختصاص یافته از آپشن –l بصورت زیر استفاده نمایید:
    کد PHP:
    Sudo –l 
    PAM



    ( Pluggable Authentication Modules ) ماژول PAM

    Pluggable Authentication Modules یا PAM انعطاف پذیری بالایی در تعریف یک روش احراز هویت خاص (Authentication) بر پایه سرویس (per-service) یا بر پایه برنامه (per-application) را بر اساس استفاده از ماژول فراهم میکند. این ابزار روی تمام توزیع های مدرن لینوکس موجود میباشد و برای غلبه بر مشکلی که توسعه دهندگان برنامه ها در لینوکس مواجه میشدند تولید شد. وقتی برنامه ای نیاز به احراز هویت داشت باید بصورت جداگانه کامپایل میشدند تا توسعه دهندگان بدانند چه اطلاعاتی لازم دارند.

    مثلا با وجود PAM مهم نیست که پسورد شما در فایل /etc/shadow ذخیره شده یا اینکه روی سروری جدا در شبکه تان موجود باشد.

    برای مثال وقتی برنامه ی لاگین، نیاز دارد که احراز هویتی (Authentication) روی یک یوزر انجام شود، PAM بصورت داینامیک کتابخانه ای را که حاوی توابعی (function) برای روش صحیح احراز هویت (Authentication) میباشد را فراهم میکند.
    در نتیجه تغییر روش احراز هویت (Authentication) برای اپلیکیشن لاگین ( یا هر برنامه ای که از PAM استفاده میکند ) آسان است چون کافیست که فایل کانفیگ آن را ویرایش نمایید. ( معمولا فایلی همنام برنامه (application) و داخل دایرکتوری /etc/pam.d و به احتمال کم داخل دایرکتوری /etc/pam.conf موجود است )

    فایل های داخل دایرکتوری /etc/pam.d مشخص میکنند که چه برنامه هایی بالقوه از PAM استفاده مینمایند.همچنین میتوانیم با چک کردن اینکه آیا کتابخانه PAM (libpam) به ابزار خاصی لینک شده یا نه ، تشخیص بدهیم که آن ابزار از PAM استفاده میکند یا خیر:

    کد PHP:
    # ldd $(which login) | grep libpam # login uses PAM
    # ldd $(which top) | grep libpam # top does not use PAM 
    خروجی دستور اول:

    کد PHP:
    libpam.so.0 => /lib/i386-linux-gnu/libpam.so.0 (0xb76d1000)
            
    libpam_misc.so.0 => /lib/i386-linux-gnu/libpam_misc.so.0 (0xb76cd000
    در خروجی دستور بالا میبینید که libpam با برنامه لاگین لینک شده است و این نشان میدهد که برنامه login در عملیات احراز هویت یوزر (User Authentication) در سیستم دخیل میشود. در حالی که دستور دوم خروجی ندارد و نشان میدهد که برنامه top در احراز هویت کاربر (User Authentication) دخیل نیست.

    حال به بررسی فایل کانفیگ PAM برای ابزار passwd که معروف ترین ابزار برای تغییر پسورد کاربران در لینوکس میباشد میپردازیم.این فال در مسیر /etc/pam.d/passwd میباشد.
    کد PHP:
    # cat /etc/pam.d/passwd 

    ستون اول مشخص کننده نوع (type) احراز هویت (Authentication) مورد استفاده با module-path ( ستون سوم) میباشد.هنگامی که قبل از type علامت – (dash/hyphen) موجود باشد، اگر ماژول به دلیل یافت نشدن در سیستم، نتواند لود شود، PAM لاگی در سیستم ثبت نخواهد کرد.


    انواع (types) احراز هویت (Authentication) به صورت زیر میباشند:

    - Account : این نوع ماژول بررسی میکند که آیا کاربر یا سرویس، پسورد و نام کاربری صحیح برای احراز هویت وارد کرده اند.

    - Auth : این ماژول بررسی میکند که آیا کاربر همان کاربری هست که ادعا میکند؟ و مجوزهای مورد نیاز را به او اعطا میکند.

    - Password : این نوع ماژول به سرویس یا کاربر اجازه میدهد که پسورد خود را آپدیت نمایند.

    - Session : این نوع ماژول معین میکند که قبل و بعد از اینکه با موفقیت احراز هویت انجام شد، چه کاری باید انجام شود. ستون دوم ( به نام control) مشخص میکند که اگر احراز هویت با این ماژول ها fail شد چه کاری باید انجام شود.

    - Requisite : اگر احراز هویت با این ماژول تایید نشود کل احراز هویت سریعا مردود خواهد شد.

    - required : مشابه Requisite میباشد ولی قبل از fail شدن هویت (Authentication) ، تمام ماژول های ذکر شده, برای این سرویس فراخوانی میشوند.

    - Optional : اگر احراز هویت با این ماژول با شکست مواجه شود یا موفقیت آمیز باشد اتفاقی نمی افتد مگر اینکه این تنها ماژولی باشد که برای آن سرویس تعریف شده باشد.

    - Include : به این معنی هست که خطهای مربوط به نوع ماژول داده شده، باید از فایل دیگری خوانده شود.

    - Substack : مشابه Include میباشد ولی موفقیت یا شکست احراز هویت باعث خروج از کل ماژول نمیشود بلکه تنها باعث خروج از Substack میشود.

    ستون چهارم اگر موجود باشد، آرگومانهایی (arguments) را که به ماژول پاس داده میشوند را نمایش میدهد.

    سه خط اول در /etc/pam.d/passwd ماژول system-auth را لود میکند تا چک کند که آیا کاربر اکانت معتبری را وارد کرده یا نه. اگر کاربر اکانت معتبری را وارد کرده باشد، ماژول با دادن پرمیژن برای استفاده از passwd یا (auth) به کاربر اجازه میدهد پسورد خودش (authentication token) را عوض کند.

    برای مثال اگر شما عبارت remember=2 را به خط:
    کد PHP:
    password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok 
    در فایل /etc/pam.d/system-auth اضافه کنید :
    کد PHP:
    password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=
    دو پسورد آخر hash شده هر کاربر در /etc/security/opasswd ذخیره شده و قابل استفاده مجدد نیستند.


    همچنین توصیه میشود مطالعه کنید :

    11 روش برای پیدا کردن اطلاعات Account و جزئیات Login کاربران در لینوکس

    دستور who برای مشاهده کاربران لاگین شده به سرور لینوکس

    whowatch برای مانیتور کردن کاربران و process ها به صورت لحظه ای

    امنیت فایل ها و دایرکتوری ها با استفاده از ACL در لینوکس



    خلاصه

    مهارت های مدیریت یوزر و فایل مناسب برای هر ادمین سیستمی ضروری هستند. در این مقاله ما به برسی اصول اولیه پرداختیم و امیدواریم شروعی برای رسیدن به سطوح بالاتر برای شما عزیزان باشد. از نظرات و پیشنهادات شما استقبال مینماییم.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-09-2021, 11:47 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X