ما کاربران را مدیریت می کنیم: useradd، usermod و userdel. کاربران و گروه ها در لینوکس اضافه کردن حذف ویرایش کاربران Centos کاربر را از گروه حذف می کند

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

به عنوان مثال، بیایید یک کاربر اضافه کنیم ویوک:

useradd -gکاربران - مدیران G، ftp، www، توسعه دهندگان -s/bin/bash xxxx/home/ghost -m ویوک

  • دایرکتوری خانه
  • -sپوسته شروع (/bin/sh) را تنظیم کنید - سپس می توانید آن را در فایل تغییر دهید /etc/passwd
  • کلمه عبور
  • -gگروه اصلی که کاربر به آن اختصاص داده شده است (گروه باید وجود داشته باشد)
  • -جیگروه های دیگری که کاربر به آنها اختصاص داده شده است
  • -mیک فهرست اصلی برای کاربر ایجاد کنید
  • رمز عبور کاربر شخصیت xxxx

بیایید مطمئن شویم که گروه توسعه دهندگان وجود دارد:

# توسعه دهندگان grep /etc/group

اگر گروهی وجود ندارد، از دستور استفاده کنید گروه اضافه کردنبرای ایجاد یک گروه توسعه دهندگان جدید:

حالا با استفاده از دستور usermodکاربر vivek را به گروه توسعه دهندگان اضافه کنید:

# توسعه دهندگان adduser vivek و توسعه دهندگان newgrp

بیایید مطمئن شویم که کاربر به گروه توسعه دهندگان اضافه شده است:

#id vivek
خروجی:
uid=1122(vivek) gid=1125(vivek) group=1125(vivek),1124(توسعه دهندگان)

تنظیم/تغییر رمز عبور برای کاربر vivek:

بیایید با گروه ها بازی کنیم

بیایید به کاربر vivek بگوییم که فقط در گروه توسعه دهندگان شرکت کند

usermod-G توسعه دهندگان vivek

بیایید به کاربر vivek بگوییم که فقط در گروه های ادمین، ftp، www، توسعه دهندگان با وارد کردن:

# usermod -G admins,ftp,www,developers vivek

بیایید کاربر vivek را از برخی گروه ها حذف کنیم (گروه ها را دوباره به او اختصاص دهید):

# usermod -G ftp,www vivek

در حال حاضر vivek در گروه مدیران و توسعه دهندگان گنجانده نشده است.

توجه داشته باشید:تیم usermodاگر آن کاربر در حال حاضر وارد سیستم شده باشد، نام کاربری را تغییر نخواهد داد.

userdel- حذف کاربر

به عنوان مثال، کاربر vivek را حذف کنید:

  • -rکاربر را به همراه فهرست اصلی حذف کنید

SYNTAX مفصل

useradd [-u مشخص کننده[-o] [-i]] [-g گروه] [-G گروه[[، گروه] . . .]] [-d کاتالوگ] [-s پوسته] [-ج یک نظر] [-m [-k skel_dir]] [-f غیر فعال] [-e منقضی شود] [-پ passgen] [-آ رویداد[, . . .]] reg_name

توصیف همراه با جزئیات

زنگ زدن useraddمعمولا یک ورودی کاربر جدید را به فایل های داده سیستم اضافه می کند شناسایی و تایید هویت(شناسایی و احراز هویت - I&A). استثنا کاربران هستند سرویس اطلاعات شبکه(سرویس اطلاعات شبکه یا به اختصار NIS). همچنین به شما امکان می دهد عضویت در گروه های اضافی را برای کاربر مشخص کنید (گزینه -جی) و یک دایرکتوری شروع برای آن ایجاد کنید (گزینه -m). ورود جدید تا زمانی که دستور اجرا نشود مسدود می شود passwd.

بلافاصله پس از نصب، مقادیر استاندارد برای پارامترهای مختلف در فایل نشان داده شده است /etc/default/useradd. مقادیر پیش‌فرض برای آن دسته از گزینه‌های فهرست شده در زیر که به مقادیر پیش‌فرض نیاز دارند را می‌توان با استفاده از دستور تغییر داد افادم.

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

گزینه های زیر پشتیبانی می شوند:

شناسه -u شماره شناسایی کاربر (UID). این عدد باید یک عدد صحیح غیر منفی باشد که بیشتر از آن نباشد MAXUID، تعریف شده در sys/param.h. پیش‌فرض، UID غیر قدیمی موجود بعدی (یکتا) بزرگتر از 99 است. اگر ورود جدید توسط سرویس اطلاعات شبکه (NIS) مدیریت شود، این گزینه نادیده گرفته می‌شود. برای کسب اطلاعات بیشتر در مورد این، به بخش "نام های ثبت خدمات اطلاعات شبکه" در زیر مراجعه کنید.
-o این گزینه به شما امکان می دهد UID را کپی کنید (آن را غیر منحصر به فرد کنید). از آنجا که حفاظت از سیستم به عنوان یک کل، و همچنین یکپارچگی دنباله حسابرسی(مسیر حسابرسی) و اطلاعات حسابداری(اطلاعات حسابداری) به ویژه به مکاتبات منحصر به فرد هر UID با یک شخص خاص بستگی دارد، استفاده از این گزینه توصیه نمی شود (برای اطمینان از اینکه اقدامات کاربر در نظر گرفته شده است).
-من اجازه استفاده از UID قدیمی را می دهد.
گروه -g شناسه عدد صحیح یا نام نمادین یک گروه موجود. این گزینه مشخص می کند گروه اصلی(گروه اولیه) برای یک کاربر جدید. به طور پیش فرض از گروه استاندارد مشخص شده در فایل استفاده می شود /etc/default/useradd
-گروه G[[,گروه] . . .] یک یا چند عنصر در یک لیست جدا شده با کاما، که هر یک نشان دهنده یک شناسه عدد صحیح یا نام نمادین یک گروه موجود است. این لیست تعریف می کند عضویت در گروه های اضافی(عضویت گروه تکمیلی) برای کاربر. تکرارها نادیده گرفته می شوند. تعداد عناصر موجود در لیست نباید بیشتر شود NGROUPS_MAX- 1، زیرا تعداد کل گروه های اضافی برای یک کاربر به اضافه گروه اصلی نباید بیشتر شود NGROUPS_MAX. اگر ورود جدید توسط سرویس اطلاعات شبکه (NIS) مدیریت شود، این گزینه نادیده گرفته می شود. به "نام های ثبت خدمات اطلاعات شبکه" در زیر مراجعه کنید.
دایرکتوری -d شروع دایرکتوری(دایرکتوری خانه) کاربر جدید. طول این فیلد نباید بیشتر از 256 کاراکتر باشد. پیش فرض است HOMEDIR/reg_name، جایی که هومدیر- دایرکتوری پایه برای دایرکتوری های اولیه کاربران جدید و reg_name- نام ثبت نام کاربر جدید.
پوسته -s مسیر کامل برنامه به عنوان پوسته اولیه برای کاربر بلافاصله پس از ثبت نام استفاده می شود. طول این فیلد نباید بیشتر از 256 کاراکتر باشد. به طور پیش فرض این فیلد خالی است، که سیستم را مجبور می کند از مفسر دستور استاندارد استفاده کند /usr/bin/sh. به عنوان یک ارزش پوستهیک فایل اجرایی موجود باید مشخص شود.
-c نظر دهید هر رشته متنی به طور معمول، این یک توضیح کوتاه از نام ورود است و اکنون برای نشان دادن نام خانوادگی و نام کاربر واقعی استفاده می شود. این اطلاعات در پرونده کاربر در یک فایل ذخیره می شود /etc/passwd. طول این فیلد نباید بیشتر از 128 کاراکتر باشد.
-m اگر دایرکتوری اصلی کاربر جدید وجود نداشته باشد، ایجاد می کند. اگر دایرکتوری از قبل وجود داشته باشد، کاربری که اضافه می شود باید مجوز دسترسی به دایرکتوری مشخص شده را داشته باشد.
-k skel_dir محتویات یک دایرکتوری را کپی می کند skel_dirبه دایرکتوری اصلی کاربر جدید، به جای محتویات دایرکتوری استاندارد "اسکلت"، /etc/skel. کاتالوگ skel_dirباید وجود داشته باشد. دایرکتوری استاندارد "اسکلت" حاوی فایل های استانداردی است که محیط کار کاربر را تعریف می کند. دایرکتوری مشخص شده توسط مدیر skel_dirممکن است حاوی فایل ها و دایرکتوری های مشابه باشد که برای یک هدف خاص ایجاد شده اند.
-f غیر فعال حداکثر تعداد روزهای مجاز بین استفاده از نام ثبت نام قبل از اینکه نام قبلاً نامعتبر اعلام شود. معمولاً مقادیر اعداد صحیح مثبت هستند.
-e منقضی می شود تاریخی که از آن پس نام ثبت نام دیگر نمی تواند استفاده شود. پس از این تاریخ، هیچ کاربری نمی تواند تحت این نام ورود به سیستم دسترسی داشته باشد. (این گزینه هنگام ایجاد لاگین های موقت مفید است.) مقدار آرگومان را وارد کنید منقضی شود(نماینده تاریخ) می تواند در هر قالبی باشد (به جز تاریخ جولیان). به عنوان مثال، می توانید 10/6/99 یا 6 اکتبر 1999 را وارد کنید.
-p passgen نشان می دهد که فیلد FLAG در فایل است /etc/shadowباید روی مقدار مشخص شده تنظیم شود. این فیلد با دستور قابل دسترسی است passwdبرای تعیین اینکه آیا تولید کننده رمز عبور برای یک کاربر معین معتبر است یا خیر. اگر گزینه به صراحت مشخص نشده است، ورود بررسی شده است FORCED_PASSدر پرونده /etc/default/useraddبرای تعیین مقدار فیلد مربوطه در /etc/shadow. اگر سوابق FORCED_PASSنه در /etc/default/useradd، در قسمت مربوطه ورودی در /etc/shadowمهم نخواهد بود اگر ارزش FORCED_PASSبرابر 1، ورود به /etc/shadowمقدار 1 را می گیرد. اگر مقدار passgenخالی نیست و یک کاراکتر ASCII قابل چاپ نیست، یک پیام تشخیصی صادر می شود.
-یک رویداد فهرست انواع رویدادها یا کلاس‌ها، که با کاما از هم جدا شده‌اند ماسک حسابرسی(ماسک حسابرسی) برای کاربر. بلافاصله پس از نصب سیستم، ماسک استاندارد ممیزی برای کاربر وجود ندارد، اما می توان آن را در فایل تنظیم کرد. /etc/default/useraddبا استفاده از دستور افادم. این گزینه فقط در صورتی قابل استفاده است که Auditing Utilities نصب شده باشد. (برای اینکه متوجه شوید چه بسته هایی روی سیستم نصب شده اند، دستور را اجرا کنید pkginfo.)
reg_name یک رشته قابل چاپ که نام ورود کاربر جدید را مشخص می کند. نباید حاوی کولون باشد ( : ) و کاراکترهای فید خط ( \n). همچنین نباید با حرف بزرگ شروع شود.

توجه داشته باشید که بسیاری از مقادیر پیش فرض پارامترهای مورد بحث در بالا را می توان با استفاده از دستور تغییر داد افادم، برای کار با یک فایل طراحی شده است /etc/default/useradd. این مقادیر پیش فرض فقط برای کاربران محلی اعمال می شود. برای کاربران NIS، مقادیر پیش فرض در پایگاه داده خدمات اطلاعات شبکه تنظیم شده است. برای تغییر پیش فرض های NIS، باید گزینه هایی را در خط فرمان مشخص کنید.

نام های ثبت خدمات اطلاعات شبکه

اگر نام ورود با کاراکتر شروع شود + ، (مثلا، +کریس، تعریف کاربر توسط سرویس اطلاعات شبکه (NIS) مدیریت خواهد شد. مقادیر پیش فرض بر اساس پایگاه داده NIS به جای فایل تعیین می شود /etc/defaults/useradd. مقادیر آرگومان برای گزینه ها -u, -gو -جیدر صورت مشخص شدن این گزینه ها بی سر و صدا نادیده گرفته می شود. در عوض، شناسه کاربر و مقادیر شناسه گروه از پایگاه داده NIS گرفته می شود. برای جزئیات بیشتر به صفحه راهنما مراجعه کنید. passwd. لطفاً توجه داشته باشید که هنگام افزودن یک کاربر NIS، ورود به سیستم باید از قبل در پایگاه داده NIS وجود داشته باشد. به عنوان مثال، برای اضافه کردن یک نام ورود کریسبه عنوان نام کاربری NIS، کریسباید قبلاً در پایگاه داده NIS وجود داشته باشد. سپس باید تماس بگیرید useraddبا نام ثبت نام +کریسنشان می دهد که یک کاربر باید اضافه شود کریسبه عنوان یک کاربر NIS، نه به عنوان یک کاربر محلی.

فایل ها

/etc/default/useradd
/etc/group
/etc/passwd
/etc/security/ia/ageduid
/etc/security/ia/audit(اگر Auditing Utilities نصب شده باشد)
/etc/security/ia/index
/etc/security/ia/master
/etc/shadow
/etc/skel

تشخیص

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


نحو خط فرمان نامعتبر است.
نحو خط فرمان نامعتبر بود.
یک آرگومان نامعتبر در گزینه مشخص شده است.
یک آرگومان نامعتبر با یک گزینه ارائه شد.
شناسه مشخص شده در گزینه -u در حال حاضر در حال استفاده است، اما گزینه -o مشخص نشده است.
uid مشخص شده با گزینه -u در حال حاضر در حال استفاده است و گزینه -o مشخص نشده است.
گروه مشخص شده با گزینه -g وجود ندارد.
گروه مشخص شده با گزینه -g وجود ندارد.
نام ورود ارائه شده منحصر به فرد نیست.
ورود مشخص شده منحصر به فرد نیست.
تغییر /etc/group انجام نشد. لاگین به فایل /etc/passwd اضافه می شود، اما به فایل /etc/group اضافه نمی شود.
نمی توان /etc/group را به روز کرد. لاگین به فایل /etc/passwd اضافه شد اما به فایل /etc/group اضافه نشد.
دایرکتوری شروع نمی تواند ایجاد شود (با گزینه -m) یا کپی کردن skel_dir در دایرکتوری شروع انجام نشد.
قادر به ایجاد دایرکتوری اصلی (با گزینه -m) یا تکمیل کپی از skel_dir در فهرست اصلی نیست.
شناسنامه به اندازه کافی قدیمی نیست. دیگری را انتخاب کنید.
uid به اندازه کافی پیر نشده است دیگری را انتخاب کنید.
یک گزینه -a نامعتبر مشخص شد. سرویس سیستم نصب نشده است.
یک گزینه نامعتبر -a مشخص شد. سرویس سیستم نصب نشده است
نوع یا کلاس رویداد حسابرسی مشخص شده نامعتبر است.
یک نوع رویداد حسابرسی یا رویداد کلاس نامعتبر مشخص شد.

سیستم‌هایی که دسترسی چند کاربره را فراهم می‌کنند، خواه یک سیستم عامل سیستم‌عامل، نرم‌افزار، سیستم مدیریت محتوا (CMS) باشد، داشتن ابزارهایی برای مدیریت مطمئن کاربران (حساب‌ها یا حساب‌های آنها، تنظیمات کاربر، فهرست‌های اصلی و غیره) بسیار مهم است. ) و همچنین برای سازماندهی و مدیریت دسترسی کاربر. در چنین مواردی، مدیریت شایسته و متفکرانه کاربران (به طور دقیق تر، حساب های آنها) یک جنبه کلیدی است که امنیت، ثبات و در نتیجه قابلیت اطمینان کل سیستم به آن بستگی دارد. توزیع‌های لینوکس مدرن دارای سیستم‌های مدیریت کاربر خودکار با رابط کاربری گرافیکی واضح (GUI) هستند که به شما امکان می‌دهد به سرعت و به راحتی فعالیت‌های معمولی (همانطور که در واقعیت مشخص است) برای مدیریت کاربران و پیکربندی حساب‌های آنها انجام دهید. با این حال، دانستن و درک اینکه چگونه و چه فرآیندها و تغییرات واقعی در خود سیستم در طول مدیریت کاربر رخ می دهد بسیار مهم است.

اضافه کردن کاربران در لینوکس

برای افزودن یک کاربر جدید به نام John به سیستم کافیست دستور زیر را اجرا کنید:

$sudo useradd John

با این کار ورودی زیر در فایل /etc/passwd ایجاد می شود:

John:x:535:20: :/home/john:/bin/sh

با این حال، تیم useraddامکانات بسیار بیشتری دارد، به عنوان مثال:

$ sudo useradd -c "John Silver" -d /home/pirates/john -g pirates -G john -m -s /bin/bash john

این دستور یک کاربر با نام کامل "جان سیلور" و نام لاگین "جان" به سیستم اضافه می کند. قرار دادن او در گروه اصلی «دزدان دریایی»، او را به گروه دیگری «جان» اضافه می‌کند و یک فهرست خانه در /home/pirates/john به او اختصاص می‌دهد. در نتیجه، ورودی مربوطه در فایل /etc/passwd چیزی شبیه به این خواهد بود:

John:x:535:30:John Silver:/home/pirates/john:/bin/bash

تیم useraddاگر دایرکتوری اصلی کاربر قبلاً ایجاد نشده باشد، به طور خودکار دایرکتوری اصلی کاربر را ایجاد می کند. A همچنین فایل های /etc/skel/ را در آن کپی می کند.

لیست کامل پارامترها useradd

استفاده: useradd [گزینه‌ها] USER
useradd -D
useradd -D [گزینه‌ها]

گزینه ها:
، --base-dir BAZ_KAT دایرکتوری پایه برای دایرکتوری اصلی جدید
حساب
, --نظر فیلد COMMENT GECOS حساب جدید
، --home-dir DOM_KAT فهرست اصلی حساب جدید
-دی، -- پیش فرض ها تنظیمات را نشان می دهد یا تغییر می دهد
پیش فرض برای useradd
-e، --expiredate DATE_STATE تاریخ انقضای حساب جدید
, —غیرفعال INACTIVITY دوره عدم فعالیت گذرواژه حساب جدید
-g, --gid GROUP نام یا شناسه گروه اصلی جدید
حساب
-جی، --groups GROUPS لیست گروه های اضافی جدید
حساب
-k, --skel CAB_SHAB از یک فهرست جایگزین با الگوها استفاده کنید
، --key KEY=VALUE جایگزین مقدار پیش فرض شود
از /etc/login.defs
، --no-log-init کاربر را به پایگاه داده های lastlog اضافه نکنید و
شکست
-m، --create-home دایرکتوری اصلی کاربر را ایجاد کنید
، --no-create-home دایرکتوری اصلی کاربر را ایجاد نکنید
، --no-user-group گروهی با نام مشابه ایجاد نکنید
کاربر
-o، --non-unique اجازه ایجاد کاربران با
UIDهای تکراری (نه منحصر به فرد).
, --password PASSWORD رمز عبور رمزگذاری شده برای حساب جدید
-r, --system ایجاد یک حساب سیستمی

-s, --shell SHELL پوسته ثبت نام جدید
حساب
-u، --uid شناسه کاربری UID حساب جدید
-U، --user-group یک گروه با همان نام ایجاد کنید
کاربر
-Z، --selinux-user SEUSER از SEUSER مشخص شده برای استفاده استفاده می کند
نقشه برداری سفارشی SELinux

ایجاد و اختصاص دایرکتوری خانگی به کاربر

به طور معمول، هنگامی که کاربر به سیستم اضافه می شود، یک فهرست خانه به طور خودکار ایجاد می شود. اما مواقعی وجود دارد که به دلایلی فهرست اصلی ایجاد نمی شود. و سپس نیاز به ایجاد آن وجود دارد. برای ایجاد دایرکتوری خانگی کاربر، از دستور استاندارد mkdir استفاده کنید. پس از این، باید اسکریپت های پیکربندی لازم را در فهرست اصلی (برای سازماندهی محیط کاری کاربر) کپی کنید، سپس با استفاده از دستورات chown و chmod، حالت مالک و دسترسی را روی فهرست و محتویات آن تنظیم کنید. این بهتر است پس از کپی شدن همه فایل های پیکربندی در فهرست هدف انجام شود. مثلا:

$ mkdir /home/john/ $ cd /etc/skel/ $ cp -Rp. /home/john/ $ chown -R john:john /home/john/ $ chmod -R 644 /home/john/ $ find /home/john/ -type d -exec chmod 755 () \;

همانطور که می بینید، فایل های پیکربندی از دایرکتوری /etc/skel/ کپی شده اند - این جایی است که نمونه هایی از تنظیمات راه اندازی ذخیره می شوند که می توانند در صورت نیاز ویرایش شوند. به هر حال، یک کپی تغییر یافته از فایل ها از دایرکتوری /etc/skel/ باید در پوشه usr/local/etc/skel ذخیره شود. هنگام تنظیم مالک فهرست اصلی، باید مراقب بود که (در صورت استفاده بی دقت از دستور chown) کاربر مالک شبه دایرکتوری ".."، یعنی سطح دایرکتوری بالا، نشود. که اغلب دایرکتوری /home است که به دلایل امنیتی قابل قبول نیست.

ایجاد رمز عبور برای کاربر

برای اهداف امنیتی، حساب شما باید یک رمز عبور قوی داشته باشد. که باید بلافاصله پس از ایجاد حساب کاربری تنظیم شود:

$ sudo passwd name_of_new_user

به عنوان مثال، برای کاربر jonh:

$ sudo passwd john رمز عبور جدید: رمز عبور جدید را دوباره وارد کنید: passwd: همه داده های احراز هویت با موفقیت به روز شدند.

تایید حساب

قبل از اینکه جزئیات و رمز اولیه ورود به حساب خود را به یک کاربر جدید منتقل کنید، باید تأیید شود. برای انجام این کار، باید جلسه جاری را پایان دهید. و با نام کاربر جدید (که حسابش باید تایید شود) وارد شوید. و دستورات زیر را به ترتیب اجرا کنید:

$ pwd $ ls -al

اولی دایرکتوری اصلی کاربر فعلی را نمایش می دهد، دومی لیستی از همه (از جمله پنهان) فایل ها و زیر شاخه ها را در فهرست اصلی نشان می دهد که مالک و حالت های دسترسی آنها را نشان می دهد.

مدیریت حساب

همانطور که قبلا ذکر شد، برای مدیریت کاربران در سیستم های لینوکس، مجموعه ای از ابزارهای تخصصی برای افزودن، ویرایش و حذف حساب ها (کاربران) وجود دارد - useradd، usermod و userdel. آنها برای دستیابی به یک هدف نهایی از یک ترتیب مشخص از اقدامات پیروی می کنند - برای مثال، در مورد اضافه کردن یک کاربر جدید، دستور useraddبر این اساس، کل "مجموعه فعالیت ها" که در بالا توضیح داده شد را تولید می کند. هر یک از این ابزارها را می توان به طور انعطاف پذیر با استفاده از فایل های پیکربندی پیکربندی کرد، که به هر حال، به طور فعال توسط توسعه دهندگان توزیع لینوکس استفاده می شود. به هر حال، در سیستم‌های مختلف لینوکس، عملکرد این ابزارها کمی متفاوت است، اگرچه ابزارها اساساً یکسان هستند. در زیر جدولی است که دستورات و فایل های پیکربندی را برای مدیریت کاربران برای برخی از سیستم ها با استفاده از ابزار به عنوان مثال نشان می دهد. useradd:

سیستم تیم ها فایل های پیکربندی یک نظر
اوبونتو useradd /etc/login.defs
اضافه کننده /etc/default/useradd نسخه پرل
/etc/adduser.conf
SUSE useradd /etc/login.defs
/etc/default/useradd
/etc/default/passwd
/usr/sbin/useradd.local تنظیمات محلی
/usr/sbin/userdel.local تنظیمات محلی
/usr/sbin/userdel-pre.local تنظیمات محلی
/usr/sbin/userdel-post.local تنظیمات محلی
کلاه قرمز useradd /etc/login.defs
/etc/default/useradd
سولاریس useradd /etc/default/(login,passwd)
/etc/security/policy.conf

حذف کاربران

برای حذف کاربران از سیستم، از دستور userdel برای مثال دستور استفاده کنید

یوزردل جان

کاربر جان را حذف می کند، اما اغلب (مانند دستور useradd، به هر حال) نه به شکل "خالص"، بلکه به شکل پوسته های پرل با استفاده از اسکریپت حذف حساب. به عنوان مثال، توزیع های اوبونتو از دستور deluser استفاده می کنند که یک اسکریپت رایج پرل است. که به نوبه خود، خود فرمان userdel را فراخوانی می کند تا همه چیزهایی را که قبلاً توسط دستور انجام شده بود حذف و پاکسازی کند useradd. در این مورد، از یک فایل اسکریپت استفاده می شود (معمولاً فایل /etc/deluser.conf در اوبونتو و /etc/login.defs در RedHat). که به شما امکان می دهد گزینه های زیر را برای دستور userdel تنظیم کنید:

استفاده: userdel [گزینه‌ها] USER

گزینه ها:
، --اجباری حذف کاربر و فایل ها، حتی اگر در حال حاضر در حال استفاده هستند
-r, --remove remove home directory and mailbox
، --root دایرکتوری CAT_CHROOT برای chroot در
-Z، --selinux-user تمام نگاشت های کاربر را حذف می کند
SELinux برای کاربر

فایل /etc/passwd - شرح حساب های محلی

اگر سیستم از هیچ سرویس مدیریت دایرکتوری خودکار (به عنوان مثال LDAP، NIS) استفاده نمی کند، فایل /etc/passwd فایلی است که اطلاعات مربوط به حساب های کاربری شناخته شده برای سیستم را ذخیره می کند. سیستم هر زمان که کاربر برای احراز هویت، به دنبال شناسه کاربری مورد نیاز و تعیین دایرکتوری اصلی خود می‌گردد، به این فایل دسترسی پیدا می‌کند. فرمت این فایل به این صورت است که هر خط در آن مربوط به یک کاربر خاص (حساب) است که (در یک خط) صفات (فیلدهای) حساب را با یک دونقطه از هم جدا می کند:

  1. نام کاربری.
  2. رمز عبور کاربر (رمزگذاری شده) یا رمز عبور "placeholder".
  3. شناسه کاربر.
  4. شناسه گروه کاربر (پیش‌فرض).
  5. اطلاعات GECOS - نام کامل، دفتر، شماره تلفن و غیره.
  6. دایرکتوری صفحه اصلی.
  7. پوسته ثبت نام.

محتویات فایل /etc/passwd ممکن است به این صورت باشد: همانطور که می بینید، فیلد دوم برای همه ورودی ها حاوی "x" است، یک مکان نگهدار رمز عبور. در سیستم های لینوکس، رمزهای عبور رمزگذاری شده به طور جداگانه در فایل /etc/shadow ذخیره می شوند. اگر سرویس مدیریت دایرکتوری خودکار همراه با فایل /etc/passwd استفاده شود، همان فایل حاوی ورودی هایی است که با کاراکتر "+" شروع می شوند. این ورودی ها دستورالعمل هایی را برای ادغام خدمات مدیریت دایرکتوری در سیستم ارائه می دهند. ارزش نگاهی گذرا به فیلدهای حساب را دارد:

  • نام کاربری یا نام ورود- یک نام منحصر به فرد که باید طبق قوانین ساخت نام های ثبت نام برای یک سیستم خاص کامپایل شود. برای لینوکس، نام لاگین می تواند حداکثر 32 کاراکتر باشد. فقط می توان از حروف کوچک و اعداد استفاده کرد. نام ثبت نام باید با یک حرف شروع شود.
  • رمز عبور رمزگذاری شده- همانطور که قبلا ذکر شد، رمزهای عبور برای حساب های محلی در /etc/shadow به شکل رمزگذاری شده ذخیره می شوند. در لینوکس از الگوریتم های crypt، MD5 و Blowfish به عنوان ابزار رمزنگاری برای رمزگذاری رمزهای عبور استفاده می شود. حداقل طول رمز عبور 5 کاراکتر و حداکثر 8 کاراکتر است
  • شناسه کاربریک عدد صحیح بدون علامت است که سیستم توسط آن کاربران فردی را "شناسایی" می کند، بنابراین شناسه های کاربر توسط سیستم و محیط نرم افزار استفاده می شود، در حالی که از نام های کاربری برای وضوح و سهولت ارائه کاربران در سیستم استفاده می شود. شناسه شماره 0 برای کاربر اصلی محفوظ است و همچنین توصیه می شود شناسه های بعد از 500 را به کاربران واقعی اختصاص دهید، زیرا ممکن است تعداد زیادی از کاربران "ناشناس" در سیستم مانند bin یا daemon وجود داشته باشد - این لیست را حفظ می کند. کاربران را به ترتیب و جلوگیری از سردرگمی. سیستم های لینوکس همچنین یک کاربر شبه هیچکس را با شناسه -1 یا -2 ارائه می کنند. به طور معمول، این کاربر شبه زمانی استفاده می شود که ابرکاربر سیستم سعی می کند به فایل های نصب شده از رایانه دیگری که به رایانه اصلی اعتماد ندارد دسترسی پیدا کند.
  • شناسه گروه- یک عدد صحیح بدون علامت، شبیه به یک شناسه کاربر، که برای تعیین گروه های کاربری منحصر به فرد در سیستم طراحی شده است. گروه شماره 0 برای گروه ریشه محفوظ است. گروه ها عمدتا برای مدیریت راحت و اشتراک گذاری فایل ها استفاده می شوند. همانند شناسه های کاربر، سیستم گروه هایی (مانند bin) را برای استفاده توسط خود سیستم رزرو می کند.
  • رشتهGECOS– اطلاعاتی که مشخصات مشخصی ندارند، منعکس کننده داده های اضافی در مورد کاربر است: نام کامل، شماره تلفن، اطلاعات موقعیت و بخش و غیره. اطلاعات این قسمت را می توان با استفاده از دستور chfn تغییر داد.
  • دایرکتوری صفحه اصلی- یک "مکان" در درخت سیستم فایل که برای ذخیره داده های یک کاربر خاص رزرو شده است. به دلایل امنیتی، این دایرکتوری فقط باید توسط کاربر صاحب این فهرست قابل دسترسی باشد. اگر در زمان ثبت نام دایرکتوری اصلی وجود نداشته باشد، اطلاعات کاربر در دایرکتوری / قرار می گیرد. همچنین، اگر گزینه DEFAULT_HOME در فایل /etc/login.defs که فهرست خانه پیش‌فرض را مشخص می‌کند، روی no تنظیم شود، مجوز/ثبت کاربر غیرممکن خواهد بود.
  • پوسته ثبت نام- یک پوسته فرمان برای مفسر فرمان (یا هر برنامه دیگری)، که با ورود کاربر به حساب خود راه اندازی می شود. برای لینوکس از مفسر استفاده می شود

File /etc/group – ایجاد و حذف گروه های کاربری

افزودن یک گروه جدید در لینوکس با استفاده از دستور انجام می شود

$groupadd group_name

که در آن group_name نام گروه جدید است. این دستور یک ورودی جدید در فایل /etc/group ایجاد می کند

فرمت این فایل مانند /etc/passwd است. نمونه ای از محتویات فایل /etc/group:
همانطور که می بینید، هر خط شامل چهار فیلد است:

  1. اسم گروه.
  2. رمز عبور رمزگذاری شده یا مکان نگهدار رمز عبور.
  3. شناسه گروه منحصر به فرد
  4. فهرستی از کاربران موجود در این گروه، حاوی نام‌های کاربری که با کاما بدون فاصله از هم جدا شده‌اند.

نکته جالب اینجا قسمت رمز عبور است. هدف از پسورد گروه این است که به کاربران اجازه دهد با استفاده از دستور newgrp به گروه بپیوندند. رمز عبور خود گروه با دستور gpasswd تنظیم می شود و پس از آن به صورت رمزگذاری شده در فایل /etc/gshadow ذخیره می شود. با این حال، لازم به ذکر است که رمز عبور برای گروه ها بسیار نادر استفاده می شود. مدیران سیستم باید محتویات فایل‌های /etc/passwd و /etc/group را زیر نظر داشته باشند و آنها را با یکدیگر هماهنگ کنند، زیرا گاهی اوقات موقعیت‌هایی پیش می‌آید که کاربر به عنوان عضوی از گروه در فایل /etc/passwd و در فایل /etc/passwd مشخص می‌شود. در همان زمان در فایل /etc/group همان کاربر بدون اطلاعیه. لازم به ذکر است که در این صورت کاربر به عنوان عضوی از گروه در نظر گرفته می شود، اما همچنان اکیدا توصیه می شود که محتوای هر دو فایل هماهنگ باشد.

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

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

$groupdel group_name

این دستور ورودی را از /etc/group حذف می کند.

فایل /etc/shadow – ذخیره رمزهای عبور

یک فایل /etc/shadow جداگانه برای ذخیره رمزهای عبور مخفی یا سایه استفاده می شود. دسترسی به آن فقط برای ابرکاربر در دسترس است. همچنین لازم به ذکر است که فایل های /etc/shadow و /etc/passwd از نظر مفهومی به هم مرتبط هستند، اما در سطح سیستم عملاً هیچ تعاملی بین آنها وجود ندارد. با این تفاوت که فیلد حاوی نام لاگین در سایه از passwd گرفته شده است. آن ها هنگام تغییر سایه، تغییرات به طور خودکار در passwd منعکس نمی شوند - این فایل ها به طور جداگانه ذخیره می شوند و توسط سیستم مستقل از یکدیگر پردازش می شوند. فرمت /etc/shadow شبیه به /etc/passwd است و هر خط شامل فیلدهای زیر است:

  1. نام ثبت نام
  2. رمز عبور رمزگذاری شده است.
  3. تاریخ آخرین تغییر رمز عبور
  4. حداقل تعداد روز بین تغییر رمز عبور
  5. حداکثر تعداد روز بین تغییر رمز عبور.
  6. تعداد روزهای قبل از صدور پیام انقضای رمز عبور.
  7. تعداد روزهای (پس از انقضای رمز عبور) تا زمانی که حساب به طور خودکار لغو شود.
  8. مدت اعتبار حساب
  9. فیلد رزرو شده

ورودی فایل /etc/shadow به شکل زیر است:

جان:$md5$em5JhGE$a$iQhgS70sakdRaRFyy7Ppj. :14469:0:180:14: ::


لازم به ذکر است که دو فیلد اول الزامی است. قالب فیلدهای تاریخ مطابق با تعداد روزهایی است که از اول ژانویه 1970 گذشته است. فیلد نام ثبت نام، همانطور که قبلا ذکر شد، با مقدار مربوطه از فایل /etc/passwd پر شده است. در لینوکس، فیلد هفتم حاوی مقداری است که تعیین می کند چه مدت (در چند روز) پس از انقضای رمز عبور، حساب به طور خودکار غیرفعال می شود. این تعبیر با تفسیری که در سیستم های سولاریس و HP-UX استفاده می شود متفاوت است. در فیلد هشتم می توانید از دستور usermod با فرمت yyyy-mm-hh برای تعیین تاریخ انقضای حساب استفاده کنید.

اگر خطایی پیدا کردید، لطفاً قسمتی از متن را برجسته کرده و کلیک کنید Ctrl+Enter.

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

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

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

حال بیایید نحوه مشاهده گروه های لینوکس را بررسی کنیم.

گروه ها در لینوکس

تمام گروه های ایجاد شده در سیستم در فایل /etc/group قرار دارند. با مشاهده محتویات این فایل می توانید به لیست گروه های لینوکس که از قبل بر روی سیستم شما قرار دارند، پی ببرید. و شما شگفت زده خواهید شد.

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

بیایید نگاهی دقیق‌تر به هر یک از گروه‌ها بیندازیم تا بهتر بفهمیم چرا به آن‌ها نیاز دارند:

  • اهریمن، دیو- سرویس هایی که نیاز به قابلیت نوشتن فایل روی دیسک دارند از طرف این گروه و کاربر دیمون راه اندازی می شوند.
  • سیستم- گروه دسترسی به منابع هسته و شامل فایل های ذخیره شده در سیستم را فراهم می کند
  • همگام سازی- به شما امکان می دهد دستور /bin/sync را اجرا کنید
  • بازی ها- به بازی ها اجازه می دهد تا فایل های تنظیمات و تاریخچه خود را در یک پوشه خاص بنویسند
  • مرد- به شما امکان می دهد صفحاتی را به پوشه /var/cache/man اضافه کنید
  • lp- امکان استفاده از دستگاه های پورت موازی را فراهم می کند
  • پست الکترونیکی- به شما امکان می دهد داده ها را در صندوق های پستی بنویسید /var/mail/
  • پروکسی- استفاده شده توسط سرورهای پروکسی، بدون دسترسی به نوشتن فایل ها بر روی دیسک
  • www-data- وب سرور با این گروه شروع می شود، به ورودی /var/www دسترسی می دهد، جایی که فایل های سند وب در آن قرار دارند.
  • فهرست- به شما امکان می دهد پیام ها را در /var/mail مشاهده کنید
  • بدون گروه- برای فرآیندهایی استفاده می شود که نمی توانند فایل هایی را روی هارد دیسک ایجاد کنند، اما فقط آنها را می خوانند، که معمولاً در ارتباط با کاربر هیچکس استفاده می شود.
  • adm- به شما امکان می دهد گزارش ها را از پوشه /var/log بخوانید
  • tty- همه دستگاه های /dev/vca به کاربران این گروه اجازه خواندن و نوشتن را می دهند
  • دیسک- دسترسی به هارد دیسک /dev/sd* /dev/hd* را باز می کند، می توان گفت که این یک آنالوگ دسترسی ریشه است.
  • شماره گیری- دسترسی کامل به پورت سریال
  • سی دی رام- دسترسی به CD-ROM
  • چرخ- به شما اجازه می دهد تا ابزار sudo را برای افزایش امتیازات اجرا کنید
  • سمعی- مدیریت درایورهای صوتی
  • src- دسترسی کامل به منابع موجود در فهرست /usr/src/
  • سایه- اجازه خواندن فایل /etc/shadow را می دهد
  • utmp- امکان نوشتن بر روی فایل های /var/log/utmp /var/log/wtmp
  • ویدئو- به شما امکان می دهد با درایور ویدیو کار کنید
  • plugdev- به شما امکان می دهد دستگاه های خارجی USB، CD و غیره را نصب کنید.
  • کارکنان- امکان نوشتن در پوشه /usr/local را فراهم می کند

اکنون که می‌دانید چرا از گروه‌ها در لینوکس استفاده می‌کنید و به طور پیش‌فرض چه هستند، بیایید به مدیریت گروه‌های لینوکس نگاهی بیندازیم.

مدیریت گروه لینوکس

همچنین می توانید با استفاده از رابط گرافیکی گروه ها را مدیریت کنید. KDE برنامه ای به نام Kuser دارد که به طور خاص برای این کار طراحی شده است و در Gnome با استفاده از تنظیمات سیستم انجام می شود. علاوه بر این، توزیع های محبوب ابزارهای جداگانه ای دارند، مانند YaST در تنظیمات OpenSUSE یا Ubuntu. اما من فکر می کنم شما آن را با رابط گرافیکی متوجه خواهید شد. و ما به مدیریت گروه های لینوکس از طریق ترمینال نگاه خواهیم کرد. ابتدا بیایید به پرونده ها بپردازیم و فقط پس از آن با کاربران.

هنگامی که یک فایل ایجاد می شود، به گروه اصلی کاربری که آن را ایجاد کرده است اختصاص داده می شود. درست مثل این است:

در اینجا می بینید که صاحب همه پوشه ها sergiy و گروه نیز sergiy است. درست است، زیرا این کاربران توسط من ایجاد شده اند. اما بیایید جلوتر برویم:

در اینجا می بینیم که دستگاه های دیسک sd* به گروه دیسک اختصاص داده شده اند، که همه به این معنی است که کاربر متعلق به این گروه می تواند به آنها دسترسی داشته باشد. یا مثال دیگری:

همه چیز همانطور است که در پاراگراف قبل بحث کردیم. اما این گروه ها نه تنها توسط سیستم قابل تنظیم هستند، بلکه شما خودتان می توانید به صورت دستی گروه های فایل را تغییر دهید؛ برای این دستور chgrp وجود دارد:

chgrp group_name file_name

به عنوان مثال، بیایید یک آزمایش فایل ایجاد کنیم:

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

اگر می خواهید یک گروه لینوکس ایجاد کنید، می توانید این کار را با دستور newgrp انجام دهید:

تست sudo groupadd

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

مدیریت گروه های لینوکس برای یک کاربر با استفاده از دستور usermod انجام می شود. بیایید به نحو و گزینه های آن نگاه کنیم:

گزینه های $usermod نام کاربری

  • -جی- گروه های اضافی که باید کاربر را به آنها اضافه کنید
  • -gتغییر گروه اصلی برای کاربر
  • حذف کاربر از گروه

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

sudo usermod -G -a group_name username

با استفاده از دستور newgrp می توانید به طور موقت یک کاربر به گروه لینوکس اضافه کنید. یک پوسته جدید باز می شود و در آن کاربر مجوزهای لازم را خواهد داشت، اما پس از بسته شدن همه چیز به همان شکلی که بود برمی گردد:

sudo newgrp group_name

به عنوان مثال، بیایید کاربر خود را به گروه دیسک اضافه کنیم تا بتوانیم مستقیماً بدون دستور sudo به هارد دیسک ها دسترسی داشته باشیم:

sudo usermod -G -a disk sergiy

اکنون می توانید دیسک ها را بدون دستور sudo سوار کنید:

mount /dev/sda1 /mnt

با دستور زیر می توانید گروه های لینوکس را که کاربر در آنها عضو است مشاهده کنید:

همچنین می توانید از دستور id استفاده کنید. در مورد اول، ما به سادگی لیستی از گروه های لینوکس را می بینیم؛ در مورد دوم، گروه و شناسه کاربر نیز به صورت اضافی نشان داده شده است. برای افزودن کاربر به یک گروه لینوکس، از گزینه -g برای گروه اصلی استفاده کنید.