ساخت یوزر در سرور لینوکس از مهمترین عملیاتهایی است که باید به آن مسلط باشید. لینوکس یک سیستم عامل چند کاربره است و بیش از یک نفر میتوانند به آن دسترسی داشته باشند و از آن استفاده کنند. شما به عنوان یک مدیر سیستم مسئولیت مدیریت کاربران و گروهها را به عهده دارید. روشها و دستورات متفاوتی برای ایجاد یوزر در لینوکس وجود دارد که میتوانید استفاده کنید. در این مقاله هر آنچه برای آموزش ساخت و حذف کاربران در لینوکس و همچنین ایجاد و اختصاصی کاربران به گروههای مختلف نیاز دارید آورده شده است. در نهایت برای تسلط کامل به این دستورات مثالهایی را به صورت واقعی اجرا خواهیم کرد تا با آنها به صورت کامل آشنا شوید.
دستور ساخت یوزر در لینوکس: useradd
useradd یکی از دستورات لینوکس است که برای ایجاد حساب کاربری در لینوکس و سایر سیستم عاملهای مشابه مانند یونیکس استفاده میشود. دستور aduser نیز بسیار شبیه به دستور useradd است و فقط یک نوع دیگری صدا زدن عملیاتهای دستور قبلی است. در برخی توزیعهای دیگر لینوکس این دستور ممکن است کمی متفاوت عمل کند.
سینکتس دستور useradd
سینتکس اصلی دستور useradd به صورت زیر است:
useradd [options] username
در این مقاله با 1۳ مثال کاربردی از دستور useradd به همراه ویژگیهای آن را مشاهده خواهید کرد تا با هر آنچه که این دستور انجام میدهد آشنا شوید.
فقط کاربران root یا کاربرانی با امتیازات sudo میتوانند از دستور useradd برای ایجاد حسابهای کاربری جدید استفاده کنند.
دستور useradd چگونه عمل میکند؟
هنگامی که دستور ساخت یوزر در لینوکس یعنی useradd را اجرا میکنیم عملیاتهای زیر انجام میشوند:
- فایلهای /etc/passwd ، /etc/shadow ، /etc/group و /etc/gshadow را برای حسابهای کاربری جدید ویرایش میکند.
- یک دایرکتوری خانه برای کاربر جدید ایجاد میکند.
- مجوزها و دسترسیهای لازم را به دایرکتوری خانه میدهد.
1- چگونه یک کاربر جدید در لینوکس اضافه کنیم
برای ساخت یوزر در لینوکس کافی است مطابق سینتکس، نام کاربری یوزر جدید را پس از دستور useradd یا aduser وارد کنید. نام کاربری همان نامی است که کاربر برای ورود به سیستم از آن استفاده میکند. با استفاده از این دستور میتوانید تنها یک یوزر جدید ایجاد کنید و همچنین نام کاربری وارد شده باید یک نام کاربری جدید باشد که قبلاً در سیستم موجود نبوده است.
به عنوان مثال، برای افزودن یک کاربر جدید به نام ” tecmint ” از دستور زیر استفاده کنید.
useradd tecmint
هنگامی که یک کاربر جدید در لینوکس با دستور ‘ useradd ‘ اضافه میکنیم، در حالت قفل ایجاد میشود و برای باز کردن قفل آن حساب کاربری، باید یک رمز عبور برای آن حساب با دستور ‘ paswd ‘ تعیین کنیم.
passwd tecmint
Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
پس از ایجاد یک کاربر جدید، اطلاعات به صورت خودکار به فایل /etc/passwd اضافه میشوند. فایل صرفاً برای ذخیره اطلاعات کاربر استفاده میشود.
tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash
ورودی بالا شامل مجموعهای از هفت فیلد جدا شده با کولون است که هر فیلد معنای خاص خود را دارد. در ادامه به بررسی هر یک از آنها خواهیم پرداخت:
- نام کاربری: نام کاربری که برای ورود به سیستم استفاده می شود. باید بین 1 تا 32 کاراکتر باشد.
- رمز عبور: رمز عبور کاربر (یا کاراکتر x) که در فایل /etc/shadow با فرمت رمزگذاری شده ذخیره شده است.
- شناسه کاربر (UID) : هر کاربر باید یک شماره شناسایی کاربر (UID ) داشته باشد. به طور پیشفرض، UID 0 برای کاربر اصلی و UID های بین 1 تا 99 برای سایر حسابهای از پیش تعریف شده رزرو شده است. UIDهای بیشتر از 100 تا 999 برای حسابهای سیستم و گروهها رزرو شدهاند.
- شناسه گروه (GID) : Group ID ( GID ) اولیه در فایل / etc/group ذخیره شده است.
- اطلاعات کاربر: این فیلد اختیاری است و به شما امکان میدهد اطلاعات اضافی در مورد کاربر تعریف کنید. به عنوان مثال، نام کامل کاربر. این فیلد با دستور finger پر میشود.
- Home Directory : مکان مطلق دایرکتوری اصلی کاربر.
- Shell : مکان مطلق shell کاربر یعنی /bin/bash .
2- ایجاد یک یوزر جدید در لینوکس با دایرکتوری خانه متفاوت
به طور پیشفرض فرمان «useradd » دایرکتوری اصلی کاربر را در داخل دایرکتوری /home با نام کاربری همان کاربر ایجاد میکند. برای مثال، در مثال قبل دیدید که دایرکتوری اصلی پیشفرض برای کاربری با نام tecmint مسیر ‘/home/tecmint ‘ است.
برای حل آن مشکل و ایجاد دایرکتوری کاربر جدید در محلی غیر از محل پیش فرض میتوانید از آپشن -d استفاده کنید و محل دایرکتوری جدید را مشخص کنید. به عنوان مثال دستور زیر یک کاربر با یوزرنیم anusha با دایرکتوری خانه /data/projects ایجاد میکند.
useradd -d /data/projects anusha
passwd anusha
که فایل ایجاد شده به صورت زیر خواهد بود:
cat /etc/passwd | grep anusha
anusha :x:1001:1001:: /data/projects :/bin/bash
3- ایجاد یک یوزر با ای دی خاص در لینوکس
در سیستم عاملهای لینوکس و یونیکس و مشابه آنها، کاربران با UID و نام کاربری منحصر به فرد شناسایی میشوند. هر کاربر UID مخصوص به خود را دارد (Unique Identification Number – شماره شناسایی منحصر به فرد). شناسه کاربر (UID) یک عدد صحیح مثبت منحصر به فرد است که توسط سیستم لینوکس به هر کاربر اختصاص داده میشود. به طور پیشفرض، هر زمان که یک یوزر جدید در لینوکس ایجاد میکنیم، userid 500 ، 501 ، 502 و غیره را به آن کاربر اختصاص میدهد. این شناسهها در فایل login.defs ذخیره شدهاند.
ما میتوانیم کاربرانی با userid سفارشی با گزینه ‘ -u ‘ ایجاد کنیم . برای مثال، دستور زیر یک یوزر با نام کاربری navin و با userid سفارشی ‘ 1002 ‘ ایجاد میکند.
useradd -u 1002 navin
حال باید بررسی کنیم که کاربر جدیدی با userid مشخص شده ( 1002 ) با استفاده از دستور بالا ایجاد شده است.
cat /etc/passwd | grep navin
navin:x: 1002 :1002::/home/navin:/bin/bash
توجه: اگر UID جدید برای ایجاد کاربران استفاده میکنید حتماً چک کنید این ای دی یونیک و تنها مختص یک کاربر باشد.
4- ساخت یوزر در لینوکس با Group ID خاص
گروههای لینوکس واحدهای سازمانی هستند که برای سازماندهی و مدیریت حسابهای کاربری در لینوکس استفاده میشوند. هدف اصلی گروهها تعریف مجموعهای از امتیازات مانند مجوز خواندن، نوشتن یا اجرا برای یک سورس معین است که میتواند بین کاربران درون گروه به اشتراک گذاشته شود. مشابه بخش قبل، یوزر جدید یک Group ID (GID) مخصوص به خود را دارد. با استفاده از آپشن -g میتوانیم کاربرانی با شناسه گروه دلخواه ایجاد کنیم.
در این مثال، یک کاربری با نام کاربری tarunika با یک UID و GID خاص به طور هم زمان با کمک گزینههای ‘ -u ‘ و ‘ -g ‘ ایجاد میکنیم.
useradd -u 1005 -g tecmint tarunika
اکنون، شناسه کاربر و شناسه گروه اختصاص داده شده را در فایل ' /etc/passwd ' ببینید.
cat /etc/passwd | grep tarunika
tarunika :x: 1005 : 1000 ::/home/tarunika:/bin/bash
برای تأیید GID کاربر، از دستور id استفاده کنید:
id -gn tarunika
5- افزودن یک کاربر به چندین گروه مختلف
دو نوع گروه در سیستم عاملهای لینوکس وجود دارد گروه اصلی یا Primary و گروه Secondary (یا supplementary). هر کاربر میتواند دقیقاً به یک گروه Primary و به صفر یا چند گروه Secondary تعلق داشته باشد. از آپشن -G میتوانید برای افزودن یک کاربر به گروههای دیگر استفاده کنید. نام هر گروهها با کاما و بدون فاصله از هم جدا میشوند.
در این مثال، ما یک کاربری با نام کاربری tecmint را به چندین گروه مانند admins ، webadmin و developer اضافه میکنیم.
groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy
سپس با دستور id بررسی کنید که چند گروه به آن کاربر اختصاص داده شده است:
id tecmint
uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
6- ایجاد یوزر جدید در لینوکس بدون دایرکتوری خانه
در برخی شرایط به دلایل امنیتی ممکن است نخواهید یک دایرکتوری جدید را به یوزر جدید اختصاص دهید. در چنین شرایطی هنگامی که کاربر وارد سیستمی میشود که به تازگی راه اندازی شده است، دایرکتوری اصلی آن root خواهد بود. هنگامی که چنین کاربری از دستور su استفاده میکند ، دایرکتوری آن، همان دایرکتوری اصلی کاربر قبلی خواهد بود.
برای ایجاد کاربران بدون دایرکتوری خانه جدید، از آپشن M استفاده میشود. به عنوان مثال، دستور زیر کاربری با نام کاربری shilpi و بدون دایرکتوری خانه ایجاد میکند.
useradd -M shilpi
با استفاده از دستور ls میتوانید لیست پوشههای ایجاد شده را بررسی کنید تا مطمئن شوید که دایرکتوری خانه برای کاربر جدید ایجاد نشده است.
ls -l /home/shilpi
ls: cannot access /home/shilpi: No such file or directory
7- ایجاد یوزر تاریخ انقضا دار در لینوکس
به طور پیشفرض، زمانی که کاربر را با دستور useradd اضافه میکنیم، حساب کاربری آن هیچ وقت منقضی نمیشود، یعنی تاریخ انقضای آنها روی 0 تنظیم شده است.
ما میتوانیم کاربرانی با تاریخ انقضا ایجاد کنیم تا فقط تا آن تاریخ مشخص به سیستم دسترسی داشته باشند. با استفاده از آپشن -e میتوانید تاریخ انقضا را در قالب YYYY-MM-DD تنظیم کنید.
در این مثال، ما کاربری با نام کاربری aparna با تاریخ انقضای حساب 27 آگوست 202۲ در قالب YYYY-MM-DD ایجاد میکنیم.
useradd -e 2022-08-27 aparna
در مرحله بعد، پس از تعیین تاریخ انقضای حساب، میتوانید سن اکانت کاربر و رمز عبور را با دستور chage بررسی کنید.
chage -l Aparna
Last password change : Jun 25, 2021
Password expires : never
Password inactive : never
Account expires : Aug 27, 2021
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
8- ایجاد یوزر با رمز عبور تاریخ انقضا دار در لینوکس
گاهی وقتها نیاز دارید کاربری ایجاد کنید که رمز عبور آن تنها برای مدتی فعال باشد. با استفاده از آپشن -f میتوانید تعداد روزهای فعال بودن رمز عبور را تعین کنید.
- مقدار 0 به معنای غیرفعال شدن حساب کاربری به محض منقضی شدن رمز عبور.
- به طور پیش فرض این مقدار روی -1 است که به معنای منقضی نشدن آن رمز عبور است.
در این مثال، ما یک تاریخ انقضای رمز عبور 45 روزه به همراه تاریخ انقضای حساب کاربری با استفاده از گزینههای ‘ -e ‘ و ‘ -f ‘ برای کاربر mansi تعیین میکنیم .
useradd -e 2014-04-27 -f 45 mansi
9- ایجاد یوزر جدید در لینوکس با کامنت دلخواه
آپشن -c به شما امکان افزودن کامنت دلخواه مانند نام کامل کاربر، شماره تلفن و غیره را به فایل /etc/passwd میدهد. کامنت را میتوان به صورت یک خط و بدون هیچ فاصلهای اضافه کرد.
به عنوان مثال، دستور زیر یک کاربر با نام کاربری mansi ایجاد میکند و نام کامل آن کاربر، Manis Khurana را در قسمت کامنت آن کاربر درج میکند.
useradd -c "Manis Khurana" mansi
میتوانید کامنت خود را در فایل ‘ /etc/passwd ‘ در بخش کامنتها مشاهده کنید.
tail -1 /etc/passwd
mansi :x:1010:1013: Manis Khurana :/home/mansi:/bin/bash
10- ایجاد کاربر جدید با shell لاگین دلخواه
گاهی اوقات، کاربرانی را ایجاد میکنیم که هیچ ارتباطی با shell لاگین ندارند یا گاهی اوقات مجبور میشویم shellهای مختلفی را به کاربران خود اختصاص دهیم. به طور پیش فرض، shell ورود به سیستم کاربر جدید روی shell مشخص شده در فایل /etc/default/useradd تنظیم میشود. برخی از توزیعها shell پیشفرض روی تنظیم شده است /bin/sh و در برخی دیگر روی /bin/bash. با استفاده از آپشن -s میتوانیم shellهای لاگین خاصی به کاربر اختصاص دهیم.
در این مثال، یک کاربر با نام کاربری tecmint بدون shell ورود به سیستم، یعنی shell جدید ” /sbin/nologin ” اضافه خواهد شد.
useradd -s /sbin/nologin tecmint
میتوانید shell اختصاص داده شده به کاربر جدید را در فایل ‘ /etc/passwd ‘ بررسی کنید.
tail -1 /etc/passwd
tecmint :x:1011:1014::/home/tecmint: /sbin/nologin
11- ایجاد یوزر به عنوان کاربر سیستم در لینوکس
هیچ تفاوت فنی بین کاربران سیستم و کاربران عادی (regular) وجود ندارد. معمولاً کاربران سیستم برای نصب سیستم عامل و بستههای جدید ایجاد میشوند. میتوانید از آپشن -r برای ایجاد حساب کاربری سیستم استفاده کنید.
به عنوان مثال، برای ایجاد یک کاربر سیستم جدید با نام کاربری username باید دستور زیر را اجرا کنید:
sudo useradd -r username
1۲- استفاده هم زمان از دستورات
میتوانید تمام آپشنهای قبل را تنها در یک دستور اجرا کنید و چندین ویژگی خاص را به یک کاربر اختصاص دهید. برای مثال برای ایجاد یک یوزر با دایرکتوری خانه دلخواه، shell پیش فرض و کامنت دلخواه باید از دستور زیر استفاده کنید.
useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi
همچنین برای ایجاد یک یوزر بدون دایرکتوری خانه، بدون shell، بدون گروه و با کامنت دلخواه از دستور زیر استفاده کنید.
useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton
13- تغییر مقادیر پیش فرض دستور useradd
تنظیمات پیش فرض دستور useradd را میتوان با استفاده از آپشن -D یا با ویرایش دستی مقادیر موجود در فایل /etc/default/useradd تغییر داد.
برای مشاهده تنظیمات پیش فرض فعلی دستور زیر را اجرا کنید:
useradd -D
خروجی:
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
فرض کنید میخواهید shell ورود پیش فرض را از / bin/sh به /bin/bash تغییر دهید. برای انجام این کار، shell جدید را مطابق دستور زیر مشخص کنید:
sudo useradd -D -s /bin/bash
با اجرای دستور زیر میتوانید مطمئن شوید که مقدار shell پیش فرض تغییر کرده است:
sudo useradd -D | grep -i shell
SHELL=/bin/bash
جمع بندی
در این مقاله هر آنچه برای ایجاد یوزر جدید در لینوکس و یونیکس نیاز داشتید بیان شد. شما میتوانید با استفاده از دستور رایج useradd و یا aduser به راحتی کاربران جدیدی به سیستم لینوکس خود اضافه کنید. ایجاد یک یوزر جدید در لینوکس گزینههای مخصوص به خود را دارد که میتواند بسیاری از عملیاتها را برای شما انجام دهد و نیازهای شما را برآورده کند. هر آنچه از آپشنهای دستور useradd نیاز داشتید بیان شد و از این پس میتوانید به راحتی کاربران جدید با ویژگیهای دلخواه ایجاد کنید.
سوالات متداول
با استفاده از کدام دستور میتوانیم یک کاربر در لینوکس ایجاد کنیم؟
برای افزودن/ایجاد کاربر جدید، باید دستور ‘useradd’ یا ‘adduser’ را با ‘username’ اجرا کنید . “‘username’ ” یک نام کاربری برای ورود به سیستم است که توسط کاربر جدید برای ورود به سیستم استفاده میشود.
چرا در لینوکس کاربر ایجاد میکنیم؟
لینوکس یک سیستم چند کاربره است، به این معنی که بیش از یک نفر میتوانند هم زمان با یک سیستم در ارتباط باشند. شما به عنوان یک مدیر سیستم، مسئولیت مدیریت کاربران و گروههای سیستم را با ایجاد و حذف کاربران و اختصاص آنها به گروههای مختلف دارید.
چگونه یک کاربر به sudo اضافه کنم؟
برای ایجاد یک کاربر sudo در اوبونتو 20.04، مراحل ذکر شده را دنبال کنید.
- مرحله 1: وارد سرور خود شوید. ابتدا با استفاده از سینتکس آن به عنوان کاربر اصلی وارد سرور ابری خود شوید.
- مرحله 2: یک کاربر جدید ایجاد کنید.
- مرحله 3: کاربر جدید را به گروه sudo اضافه کنید.
- مرحله 4: sudo را تست کنید.
چگونه همه کاربران را در لینوکس ببینم؟
ترمینال را راه اجرا کنید.
از دستور “cat” برای لیست کردن همه کاربران در ترمینال استفاده کنید تا تمام جزئیات حساب کاربری و رمزهای عبور ذخیره شده در فایل /etc/passwd سیستم لینوکس نمایش داده شود.
کاربر لینوکس کیست؟
کاربر موجودی است، در یک سیستم عامل لینوکس که میتواند فایلها را دستکاری کند و چندین عملیات دیگر را انجام دهد. به هر کاربر یک شناسه اختصاص داده میشود که برای هر کاربر در سیستم عامل منحصر به فرد است.
چگونه شناسه کاربری خود را در لینوکس پیدا کنم؟
میتوانید UID را در فایل /etc/passwd بیابید ، که فایلی است که اطلاعات همه کاربران ثبت نام شده در سیستم را نیز ذخیره میکند. برای مشاهده محتویات فایل /etc/passwd، در ترمینال، دستور cat را روی فایل اجرا کنید.