اطلاعیه

بستن
No announcement yet.

بررسی اینکه آیا کاربری در سیستم وجود دارد یا نه

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

    بررسی اینکه آیا کاربری در سیستم وجود دارد یا نه

    شاید شل اسکریپتی لازم داشته باشد که از ورودی نام کاربری را گرفته و اطلاعاتی را نشان دهد. پس باید بررسی کنیم که آیا کاربر وجود دارد یا نه؟ اگر کاربر در سیستم بود یک سری کد و اگر نبود باید از برنامه خارج شویم.فایل های etc/passwd/ و فایل etc/group/ در سیستم عامل های یونیکسی (لینوکس، سولاریس، BSD) که به ترتیب اطلاعات کاربران و گروه ها را نگه می دارند. برای اینکار می توانیم از ابزار هایی مانند id,egrep استفاده کنیم. از دستور های زیر می توانید در خود خط فرمان استفاده کنید.

    استفاده دز خط فرمان :
    از دستور egrep به صورت زیر استفاده کنید. این دستور یک نام کاربری بجای USERNAME می گیرد و آنرا در فایل etc/passwd/ جستجو می کند. در صورتی که نامی معادل با USERNAME وارد شد، آن خط را از فایل برمی گرداند.

    کد PHP:

    egrep 
    -i “^USERNAME” /etc/passwd

    egrep 
    -i “^a.nami” /etc/passwd

    a
    .nami:x:8595:609::/home/a.nami:/bin/bash 
    یا اینکه از دستور id به صورت زیر استفاده کنید.

    کد PHP:
    id USERNAME

    id a
    .nami

    uid
    =8595(a.namigid=609(shellgroups=609(shell
    اما در صورتی که کاربر وجود نداشته باشد خطای زیر نشان داده می شود.

    کد PHP:
    id a.namiii

    id
    a.namiiiNo such user 
    استفاده در شل اسکریپت :
    در شکل زیر با دستور read یک ورودی (نام کاربری) را گرفته و در متغیر USERNAME ذخیره می کند. در if اول بررسی می کند که فقط یک نام کاربری وارد شده باشد (نه کمتر نه بیشتر) و در if دومی چک می کند که آیا کاربر وجود دارد یا نه؟

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	userexist1.png نمایش ها:	1 اندازه:	8.6 KB شناسه:	18360

    استفاده از دستور id می کند. مانند بالا یک ورودی گرفته و کاربرد if اول و دوم مانند کد بالا است. تنها بجای دستور egrep از دستور id استفاده کرده است.

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	userexist2.png نمایش ها:	1 اندازه:	8.4 KB شناسه:	18361

    تفاوت دیگر اسکریپت دوم با اسکریپت اول در خط زیر است. در این خط اگر کاربری وجود نداشته باشد، خطای id: a.namiii: No such user را نشان نمی دهد و بجای آن …..not exist را نشان می دهد.

    همچنین می توانید از این دستور ها برای وجود یا عدم وجود گروه ها استفاده کنید.

    کد PHP:
    egrep -i “^GROUPNAME” /etc/group

    id 
    -g GROUPNAME 
    در دومین دستور اگر گروه GROUPNAME وجود داشت شماره یا (GID) گروه را بر می گرداند در غیر اینصورت خطایی مانند عدم وجود کاربر نشان می دهد.


    نویسنده نامی امیر
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-13-2020, 02:49 AM.

    #2
    اقا خلاصه ترین دستور who هستش ... کارتونو خلاصه میکنه !!

    کامنت

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

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

    شبکه های اجتماعی

    ایمیل مدیریت

    Habili@linux-zone.org

    در حال انجام ...
    X