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

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

تفاوت دیگر اسکریپت دوم با اسکریپت اول در خط زیر است. در این خط اگر کاربری وجود نداشته باشد، خطای id: a.namiii: No such user را نشان نمی دهد و بجای آن …..not exist را نشان می دهد.
همچنین می توانید از این دستور ها برای وجود یا عدم وجود گروه ها استفاده کنید.
در دومین دستور اگر گروه GROUPNAME وجود داشت شماره یا (GID) گروه را بر می گرداند در غیر اینصورت خطایی مانند عدم وجود کاربر نشان می دهد.
نویسنده نامی امیر
استفاده دز خط فرمان :
از دستور 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
کد PHP:
id USERNAME
id a.nami
uid=8595(a.nami) gid=609(shell) groups=609(shell)
کد PHP:
id a.namiii
id: a.namiii: No such user
در شکل زیر با دستور read یک ورودی (نام کاربری) را گرفته و در متغیر USERNAME ذخیره می کند. در if اول بررسی می کند که فقط یک نام کاربری وارد شده باشد (نه کمتر نه بیشتر) و در if دومی چک می کند که آیا کاربر وجود دارد یا نه؟
استفاده از دستور id می کند. مانند بالا یک ورودی گرفته و کاربرد if اول و دوم مانند کد بالا است. تنها بجای دستور egrep از دستور id استفاده کرده است.
تفاوت دیگر اسکریپت دوم با اسکریپت اول در خط زیر است. در این خط اگر کاربری وجود نداشته باشد، خطای id: a.namiii: No such user را نشان نمی دهد و بجای آن …..not exist را نشان می دهد.
همچنین می توانید از این دستور ها برای وجود یا عدم وجود گروه ها استفاده کنید.
کد PHP:
egrep -i “^GROUPNAME” /etc/group
id -g GROUPNAME
نویسنده نامی امیر
کامنت