مقدمه

لینوکس از ابتدا به عنوان یک سیستم عامل چند کاربره (Multi-user) طراحی شده است. این یعنی چندین نفر می‌توانند به طور همزمان حساب‌های کاربری مجزا روی یک سیستم داشته باشند، با فایل‌های شخصی خود کار کنند و برنامه‌های خود را اجرا نمایند. مدیریت این حساب‌های کاربری یکی از وظایف اصلی و بنیادی هر مدیر سیستم لینوکس است.

یک حساب کاربری شامل اطلاعاتی مانند نام کاربری، گذرواژه، دایرکتوری خانه (home directory) و شل پیش‌فرض است. در این درس، با مجموعه‌ای از دستورات حیاتی برای مدیریت چرخه‌ی حیات یک کاربر آشنا می‌شویم: از ایجاد یک حساب کاربری جدید گرفته تا ویرایش مشخصات آن و در نهایت، حذف آن از سیستم. این درس، اولین قدم ما در دنیای مدیریت سیستم است.

کاربر ریشه و دستور sudo

قبل از شروع، باید با یک مفهوم کلیدی آشنا شویم: کاربر ریشه (root user). کاربر ریشه یا ابرکاربر (superuser)، قدرتمندترین حساب کاربری در لینوکس است و هیچ محدودیتی ندارد. این کاربر می‌تواند هر فایلی را بخواند، هر برنامه‌ای را متوقف کند و هر تغییری را در سیستم اعمال نماید.

به دلیل قدرت بسیار زیاد کاربر ریشه، وارد شدن مستقیم به سیستم با این حساب کاربری یک ریسک امنیتی بزرگ محسوب می‌شود، زیرا یک اشتباه کوچک می‌تواند کل سیستم را نابود کند. راهکار استاندارد و امن برای انجام کارهای مدیریتی، استفاده از دستور sudo (مخفف Superuser Do) است.

دستور sudo به شما اجازه می‌دهد تا یک دستور واحد را با اختیارات کاربر ریشه اجرا کنید. وقتی از sudo استفاده می‌کنید، سیستم گذرواژه‌ی حساب کاربری خودتان را از شما می‌پرسد تا هویت شما را تأیید کند. تمام دستوراتی که در این درس یاد می‌گیریم، چون با فایل‌های حساس سیستمی سر و کار دارند، نیازمند استفاده از sudo هستند.

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

دستور useradd برای افزودن یک حساب کاربری جدید به سیستم استفاده می‌شود. اگرچه می‌توان از آن به تنهایی استفاده کرد (sudo useradd newuser)، اما معمولاً بهتر است چند گزینه مهم را نیز به همراه آن به کار ببریم تا حساب کاربری به درستی پیکربندی شود.

$ sudo useradd -m -s /bin/bash -c "Full Name" username

بیایید گزینه‌های این دستور را بررسی کنیم:

آپشن توضیح
-m یک دایرکتوری خانه (home directory) برای کاربر در مسیر /home/username ایجاد می‌کند (make home). این گزینه بسیار مهم است.
-s شل (shell) پیش‌فرض کاربر را مشخص می‌کند. معمولاً /bin/bash یک انتخاب خوب است.
-c یک توضیح یا کامنت (comment) برای کاربر اضافه می‌کند که معمولاً نام کامل شخص است.

تنظیم گذرواژه

پس از ایجاد کاربر، حساب او قفل است و نمی‌تواند وارد سیستم شود تا زمانی که برایش یک گذرواژه تعیین کنیم. این کار با دستور passwd انجام می‌شود:

$ sudo passwd username
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

ویرایش کاربر موجود با usermod

برای تغییر مشخصات یک حساب کاربری موجود، از دستور usermod (مخفف user modify) استفاده می‌کنیم. این دستور بسیاری از گزینه‌های مشابه useradd را می‌پذیرد.

تغییرات رایج

  • تغییر شل پیش‌فرض: sudo usermod -s /bin/sh username
  • قفل کردن حساب کاربری (غیرفعال کردن): sudo usermod -L username
  • باز کردن حساب کاربری (فعال کردن): sudo usermod -U username
  • افزودن کاربر به یک گروه جدید: sudo usermod -aG groupname username (گزینه -a برای الحاق و -G برای گروه‌های ثانویه است که در درس بعد بیشتر بررسی می‌شود).

حذف کاربر با userdel

در نهایت، برای حذف یک حساب کاربری از سیستم، از دستور userdel (مخفف user delete) استفاده می‌کنیم.

اجرای این دستور به تنهایی (sudo userdel username) فقط اطلاعات کاربر را از فایل‌های سیستمی مانند /etc/passwd پاک می‌کند، اما دایرکتوری خانه و فایل‌های او را دست‌نخورده باقی می‌گذارد.

در اکثر موارد، ما می‌خواهیم کاربر و تمام داده‌هایش را به طور کامل حذف کنیم. برای این کار، از گزینه‌ی -r (مخفف remove) استفاده می‌کنیم:

$ sudo userdel -r username_to_delete

احتیاط قبل از حذف!

دستور userdel -r بسیار قدرتمند است و تمام فایل‌های موجود در دایرکتوری خانه کاربر را بدون هیچ تأییدیه‌ای حذف می‌کند. این عمل غیرقابل بازگشت است. همیشه قبل از اجرای این دستور، مطمئن شوید که از داده‌های مهم کاربر نسخه‌ی پشتیبان تهیه کرده‌اید.