آموزش ایجاد و مدیریت کاربران در لینوکس

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

چرا مدیریت کاربران مهم است؟

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

آشنایی با فایل های کلیدی کاربران

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

  • /etc/passwd: اطلاعات پایه کاربران مثل نام کاربری، UID، GID، مسیر خانه و شل پیش فرض.

  • /etc/shadow: رمزهای عبور رمزنگاری شده و اطلاعات مربوط به انقضای رمز. فقط root می تواند این فایل را بخواند.

  • /etc/group: اطلاعات گروه ها و اعضای آن ها.

وقتی کاربر جدیدی می سازید، یک خط به هر کدام از این فایل ها اضافه می شود. همچنین یک پوشه خانه در /home/username ساخته می شود و فایل های پیش فرض از /etc/skel کپی می شوند.

جدول فایل های مهم:

فایل کاربرد دسترسی
/etc/passwd اطلاعات کاربران همه می‌توانند بخوانند
/etc/shadow رمزهای عبور فقط root
/etc/group اطلاعات گروه‌ها همه می‌توانند بخوانند
/etc/skel فایل‌های پیش‌فرض کاربر جدید root
/etc/login.defs تنظیمات پیش‌فرض ایجاد کاربر root

ایجاد کاربر جدید با useradd

دستور اصلی برای ساخت کاربر در لینوکس useradd است. ساده ترین شکل آن این است:

sudo useradd ali

این دستور یک کاربر به نام ali می سازد، اما توجه کنید که هنوز رمز عبور ندارد و نمی تواند وارد شود. برای تعیین رمز عبور از passwd استفاده می کنیم:

sudo passwd ali

سیستم از شما رمز جدید را می پرسد و باید دو بار وارد کنید. حالا کاربر ali می تواند وارد سیستم شود.

اما useradd به تنهایی پوشه خانه نمی سازد. برای اینکه پوشه خانه هم ایجاد شود، از گزینه -m استفاده کنید:

sudo useradd -m ali

اگر می خواهید شل پیش فرض کاربر را تغییر دهید (مثلا به bash)، از -s استفاده کنید:

sudo useradd -m -s /bin/bash ali

همچنین می توانید کاربر را مستقیم به گروه های اضافی اضافه کنید:

sudo useradd -m -G developers,www-data ali

جدول گزینه های پرکاربرد useradd:

گزینه توضیح مثال
-m ساخت پوشه خانه useradd -m ali
-s تعیین شل پیش‌فرض -s /bin/bash
-G افزودن به گروه‌های اضافی -G sudo,adm
-g تعیین گروه اصلی -g users
-d تعیین مسیر خانه دلخواه -d /data/ali
-c افزودن توضیحات -c "Ali Rezaei"
-e تاریخ انقضای حساب -e 2025-12-31

ایجاد کاربر با adduser (راحت تر)

در توزیع های مبتنی بر دبیان مثل اوبونتو، دستور adduser وجود دارد که یک اسکریپت تعاملی است و کار را خیلی ساده تر می کند. کافی است بنویسید:

sudo adduser hassan

این دستور از شما رمز عبور و اطلاعات اضافی را می پرسد و به صورت خودکار پوشه خانه می سازد. برای اکثر کاربران تازه کار، adduser انتخاب بهتری است.

ایجاد کاربر جدید با useradd

تغییر و مدیریت رمز عبور

بعد از ساخت کاربر، ممکن است بخواهید رمز عبور را تغییر دهید یا سیاست های امنیتی تعیین کنید. دستور passwd برای کاربر عادی رمز خودش را تغییر می دهد و برای root می تواند رمز هر کاربری را عوض کند:

sudo passwd ali

برای اجبار کاربر به تغییر رمز در اولین ورود، از passwd -e استفاده کنید:

sudo passwd -e ali

اگر می خواهید رمز کاربر منقضی شود یا تاریخ انقضا تعیین کنید، دستور chage به کار می آید. مثلا برای اینکه کاربر هر ۹۰ روز رمزش را عوض کند:

sudo chage -M 90 ali

برای دیدن اطلاعات انقضای رمز:

sudo chage -l ali

ویرایش کاربران با usermod

بعد از ساخت کاربر، ممکن است بخواهید مشخصات او را تغییر دهید. دستور usermod برای این کار است. مثلا برای تغییر شل پیش فرض:

sudo usermod -s /bin/zsh ali

برای تغییر پوشه خانه:

sudo usermod -d /newhome/ali -m ali

گزینه -m باعث می شود محتویات پوشه خانه قدیمی به جدید منتقل شود.

برای اضافه کردن کاربر به یک گروه اضافی:

sudo usermod -aG docker ali

نکته مهم: همیشه از -aG استفاده کنید. اگر فقط -G بنویسید، کاربر از تمام گروه های قبلی حذف می شود و فقط در گروه جدید عضو می شود.

برای قفل کردن حساب کاربری (بدون حذف):

sudo usermod -L ali

و برای باز کردن قفل:

sudo usermod -U ali

حذف کاربر با userdel

وقتی کاربری دیگر نیازی نیست، می توانید او را حذف کنید. دستور ساده:

sudo userdel ali

این دستور کاربر را از فایل های سیستمی حذف می کند، اما پوشه خانه او باقی می ماند. اگر می خواهید پوشه خانه هم پاک شود، از -r استفاده کنید:

sudo userdel -r ali

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

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

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

sudo groupadd developers

برای حذف گروه:

sudo groupdel developers

برای تغییر نام گروه:

sudo groupmod -n newname oldname

برای اضافه کردن کاربر به گروه، از usermod -aG استفاده می کنیم (همانطور که قبلا گفتیم) یا از gpasswd:

sudo gpasswd -a ali developers

برای حذف کاربر از گروه:

sudo gpasswd -d ali developers

برای دیدن اعضای یک گروه:

getent group developers

جدول دستورات گروه:

دستور کاربرد
groupadd ساخت گروه جدید
groupdel حذف گروه
groupmod تغییر نام یا GID گروه
gpasswd -a افزودن کاربر به گروه
gpasswd -d حذف کاربر از گروه
groups نمایش گروه‌های یک کاربر
id نمایش UID، GID و گروه‌ها

دسترسی sudo و مدیریت ریشه

در لینوکس، کاربر root قدرت مطلق دارد. اما کار کردن مداوم با root خطرناک است. بهتر است به کاربران عادی دسترسی sudo بدهید تا فقط برای دستورات خاصی از قدرت root استفاده کنند. برای این کار کاربر را به گروه sudo (در اوبونتو) یا wheel (در فدورا و ردهت) اضافه کنید:

sudo usermod -aG sudo ali

یا

sudo usermod -aG wheel ali

سپس کاربر باید از سیستم خارج و دوباره وارد شود تا تغییرات اعمال شود. برای ویرایش فایل sudoers و تعیین دسترسی های دقیق تر، همیشه از visudo استفاده کنید:

sudo visudo

می توانید خطوطی مثل زیر اضافه کنید تا کاربر ali فقط دستور apt را با sudo اجرا کند:

ali ALL=(ALL) /usr/bin/apt

دستورات usermod

پوشه خانه و فایل های پیش فرض

وقتی کاربر جدید ساخته می شود، یک پوشه خانه در /home/username ایجاد می شود. محتویات این پوشه از /etc/skel کپی می شود. اگر می خواهید فایل های پیش فرض خاصی مثل .bashrc یا .profile برای همه کاربران جدید اضافه کنید، می توانید آن ها را در /etc/skel قرار دهید. برای مثال، اگر می خواهید همه کاربران جدید یک پوشه projects داشته باشند:

sudo mkdir /etc/skel/projects

از این به بعد هر کاربر جدیدی که با useradd -m ساخته شود، این پوشه را خواهد داشت.

سناریوهای عملی

سناریو ۱: ساخت کاربر برای یک توسعه دهنده

می خواهیم کاربری به نام sara بسازیم که به گروه docker و sudo دسترسی داشته باشد و شل پیش فرضش bash باشد:

sudo useradd -m -s /bin/bash -G sudo,docker sara
sudo passwd sara

سناریو ۲: ساخت کاربر برای یک سرور وب

کاربری به نام webadmin می خواهیم که فقط به پوشه /var/www دسترسی داشته باشد و نتواند sudo بزند:

sudo useradd -m -s /bin/bash webadmin
sudo passwd webadmin
sudo chown -R webadmin:webadmin /var/www

سناریو ۳: حذف یک کاربر و پاک کردن تمام آثار

sudo userdel -r olduser
sudo groupdel oldgroup

عیب یابی مشکلات رایج

مشکل: کاربر جدید نمی تواند وارد شود.

  • مطمئن شوید رمز عبور تنظیم شده است (sudo passwd username).

  • بررسی کنید که پوشه خانه وجود دارد و مالکیت آن درست است.

  • شل کاربر را چک کنید (grep username /etc/passwd).

مشکل: کاربر به گروه اضافه شده اما دسترسی ندارد.

  • کاربر باید از سیستم خارج و دوباره وارد شود تا عضویت گروهی جدید اعمال شود.

  • با دستور groups username بررسی کنید که کاربر در گروه مورد نظر باشد.

مشکل: نمی توان کاربر را حذف کرد چون در حال استفاده است.

  • ابتدا با pkill -u username تمام فرآیندهای کاربر را ببندید، سپس حذف کنید.

نتیجه گیری

مدیریت کاربران در لینوکس یکی از مهارت های پایه و ضروری برای هر مدیر سیستم است. با یادگیری دستورات useradd، usermod، userdel، passwd و groupadd می توانید به راحتی کاربران را بسازید، دسترسی ها را تنظیم کنید و امنیت سیستم را بالا ببرید. همیشه اصل کمترین دسترسی را رعایت کنید: به هر کاربر فقط همان دسترسی هایی را بدهید که برای انجام کارش لازم است. از کار کردن مستقیم با root خودداری کنید و به جای آن از sudo استفاده کنید. با تمرین این دستورات، به سرعت در مدیریت سرورهای لینوکس حرفه ای خواهید شد.

نکته آخر: قبل از اعمال تغییرات روی سیستم تولیدی، حتما روی یک ماشین مجازی تست کنید. یک اشتباه کوچک در فایل sudoers می تواند شما را از سیستم قفل کند. پس همیشه احتیاط کنید.

ثبت رای
جستجو

سرفصل های مقاله

نظرات کاربران
دیدگاهتان را بنویسید

لطفا علاوه بر متن نظر، نام و ایمیل خود را نیز وارد کنید. (ایمیل شما منتشر نخواهد شد)