
مدیریت کاربران یکی از مهم ترین مهارت هایی است که هر مدیر سیستم لینوکس باید بلد باشد. فرقی نمی کند یک سرور مجازی شخصی داشته باشید یا چند سرور اختصاصی سازمان با صدها کارمند، در هر صورت باید بتوانید کاربر بسازید، دسترسی ها را تنظیم کنید، رمز عبور تعیین کنید و در صورت نیاز کاربر را حذف کنید. خوشبختانه لینوکس ابزارهای قدرتمند و نسبتا ساده ای برای این کار دارد. در این مقاله به صورت گام به گام یاد می گیرید که چطور کاربر ایجاد کنید، آن ها را مدیریت کنید، گروه بسازید و دسترسی های لازم را بدهید. تمام دستورات با مثال های واقعی توضیح داده می شوند تا بتوانید همین الان روی سیستم خودتان امتحان کنید.
چرا مدیریت کاربران مهم است؟
تصور کنید یک سرور وب دارید که چند نفر باید روی آن کار کنند. اگر همه با کاربر 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 انتخاب بهتری است.

تغییر و مدیریت رمز عبور
بعد از ساخت کاربر، ممکن است بخواهید رمز عبور را تغییر دهید یا سیاست های امنیتی تعیین کنید. دستور 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

پوشه خانه و فایل های پیش فرض
وقتی کاربر جدید ساخته می شود، یک پوشه خانه در /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 می تواند شما را از سیستم قفل کند. پس همیشه احتیاط کنید.