ساخت یوزر در سرور لینوکس از مهمترین عملیاتهایی است که باید به آن مسلط باشید. لینوکس یک سیستم عامل چند کاربره است و بیش از یک نفر میتوانند به آن دسترسی داشته باشند و از آن استفاده کنند. شما به عنوان یک مدیر سیستم مسئولیت مدیریت کاربران و گروهها را به عهده دارید. روشها و دستورات متفاوتی برای ایجاد یوزر در لینوکس وجود دارد که میتوانید استفاده کنید. در این مقاله هر آنچه برای آموزش ساخت و حذف کاربران در لینوکس و همچنین ایجاد و اختصاصی کاربران به گروههای مختلف نیاز دارید آورده شده است. در نهایت برای تسلط کامل به این دستورات مثالهایی را به صورت واقعی اجرا خواهیم کرد تا با آنها به صورت کامل آشنا شوید.
دستور ساخت یوزر در لینوکس: useradd
useradd یکی از دستورات لینوکس است که برای ایجاد حساب کاربری در لینوکس و سایر سیستم عاملهای مشابه مانند یونیکس استفاده میشود. دستور aduser نیز بسیار شبیه به دستور useradd است و فقط یک نوع دیگری صدا زدن عملیاتهای دستور قبلی است. در برخی توزیعهای دیگر لینوکس این دستور ممکن است کمی متفاوت عمل کند.
سینکتس دستور useradd
سینتکس اصلی دستور useradd به صورت زیر است:
1 | useradd [options] username |
در این مقاله با 1۳ مثال کاربردی از دستور useradd به همراه ویژگیهای آن را مشاهده خواهید کرد تا با هر آنچه که این دستور انجام میدهد آشنا شوید.
فقط کاربران root یا کاربرانی با امتیازات sudo میتوانند از دستور useradd برای ایجاد حسابهای کاربری جدید استفاده کنند.
دستور useradd چگونه عمل میکند؟
هنگامی که دستور ساخت یوزر در لینوکس یعنی useradd را اجرا میکنیم عملیاتهای زیر انجام میشوند:
- فایلهای /etc/passwd ، /etc/shadow ، /etc/group و /etc/gshadow را برای حسابهای کاربری جدید ویرایش میکند.
- یک دایرکتوری خانه برای کاربر جدید ایجاد میکند.
- مجوزها و دسترسیهای لازم را به دایرکتوری خانه میدهد.
1- چگونه یک کاربر جدید در لینوکس اضافه کنیم
برای ساخت یوزر در لینوکس کافی است مطابق سینتکس، نام کاربری یوزر جدید را پس از دستور useradd یا aduser وارد کنید. نام کاربری همان نامی است که کاربر برای ورود به سیستم از آن استفاده میکند. با استفاده از این دستور میتوانید تنها یک یوزر جدید ایجاد کنید و همچنین نام کاربری وارد شده باید یک نام کاربری جدید باشد که قبلاً در سیستم موجود نبوده است.
به عنوان مثال، برای افزودن یک کاربر جدید به نام ” tecmint ” از دستور زیر استفاده کنید.
1 | useradd tecmint |
هنگامی که یک کاربر جدید در لینوکس با دستور ‘ useradd ‘ اضافه میکنیم، در حالت قفل ایجاد میشود و برای باز کردن قفل آن حساب کاربری، باید یک رمز عبور برای آن حساب با دستور ‘ paswd ‘ تعیین کنیم.
1 2 3 4 5 | passwd tecmint Changing password for user tecmint. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. |
پس از ایجاد یک کاربر جدید، اطلاعات به صورت خودکار به فایل /etc/passwd اضافه میشوند. فایل صرفاً برای ذخیره اطلاعات کاربر استفاده میشود.
1 | 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 ایجاد میکند.
1 2 3 4 5 | 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 ‘ ایجاد میکند.
1 | useradd -u 1002 navin |
حال باید بررسی کنیم که کاربر جدیدی با userid مشخص شده ( 1002 ) با استفاده از دستور بالا ایجاد شده است.
1 2 | 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 ‘ ایجاد میکنیم.
1 2 3 4 | useradd -u 1005 -g tecmint tarunika اکنون، شناسه کاربر و شناسه گروه اختصاص داده شده را در فایل ' /etc/passwd ' ببینید. cat /etc/passwd | grep tarunika tarunika :x: 1005 : 1000 ::/home/tarunika:/bin/bash |
برای تأیید GID کاربر، از دستور id استفاده کنید:
1 | id -gn tarunika |
5- افزودن یک کاربر به چندین گروه مختلف
دو نوع گروه در سیستم عاملهای لینوکس وجود دارد گروه اصلی یا Primary و گروه Secondary (یا supplementary). هر کاربر میتواند دقیقاً به یک گروه Primary و به صفر یا چند گروه Secondary تعلق داشته باشد. از آپشن -G میتوانید برای افزودن یک کاربر به گروههای دیگر استفاده کنید. نام هر گروهها با کاما و بدون فاصله از هم جدا میشوند.
در این مثال، ما یک کاربری با نام کاربری tecmint را به چندین گروه مانند admins ، webadmin و developer اضافه میکنیم.
1 2 3 4 5 | groupadd admins groupadd webadmin groupadd developers usermod -a -G admins,webadmin,developers tecmint useradd -G admins,webadmin,developers paddy |
سپس با دستور id بررسی کنید که چند گروه به آن کاربر اختصاص داده شده است:
1 2 3 4 | 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 و بدون دایرکتوری خانه ایجاد میکند.
1 | useradd -M shilpi |
با استفاده از دستور ls میتوانید لیست پوشههای ایجاد شده را بررسی کنید تا مطمئن شوید که دایرکتوری خانه برای کاربر جدید ایجاد نشده است.
1 2 | 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 ایجاد میکنیم.
1 | useradd -e 2022-08-27 aparna |
در مرحله بعد، پس از تعیین تاریخ انقضای حساب، میتوانید سن اکانت کاربر و رمز عبور را با دستور chage بررسی کنید.
1 2 3 4 5 6 7 8 | 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 تعیین میکنیم .
1 | useradd -e 2014-04-27 -f 45 mansi |
9- ایجاد یوزر جدید در لینوکس با کامنت دلخواه
آپشن -c به شما امکان افزودن کامنت دلخواه مانند نام کامل کاربر، شماره تلفن و غیره را به فایل /etc/passwd میدهد. کامنت را میتوان به صورت یک خط و بدون هیچ فاصلهای اضافه کرد.
به عنوان مثال، دستور زیر یک کاربر با نام کاربری mansi ایجاد میکند و نام کامل آن کاربر، Manis Khurana را در قسمت کامنت آن کاربر درج میکند.
1 | useradd -c "Manis Khurana" mansi |
میتوانید کامنت خود را در فایل ‘ /etc/passwd ‘ در بخش کامنتها مشاهده کنید.
1 2 | 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 ” اضافه خواهد شد.
1 | useradd -s /sbin/nologin tecmint |
میتوانید shell اختصاص داده شده به کاربر جدید را در فایل ‘ /etc/passwd ‘ بررسی کنید.
1 2 | tail -1 /etc/passwd tecmint :x:1011:1014::/home/tecmint: /sbin/nologin |
11- ایجاد یوزر به عنوان کاربر سیستم در لینوکس
هیچ تفاوت فنی بین کاربران سیستم و کاربران عادی (regular) وجود ندارد. معمولاً کاربران سیستم برای نصب سیستم عامل و بستههای جدید ایجاد میشوند. میتوانید از آپشن -r برای ایجاد حساب کاربری سیستم استفاده کنید.
به عنوان مثال، برای ایجاد یک کاربر سیستم جدید با نام کاربری username باید دستور زیر را اجرا کنید:
1 | sudo useradd -r username |
1۲- استفاده هم زمان از دستورات
میتوانید تمام آپشنهای قبل را تنها در یک دستور اجرا کنید و چندین ویژگی خاص را به یک کاربر اختصاص دهید. برای مثال برای ایجاد یک یوزر با دایرکتوری خانه دلخواه، shell پیش فرض و کامنت دلخواه باید از دستور زیر استفاده کنید.
1 | useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi |
همچنین برای ایجاد یک یوزر بدون دایرکتوری خانه، بدون shell، بدون گروه و با کامنت دلخواه از دستور زیر استفاده کنید.
1 | useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton |
13- تغییر مقادیر پیش فرض دستور useradd
تنظیمات پیش فرض دستور useradd را میتوان با استفاده از آپشن -D یا با ویرایش دستی مقادیر موجود در فایل /etc/default/useradd تغییر داد.
برای مشاهده تنظیمات پیش فرض فعلی دستور زیر را اجرا کنید:
1 | useradd -D |
خروجی:
1 2 3 4 5 6 7 | GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no |
فرض کنید میخواهید shell ورود پیش فرض را از / bin/sh به /bin/bash تغییر دهید. برای انجام این کار، shell جدید را مطابق دستور زیر مشخص کنید:
1 | sudo useradd -D -s /bin/bash |
با اجرای دستور زیر میتوانید مطمئن شوید که مقدار shell پیش فرض تغییر کرده است:
1 2 | 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 را روی فایل اجرا کنید.