مدیریت کاربران در لینوکس یکی از مهمترین مهارتهایی است که هر مدیر سرور یا کاربر سرور لینوکس باید با آن آشنا باشد. در زمان نصب اوبونتو معمولا تنها حساب root روی سیستم فعال است و دسترسی کامل مدیریت سرور از طریق همین کاربر انجام میشود.
اگرچه کار کردن با کاربر root کنترل کامل سیستم را در اختیار شما قرار میدهد، اما استفاده دائمی از آن میتواند خطرناک باشد و در صورت اجرای اشتباه دستورات، باعث آسیب به سرور شود. به همین دلیل در اوبونتو و سایر توزیعهای لینوکس معمولا توصیه میشود برای کارهای روزمره، یک کاربر عادی ایجاد کرده و فقط در مواقع لازم از دسترسی sudo استفاده شود.
در این آموزش مدیریت کاربران در اوبونتو یاد میگیرید چگونه یک کاربر جدید در لینوکس ایجاد کنید، به آن دسترسی sudo بدهید، کاربر را حذف کنید و در صورت نیاز حساب کاربری را بهصورت موقت غیرفعال کنید.
پیشنیازها
برای انجام این آموزش به یک سرور اوبونتو یا سرور مجازی لینوکس نیاز دارید که دسترسی root یا sudo روی آن فعال باشد. همچنین بهتر است فایروال سرور نیز تنظیم شده باشد تا امنیت سیستم حفظ شود.
ساخت کاربر جدید در اوبونتو
برای ساخت یوزر در اوبونتو میتوانید از دستور adduser استفاده کنید. اگر با کاربر root وارد سرور شدهاید، دستور زیر را اجرا کنید:
adduser newuser
اگر با یک کاربر معمولی که دسترسی sudo دارد وارد شدهاید، باید دستور را بهصورت زیر اجرا کنید:
sudo adduser newuser
بعد از اجرای دستور، سیستم چند سوال از شما میپرسد. ابتدا باید رمز عبور کاربر جدید را وارد و تایید کنید. سپس میتوانید اطلاعاتی مانند نام یا شماره تماس را وارد کنید که این بخش اختیاری است و با زدن ENTER قابل رد شدن است.
در انتها اوبونتو اطلاعات واردشده را نمایش میدهد و با تایید شما، کاربر جدید ساخته میشود.
این روش یکی از رایجترین راههای ساخت کاربر جدید در VPS لینوکس و سرور اوبونتو محسوب میشود.
دادن دسترسی sudo به کاربر در اوبونتو
در بسیاری از مواقع لازم است کاربر جدید بتواند دستورات مدیریتی اجرا کند. برای این کار باید دسترسی sudo به کاربر داده شود.
اضافه کردن کاربر به گروه sudo
در اوبونتو اعضای گروه sudo بهصورت پیشفرض دسترسی مدیریتی دارند. برای مشاهده گروههای کاربر میتوانید از دستور زیر استفاده کنید:
groups newuser
خروجی معمولا مشابه زیر خواهد بود:
newuser : newuser
برای اضافه کردن کاربر به گروه sudo از دستور usermod استفاده کنید:
usermod -aG sudo newuser
اگر با کاربر غیر root وارد شدهاید، دستور را با sudo اجرا کنید:
sudo usermod -aG sudo newuser
گزینه -aG باعث میشود کاربر به گروه مشخصشده اضافه شود بدون اینکه از گروههای قبلی حذف گردد.
این روش رایجترین راه برای دادن دسترسی sudo به کاربر در اوبونتو است.
تنظیم دسترسی sudo از طریق sudoers
روش دیگر برای مدیریت دسترسی کاربران در اوبونتو استفاده از فایل sudoers است. برای ویرایش این فایل باید از دستور visudo استفاده کنید:
sudo visudo
این دستور فایل /etc/sudoers را باز میکند و قبل از ذخیره، تنظیمات را بررسی میکند تا خطاهای احتمالی باعث از کار افتادن sudo نشوند.
در فایل بازشده، خط زیر را پیدا کنید:
root ALL=(ALL:ALL) ALL
سپس خط زیر را زیر آن اضافه کنید:
newuser ALL=(ALL:ALL) ALL
در این بخش باید بهجای newuser نام کاربر موردنظر خود را وارد کنید.
پس از ذخیره فایل، کاربر موردنظر به تمامی دستورات مدیریتی دسترسی خواهد داشت.
تست دسترسی sudo کاربر
بعد از تنظیم sudo میتوانید عملکرد آن را بررسی کنید. کاربر جدید میتواند دستورات عادی را بدون sudo اجرا کند:
some_command
برای اجرای دستورات مدیریتی باید sudo را قبل از دستور وارد کند:
sudo some_command
در این حالت اوبونتو رمز عبور همان کاربر را دریافت میکند و در صورت صحیح بودن، دستور با دسترسی مدیریتی اجرا میشود.
حذف کاربر در اوبونتو
اگر دیگر به یک حساب کاربری نیاز ندارید، میتوانید آن را حذف کنید.
برای حذف کاربر در لینوکس بدون حذف فایلهای شخصی، دستور زیر را اجرا کنید:
sudo deluser newuser
اگر میخواهید پوشه Home کاربر نیز حذف شود، از دستور زیر استفاده کنید:
sudo deluser --remove-home newuser
این دستور علاوه بر حذف حساب کاربری، فایلها و دایرکتوری Home کاربر را نیز پاک میکند.
اگر قبلا برای این کاربر دسترسی sudo تنظیم کردهاید، بهتر است تنظیمات مربوط به آن را نیز از فایل sudoers حذف کنید تا در آینده مشکلی ایجاد نشود.
حذف گروه کاربر در اوبونتو
گاهی پس از حذف کاربر، گروه مربوط به آن همچنان روی سیستم باقی میماند. در صورتی که هیچ کاربر دیگری عضو آن گروه نباشد، میتوانید آن را حذف کنید:
sudo delgroup groupname
قفل کردن کاربر بهجای حذف
در برخی شرایط ممکن است بخواهید حساب کاربری را موقتا غیرفعال کنید بدون اینکه فایلها و اطلاعات آن حذف شوند.
قفل کردن رمز عبور کاربر
برای غیرفعال کردن ورود کاربر از طریق رمز عبور، دستور زیر را اجرا کنید:
sudo passwd -l username
این دستور رمز عبور کاربر را قفل میکند و اجازه ورود با پسورد را نمیدهد.
برای فعالسازی مجدد حساب کاربری:
sudo passwd -u username
توجه داشته باشید که این روش فقط ورود با رمز عبور را غیرفعال میکند و اگر کاربر از SSH Key استفاده کند، همچنان ممکن است بتواند وارد سرور شود.
غیرفعال کردن Login Shell کاربر
روش دیگر برای غیرفعال کردن کاربر در اوبونتو تغییر Shell پیشفرض آن است. برای این کار میتوانید Shell کاربر را به nologin تغییر دهید:
sudo usermod -s /usr/sbin/nologin username
در صورت نیاز به بازگردانی دسترسی:
sudo usermod -s /bin/bash username
با این روش، کاربر دیگر نمیتواند وارد Shell لینوکس شود.
سوالات متداول
تفاوت adduser و useradd در اوبونتو چیست؟
در لینوکس و مخصوصا اوبونتو دو دستور رایج برای ساخت کاربر وجود دارد: adduser و useradd.
دستور adduser یک ابزار سطح بالا و کاربر پسند است که فرآیند ساخت کاربر را سادهتر میکند. این دستور هنگام ایجاد کاربر جدید، بهصورت تعاملی اطلاعاتی مانند رمز عبور، نام کاربر و سایر جزئیات را دریافت میکند. همچنین بهصورت خودکار Home Directory ایجاد میکند، فایلهای پیشفرض مانند .bashrc را کپی میکند و Shell مناسب را برای کاربر تنظیم میکند. به همین دلیل در اکثر سناریوها، adduser گزینه پیشنهادی برای مدیریت کاربران در اوبونتو محسوب میشود.
در مقابل، useradd یک ابزار سطح پایینتر است که کنترل بیشتری روی فرآیند ساخت کاربر ارائه میدهد. این دستور بهصورت پیشفرض Home Directory ایجاد نمیکند و بسیاری از تنظیمات باید بهصورت دستی انجام شوند. به همین دلیل بیشتر در اسکریپتهای خودکار، اتوماسیون سرور و مدیریت حرفهای سیستم استفاده میشود.
چگونه به کاربر دسترسی sudo بدهیم؟
برای دادن دسترسی sudo در اوبونتو معمولا کاربر را به گروه sudo اضافه میکنند. اعضای این گروه میتوانند دستورات مدیریتی را با سطح دسترسی root اجرا کنند.
برای افزودن کاربر به گروه sudo از دستور زیر استفاده کنید:
sudo usermod -aG sudo username
بهجای username نام کاربر موردنظر را وارد کنید.
در این دستور، گزینه -a به معنی اضافه کردن و -G برای مشخص کردن گروه استفاده میشود. پس از اجرای دستور، معمولاً کاربر باید یکبار از حساب خود خارج و دوباره وارد شود تا دسترسی sudo فعال شود.
آیا حذف کاربر باعث حذف فایلهای آن هم میشود؟
خیر. بهصورت پیشفرض، دستور deluser فقط حساب کاربری را حذف میکند و فایلها و Home Directory کاربر باقی میمانند.
اگر بخواهید هنگام حذف کاربر، پوشه Home و فایلهای مربوط به آن نیز حذف شوند، باید از گزینه --remove-home استفاده کنید:
sudo deluser --remove-home username
همچنین در صورت نیاز میتوانید قبل از حذف، از فایلهای کاربر بکاپ بگیرید:
sudo deluser --backup-home username
این موضوع در مدیریت کاربران سرور مجازی اهمیت زیادی دارد، مخصوصاً زمانی که چند کاربر روی یک سرور فعالیت میکنند.
آیا امکان بازیابی کاربر حذفشده وجود دارد؟
در لینوکس امکان بازیابی مستقیم کاربر حذفشده با یک دستور ساده وجود ندارد. زمانی که یک کاربر حذف میشود، اطلاعات آن از فایلهای سیستمی مانند /etc/passwd و /etc/shadow پاک خواهد شد.
با این حال، اگر هنگام حذف کاربر از گزینه --remove-home استفاده نشده باشد، فایلها و Home Directory کاربر همچنان روی سرور باقی میمانند. در این شرایط میتوان دوباره کاربری با همان نام ایجاد کرد و در صورت امکان همان UID و GID قبلی را به آن اختصاص داد تا دسترسی به فایلهای قبلی برقرار شود.
چگونه بررسی کنیم یک کاربر دسترسی sudo دارد؟
برای بررسی دسترسی sudo یک کاربر در اوبونتو میتوانید گروههای آن کاربر را مشاهده کنید:
groups username
اگر گروه sudo در خروجی نمایش داده شود، یعنی کاربر دسترسی مدیریتی دارد.
همچنین میتوانید فایل /etc/sudoers را با دستور visudo بررسی کنید تا مطمئن شوید دسترسی خاصی برای آن کاربر تعریف نشده باشد.
چگونه بین کاربران در اوبونتو جابهجا شویم؟
برای تغییر کاربر در لینوکس میتوانید از دستور su استفاده کنید:
su - username
این دستور یک Session جدید برای کاربر موردنظر ایجاد میکند و رمز عبور آن کاربر را درخواست خواهد کرد.
اگر کاربر فعلی دسترسی sudo داشته باشد، میتواند بدون نیاز به رمز عبور کاربر مقصد از دستور زیر استفاده کند:
sudo su - username
این روش در مدیریت سرور اوبونتو و VPS لینوکس بسیار رایج است و مدیران سیستم برای تست دسترسی کاربران مختلف از آن استفاده میکنند.
جمعبندی
مدیریت کاربران در اوبونتو یکی از مهمترین بخشهای مدیریت سرور لینوکس محسوب میشود. با استفاده از ابزارهایی مانند adduser، usermod، deluser و sudo میتوانید کاربران جدید ایجاد کنید، سطح دسترسی آنها را مدیریت کنید و در صورت نیاز حسابهای کاربری را غیرفعال یا حذف نمایید.
یادگیری ساخت و حذف کاربر در اوبونتو و مدیریت دسترسی sudo به شما کمک میکند امنیت سرور را افزایش دهید و دسترسی کاربران را بهصورت اصولی کنترل کنید، موضوعی که در مدیریت سرور لینوکس، سرور اختصاصی ایران و زیرساختهای حرفهای اهمیت بسیار زیادی دارد.


