خانه - آنتی ویروس ها
سرور اوبونتو - حقوق کاربر اداری. سرور اوبونتو - حقوق کاربر اداری حقوق کامل را به کاربر اوبونتو بدهید

مدیریت کاربر بخش مهمی از امنیت سیستم است. کاربران ناکارآمد و مدیریت امتیاز اغلب بسیاری از سیستم ها را به خطر می اندازند. بنابراین، مهم است که بدانید چگونه با استفاده از تکنیک های ساده و موثر مدیریت حساب کاربری از سرور خود محافظت کنید.

سوپرکاربر کجاست؟

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

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

1. اگر به دلایلی می خواهید به حساب کاربری فوق العاده اجازه دهید، به سادگی یک رمز عبور برای آن تعیین کنید:

Sudo passwd

Sudo رمز عبور شما را می خواهد و سپس از شما می خواهد که آن را نصب کنید رمز عبور جدیدبرای روت به صورت زیر:

رمز عبور برای نام کاربری: (رمز عبور خود را وارد کنید) رمز عبور جدید یونیکس را وارد کنید: (گذرواژه ابرکاربر جدید را وارد کنید) رمز عبور جدید یونیکس را دوباره تایپ کنید: (گذرواژه ابرکاربر جدید را تکرار کنید) passwd: رمز عبور با موفقیت به روز شد

2. برای قفل کردن حساب ریشه، از دستور passwd زیر استفاده کنید:

ریشه Sudo passwd -l

مرد سودو

به طور پیش فرض، کاربر اولیه ایجاد شده توسط نصب کننده اوبونتو عضوی از گروه "admin" است که به عنوان کاربران مجاز sudo به فایل /etc/sudoers اضافه می شود. اگر مایلید به حساب دیگری اجازه دسترسی کامل ابرکاربر از طریق سودو، فقط او را به گروه اضافه کنید مدیر.

افزودن و حذف کاربران

فرآیند مدیریت کاربران و گروه های محلی ساده است و تفاوت چندانی با اکثر سیستم عامل های گنو/لینوکس دیگر ندارد. اوبونتو و سایر توزیع‌های مبتنی بر دبیان استفاده از بسته «adduser» را برای مدیریت حساب تشویق می‌کنند.

1. برای افزودن یک حساب کاربری، از نحو زیر استفاده کنید و دستورات مربوط به رمز عبور و اطلاعات کاربری مانند نام و نام خانوادگی، تلفن و غیره:

نام کاربری Sudo adduser

2. برای حذف یک کاربر و گروه اصلی آن، از دستور زیر استفاده کنید:

نام کاربری Sudo deluser

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

به یاد داشته باشید که هر کاربری که بعداً با همان UID/GID قبلی اضافه شود، به این دایرکتوری دسترسی خواهد داشت مگر اینکه اقدامات احتیاطی لازم را انجام دهید.

ممکن است بخواهید این مقادیر UID/GID دایرکتوری را به چیزی مناسب تر، مانند مقادیر superuser تغییر دهید، و شاید دایرکتوری را برای جلوگیری از تداخلات بعدی جابجا کنید:

Sudo chown -R root:root /home/username/ sudo mkdir /home/archived_users/ sudo mv /home/username /home/archived_users/

3. برای مسدود کردن یا رفع انسداد موقت، از دستور زیر استفاده کنید:

Sudo passwd -l نام کاربری sudo passwd -u نام کاربری

4. برای افزودن یا حذف یک گروه شخصی، به ترتیب از دستور زیر استفاده کنید:

نام گروه Sudo addgroup نام گروه sudo delgroup

5. برای افزودن یک کاربر به یک گروه، از:

نام گروه نام کاربری Sudo adduser

امنیت نمایه کاربر

هنگام ایجاد کاربر جدید، ابزار adduser بر این اساس، یک دایرکتوری جدید با نام ایجاد می کند /home/نام کاربری. نمایه پیش‌فرض از محتویات موجود در دایرکتوری /etc/skel ایجاد می‌شود که شامل تمام اصول اولیه برای تولید پروفایل است.

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

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

Ls -ld /home/username

خروجی زیر نشان می دهد که فهرست /home/username برای همه دسترسی خواندن دارد:

Drwxr-xr-x 2 نام کاربری 4096 2007-10-02 20:03 نام کاربری

2. با استفاده از نحو زیر می توانید مجوزهای خواندن را برای همه حذف کنید:

Sudo chmod 0750 /home/username

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

یک رویکرد کارآمدتر برای این موضوع، تغییر مجوزهای جهانی پیش‌فرض برای است اضافه کنندههنگام ایجاد دایرکتوری های خانگی به سادگی فایل /etc/adduser.conf را ویرایش کنید، متغیر DIR_MODE را به چیزی مناسب تر تغییر دهید، و سپس همه فهرست های خانه جدید مجوزهای صحیح را خواهند داشت.

DIR_MODE=0750

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

Ls -ld /home/username

خروجی زیر نشان می دهد که مجوزهای خواندن برای همه حذف شده است:

Drwxr-x--- 2 نام کاربری نام کاربری 4096 2007-10-02 20:03 نام کاربری

سیاست رمز عبور

یک سیاست رمز عبور قوی یکی از مهمترین جنبه های رویکرد امنیتی شما است. بسیاری از نقض‌های امنیتی موفق از حملات brute force و حدس‌زنی فرهنگ لغت در برابر رمزهای عبور ضعیف استفاده کرده‌اند. اگر قصد استفاده از هر فرمی را دارید دسترسی از راه دوربا استفاده از سیستم رمز عبور محلی خود، مطمئن شوید که به اندازه کافی اختصاص داده اید حداقل الزاماتبه رمز عبور خود، حداکثر طول عمر رمز عبور، و سیستم احراز هویت خود را مرتباً بررسی کنید.

حداقل طول رمز عبور

به طور پیش‌فرض، اوبونتو به حداقل طول رمز عبور 6 کاراکتری و همچنین برخی بررسی‌های اولیه پراکندگی نیاز دارد. این تنظیمات توسط فایل /etc/pam.d/common-password کنترل می‌شوند و در زیر فهرست شده‌اند:

رمز عبور pam_unix.so مبهم sha512

اگر می خواهید حداقل طول را روی 8 کاراکتر تنظیم کنید، متغیر مربوطه را به min=8 تغییر دهید. تغییرات به شرح زیر است:

رمز عبور pam_unix.so مبهم sha512 min=8

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

طول عمر رمز عبور

هنگام ایجاد حساب های کاربری، باید حداقل و حداکثر خط مشی طول عمر رمز عبور را ایجاد کنید تا کاربران را مجبور به تغییر رمزهای عبور خود پس از مدت زمان مشخصی کنید.

1. برای مشاهده آسان وضعیت فعلی یک حساب کاربری، از دستور زیر استفاده کنید:

نام کاربری Sudo chage -l

خروجی زیر نشان می دهد حقایق جالبدر مورد حساب کاربری، یعنی اینکه هیچ سیاستی اعمال نشده است:

آخرین تغییر رمز عبور: 20 ژانویه 2008 گذرواژه منقضی می شود: هرگز رمز عبور غیرفعال: هرگز حساب منقضی نمی شود: هرگز حداقل تعداد روز بین تغییر رمز عبور: 0 حداکثر روز بین تغییر رمز عبور: 99999 تعداد روزهای هشدار قبل از انقضای رمز عبور: 7

2. برای تنظیم این مقادیر، به سادگی از دستور زیر استفاده کنید و دستورات تعاملی را دنبال کنید:

Sudo نام کاربری را تغییر دهید

در زیر همچنین نمونه ای از نحوه تغییر دستی تاریخ انقضای رمز عبور صریح (-E) به 01/31/2008 (تاریخ ایالات متحده - تقریباً) آمده است. حداقل مدتاعتبار رمز عبور (-m) 5 روز، حداکثر مدت اعتبار (-M) 90 روز، دوره عدم فعالیت (-I) 5 روز پس از انقضای رمز عبور و دوره هشدار (-W) 14 روز قبل از انقضای رمز عبور است.

Sudo chage -E 01/31/2011 -m 5 -M 90 -I 30 -W 14 نام کاربری

3. برای بررسی تغییرات، از همان دستوری که در بالا ذکر شد استفاده کنید:

نام کاربری Sudo chage -l

خروجی فرمان زیر خط مشی های جدیدی را نشان می دهد که بر روی حساب اعمال می شود:

آخرین تغییر رمز عبور: 20 ژانویه 2008 اعتبار رمز عبور: 19 آوریل 2008 رمز عبور غیرفعال: 19 مه 2008 حساب کاربری منقضی می شود: 31 ژانویه 2008 حداقل تعداد روز بین تغییر رمز عبور: 5 حداکثر تعداد روز بین تغییر رمز عبور: 90 تعداد روز هشدار قبل از انقضای رمز عبور: 14

سایر ملاحظات امنیتی

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

دسترسی SSH توسط کاربران مسدود شده

خاموش کردن/مسدود کردن معمولی کاربر را از اتصال از راه دور به سرور محروم نمی کند، در صورتی که قبلاً توسط وی احراز هویت شده باشد. کلید عمومی RSA چنین کاربرانی بدون نیاز به وارد کردن رمز عبور به پوسته کنسول روی سرور دسترسی خواهند داشت. به یاد داشته باشید که دایرکتوری های اصلی کاربر را برای فایل هایی که اجازه این نوع مجوز SSH را می دهند، مانند /home/username/.ssh/authorized_keys بررسی کنید.

حذف یا تغییر نام دایرکتوری .ssh/ در فهرست اصلی کاربر، از توانایی بیشتر احراز هویت SSH جلوگیری می کند.

حتماً اتصالات SSH ایجاد شده توسط کاربران مسدود شده را بررسی کنید، زیرا ممکن است هنوز اتصالات ورودی یا خروجی وجود داشته باشد. هرچی پیدا کردی بکش

دسترسی SSH را فقط به حساب های کاربری که به آن نیاز دارند محدود کنید. به عنوان مثال، می توانید گروهی به نام "sshlogin" ایجاد کنید و نام گروه را به عنوان یک مقدار برای متغیر AllowGroups که در فایل /etc/ssh/sshd_config قرار دارد، اضافه کنید.

AllowGroups sshlogin

سپس کاربران خود را که اجازه دسترسی به SSH را دارند به گروه "sshlogin" اضافه کنید و سرویس SSH را مجددا راه اندازی کنید.

Sudo adduser نام کاربری sshlogin sudo service ssh restart

احراز هویت با استفاده از پایگاه داده خارجی

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

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

مکانیسم های کنترل دسترسی بر اساس نام های کاربری و نام گروه های کاربری است. قبلاً می دانید که در لینوکس هر کاربری دارد نام منحصر به فرد، که تحت آن وارد سیستم می شود (ورود به سیستم). علاوه بر این، تعدادی گروه کاربری در سیستم ایجاد می شود و هر کاربر می تواند در یک یا چند گروه قرار گیرد. ابرکاربر گروه ها را ایجاد و حذف می کند و همچنین می تواند ترکیب اعضای یک گروه خاص را تغییر دهد. اعضای گروه های مختلف ممکن است حقوق متفاوتی برای دسترسی به فایل ها داشته باشند؛ برای مثال، گروه مدیران ممکن است حقوق بیشتری نسبت به گروه برنامه نویسان داشته باشد.

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

حالا بیایید دوباره دستور را اجرا کنیم ls -l. اما اجازه دهید نام یک فایل خاص را به عنوان یک پارامتر اضافی به آن بدهیم، به عنوان مثال، فایلی که خود دستور را مشخص می کند. ls. (به هر حال، به این گزینه دستور توجه کنید ls -l- اطلاعات مربوط به یک فایل خاص، و نه در مورد همه فایل های یک دایرکتوری را به طور همزمان دریافت کنید.

$ ls -l /bin/ls

می بینید که در این حالت صاحب فایل کاربر root و گروه root است. اما حالا در خروجی این دستور بیشتر به فیلد اول علاقه داریم که نوع فایل و حقوق دسترسی به فایل را مشخص می کند. این فیلد در مثال بالا با یک رشته کاراکتر نشان داده شده است -rwxr-xr-x. این نمادها را می توان به 4 گروه تقسیم کرد.

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

    - = - فایل معمولی؛

    d =- کاتالوگ؛

    b =- مسدود کردن فایل دستگاه؛

    c =- فایل دستگاه کاراکتر؛

    s =- سوکت دامنه؛

    p =- لوله نامگذاری شده (لوله)؛

    l =- پیوند نمادین (پیوند).

در مرحله بعد سه گروه از سه کاراکتر را دنبال کنید که به ترتیب حقوق دسترسی به فایل را برای صاحب فایل، برای گروه کاربری که با این فایل مرتبط است و برای همه کاربران دیگر سیستم تعیین می کند. در مثال ما، مجوزهای مالک به صورت rwx تعریف شده است، به این معنی که مالک ( ریشه) حق دارد یک فایل (r) را بخواند، در این فایل بنویسد (w) و فایل را برای اجرا (x) راه اندازی کند. جایگزینی هر یک از این کاراکترها با خط تیره به معنای محرومیت کاربر از حق مربوطه خواهد بود. در همین مثال، می بینیم که همه کاربران دیگر (از جمله کسانی که در گروه قرار می گیرند ریشه) از حق نوشتن در این فایل محروم هستند، یعنی به هیچ وجه نمی توانند فایل را ویرایش یا تغییر دهند.

به طور کلی، حقوق دسترسی و اطلاعات نوع فایل در سیستم های یونیکس در اینودها در یک ساختار جداگانه متشکل از دو بایت، یعنی 16 بیت ذخیره می شود (این طبیعی است، زیرا کامپیوتر بر روی بیت ها کار می کند، نه کاراکترهای r، w، x). چهار بیت از این 16 بیت برای رکورد نوع فایل کدگذاری شده رزرو شده است. سه بیت بعدی ویژگی های ویژه فایل های اجرایی را تنظیم می کند که کمی بعد در مورد آنها صحبت خواهیم کرد. و در نهایت 9 بیت باقیمانده مجوزهای فایل را تعیین می کند. این 9 بیت به 3 گروه سه بیتی تقسیم می شوند. سه بیت اول حقوق کاربر را مشخص می کند، سه بیت بعدی حقوق گروه و 3 بیت آخر حقوق همه کاربران دیگر (یعنی همه کاربران به جز صاحب فایل و گروه فایل) را مشخص می کند.

در این حالت، اگر بیت مربوطه دارای مقدار 1 باشد، حق تعلق می گیرد و اگر برابر با 0 باشد، حق تعلق نمی گیرد. در شکل نمادین نماد حقوق، 1 با نماد مربوطه (r، w یا x) جایگزین می شود و 0 با یک خط تیره نشان داده می شود.

مجوز فایل Read (r) به این معنی است که کاربر می تواند محتویات فایل را با استفاده از دستورات view مختلف مانند دستور مشاهده کند. بیشتریا با استفاده از هر کدام ویرایشگر متن. اما اگر محتویات یک فایل را در یک ویرایشگر متن ویرایش کنید، نمی‌توانید تغییرات فایل را روی دیسک ذخیره کنید مگر اینکه اجازه نوشتن (w) روی فایل را داشته باشید. مجوز Execute (x) به این معنی است که می توانید یک فایل را در حافظه بارگذاری کنید و سعی کنید آن را به عنوان یک برنامه اجرایی اجرا کنید. البته اگر در واقعیت فایل یک برنامه (یا یک پوسته اسکریپت) نباشد، راه اندازی این فایل برای اجرا امکان پذیر نخواهد بود، اما از طرف دیگر، حتی اگر فایل واقعاً یک برنامه باشد، اما حق اجرا برای آن تنظیم نشده است، سپس شروع نمی شود.

بنابراین متوجه شدیم که کدام فایل ها در لینوکس قابل اجرا هستند! همانطور که می بینید، پسوند نام فایل ربطی به آن ندارد، همه چیز با تنظیم ویژگی "اجرای" مشخص می شود و ممکن است به همه حق اجرا داده نشود!

اگر همین دستور را اجرا کنید ls -l، اما به عنوان آخرین آرگومان باید نه نام فایل، بلکه نام دایرکتوری به آن داده شود، خواهیم دید که حقوق دسترسی برای دایرکتوری ها نیز تعریف شده است و با همان نمادهای rwx مشخص می شوند. مثلا با اجرای دستور ls -l /, خواهیم دید که دایرکتوری bin با خط زیر مطابقت دارد:

طبیعتاً در رابطه با دایرکتوری ها، تفسیر مفاهیم «راست بخوان»، «راست بنویس» و «درست اجرا» تا حدودی تغییر می کند. اگر به خاطر داشته باشید که دایرکتوری صرفاً فایلی است حاوی لیستی از فایل‌ها در یک دایرکتوری معین، درک مجوز خواندن در رابطه با دایرکتوری‌ها آسان است. بنابراین، اگر مجوز خواندن یک دایرکتوری را دارید، می‌توانید محتویات آن را مشاهده کنید (این لیست از فایل‌های موجود در فهرست). حق نوشتن نیز واضح است - با داشتن چنین حقی، می توانید فایل هایی را در این دایرکتوری ایجاد و حذف کنید، یعنی به سادگی یک ورودی حاوی نام یک فایل و پیوندهای مربوطه را به دایرکتوری اضافه یا از آن حذف کنید. سمت راست اجرا کمتر بصری است. در این حالت به معنای حق انتقال به این دایرکتوری است. اگر شما به عنوان مالک می خواهید به سایر کاربران اجازه دهید تا فایلی را در فهرست خود مشاهده کنند، باید به آنها اجازه دسترسی به دایرکتوری را بدهید، یعنی به آنها «اجازه اجرای دایرکتوری» بدهید. علاوه بر این، باید به کاربر این حق را بدهید که برای همه دایرکتوری های واقع در درخت بالای این دایرکتوری اجرا کند. بنابراین، در اصل، همه دایرکتوری ها دارای مجوز اجرای پیش فرض برای مالک و گروه و همچنین برای همه کاربران دیگر هستند. و اگر می خواهید دسترسی به دایرکتوری را مسدود کنید، همه کاربران (از جمله گروه) را از حق ورود به این دایرکتوری محروم کنید. فقط خودتان را از این حق محروم نکنید، در غیر این صورت باید به ابرکاربر مراجعه کنید! (یادداشت 11)

پس از خواندن پاراگراف قبلی، ممکن است به نظر برسد که دایرکتوری read right در مقایسه با execute right چیز جدیدی ارائه نمی دهد. با این حال، هنوز در این حقوق تفاوت وجود دارد. اگر فقط مجوز اجرا را تنظیم کنید، می‌توانید دایرکتوری را وارد کنید، اما هیچ فایلی را در آنجا مشاهده نخواهید کرد (این اثر به ویژه اگر از نوعی مدیر فایل استفاده می‌کنید، به عنوان مثال، Midnight Commander، مشهود است). اگر به هر یک از زیر شاخه های این دایرکتوری حق دسترسی دارید، می توانید به آن (با دستور سی دی) ، اما همانطور که می گویند "کوکورانه" از حافظه ، زیرا لیستی از فایل ها و زیر شاخه های دایرکتوری فعلی را نخواهید دید.

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

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

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

نام فایل $ chmod wXp

جایی که به جای نماد wجایگزین شده است

    یا نماد تو(یعنی کاربری که مالک است)؛

    یا g(گروهی)؛

    یا o(همه کاربرانی که عضو گروهی که این فایل به آن تعلق دارد نیستند)؛

    یا آ(همه کاربران سیستم، یعنی مالک، گروه و سایرین).

بجای ایکسقرار دادن:

    یا + (ما حق می دهیم)؛

    یا - (حق مربوطه را سلب می کنیم)؛

    یا = (حقوق مشخص شده را به جای حقوق موجود نصب کنید)

بجای پ- نمادی که سمت راست مربوطه را نشان می دهد:

    r(خواندن)؛

    w(رکورد)؛

    ایکس(کارایی).

در اینجا چند نمونه از استفاده از دستور آورده شده است chmod:

$ chmod a+x file_name

به تمامی کاربران سیستم حق اجرای این فایل را می دهد.

$ chmod go-rw file_name

اجازه خواندن و نوشتن را برای همه به جز مالک فایل حذف می کند.

$ chmod ugo+rwx file_name

به همه اجازه خواندن، نوشتن و اجرا می دهد.

اگر اشاره ای به اینکه به چه کسی این حق اعطا شده است را حذف کنیم، در این صورت می توان فهمید که ما در مورد همه کاربران به طور کلی صحبت می کنیم، یعنی به جای اینکه $ chmod a+x file_name

را می توان به سادگی نوشت

$ chmod +x file_name

گزینه دوم برای تعیین دستور chmod(بیشتر از آن استفاده می شود) مبتنی بر نمایش دیجیتالی حقوق است. برای این کار، کاراکتر r را با عدد 4، کاراکتر w را با عدد 2 و کاراکتر x را با عدد 1 رمزگذاری می کنیم. برای اینکه مجموعه خاصی از حقوق را در اختیار کاربران قرار دهیم، باید اعداد مربوطه را اضافه کنیم. . بنابراین با به دست آوردن مقادیر عددی لازم برای صاحب فایل، برای گروه فایل و برای همه کاربران دیگر، این سه رقم را به عنوان آرگومان برای دستور تنظیم می کنیم. chmod(این اعداد را بعد از نام دستور قبل از آرگومان دوم که نام فایل را مشخص می کند قرار می دهیم). به عنوان مثال، اگر باید تمام حقوق را به مالک (4+2+1=7) بدهید، حقوق خواندن و نوشتن را به گروه (4+2=6) بدهید و هیچ حقی را به دیگران ندهید، باید آن را بدهید. دستور زیر:

$ chmod 760 file_name

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

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

برای تکمیل داستان در مورد حقوق دسترسی به فایل، باید در مورد سه ویژگی فایل ممکن دیگر صحبت کنیم که می‌توان با استفاده از همین دستور تنظیم کرد. chmod. اینها همان ویژگی‌های فایل‌های اجرایی هستند که موقعیت‌های 5-7 را در inode فایل در ساختار دو بایتی که حقوق فایل را مشخص می‌کند، بلافاصله پس از کد نوع فایل اشغال می‌کنند.

اولین مورد از این ویژگی ها به اصطلاح "تغییر بیت شناسه کاربر" است. معنی این بیت به شرح زیر است.

به طور معمول، زمانی که یک کاربر برنامه ای را اجرا می کند، آن برنامه همان حقوق دسترسی به فایل ها و دایرکتوری ها را دریافت می کند که کاربری که برنامه را راه اندازی کرده است. اگر "تغییر بیت شناسه کاربر" تنظیم شود، برنامه به فایل ها و دایرکتوری هایی که صاحب فایل برنامه دارد، حقوق دسترسی پیدا می کند (بنابراین، ویژگی مورد نظر بهتر است "بیت تغییر شناسه مالک" نامیده شود). این به شما اجازه می دهد تا برخی از وظایف را که در غیر این صورت تکمیل آنها دشوار است، حل کنید. نمونه معمولی دستور تغییر رمز عبور است passwd. تمام رمزهای عبور کاربر در فایل /etc/passwd که متعلق به ابرکاربر است ذخیره می شود. ریشه. بنابراین، برنامه های راه اندازی شده توسط کاربران عادی، از جمله دستور passwd، نمی تواند در این فایل بنویسد. این بدان معنی است که کاربر نمی تواند رمز عبور خود را تغییر دهد. اما فایل /usr/bin/passwd دارای مجموعه "تغییر بیت شناسه مالک" است که همان کاربر است. ریشه. بنابراین، برنامه تغییر رمز عبور passwdبا حقوق اجرا می شود ریشهو حق نوشتن در فایل /etc/passwd را دریافت می کند (خود برنامه تضمین می کند که کاربر فقط می تواند یک خط را در این فایل تغییر دهد).

"تغییر بیت ID مالک" را می توان توسط ابرکاربر با استفاده از دستور تنظیم کرد

# chmod +s file_name

"بیت تغییر شناسه گروهی" به روشی مشابه کار می کند.

یکی دیگر از ویژگی‌های احتمالی یک فایل اجرایی «تسک ذخیره بیت» یا «بیت چسبنده» است. این بیت به سیستم می گوید که پس از اتمام برنامه آن را در RAM ذخیره کند. فعال کردن این بیت برای کارهایی که اغلب برای اجرا فراخوانی می شوند راحت است، زیرا در این حالت در زمان بارگیری برنامه با هر بار راه اندازی صرفه جویی می شود. این ویژگی در مدل‌های رایانه قدیمی‌تر مورد نیاز بود. به ندرت در سیستم های مدرن پرسرعت استفاده می شود.

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

# chmod 4775 file_name

در این حالت وزن این بیت ها برای به دست آوردن نتیجه کل مطلوب به صورت زیر تنظیم می شود:

    4 - "بیت تغییر شناسه کاربری"

    2 - "بیت تغییر شناسه گروه"

    1 - "بیت ذخیره کار (بیت چسبنده)".

اگر هر یک از این سه بیت روی 1 تنظیم شود، خروجی فرمان کمی تغییر می کند ls -lاز نظر نمایش ویژگی های حقوق دسترسی نصب شده. اگر "تغییر بیت شناسه کاربر" روی 1 تنظیم شود، کاراکتر "x" در گروهی که حقوق مالک فایل را تعریف می کند با کاراکتر "s" جایگزین می شود. علاوه بر این، اگر مالک حق اجرای فایل را داشته باشد، نماد "x" با یک "s" کوچک جایگزین می شود و اگر مالک حق اجرای فایل را نداشته باشد (مثلاً فایل قابل اجرا نیست. اصلاً)، سپس "S" به جای "x" قرار می گیرد. جایگزین‌های مشابهی هنگام تعیین «بیت تغییر شناسه گروه» انجام می‌شود، اما کاراکتر «x» در گروه ویژگی‌هایی که حقوق گروه را مشخص می‌کنند جایگزین می‌شود. اگر "tsk sticky bit" 1 باشد، کاراکتر "x" در گروه ویژگی که حقوق همه کاربران دیگر را تعریف می کند جایگزین می شود و اگر همه کاربران بتوانند فایل را اجرا کنند، "x" با کاراکتر "t" جایگزین می شود. ، و با علامت "T" در صورتی که این حق را ندارند.

بنابراین، اگر چه خروجی فرمان ls -lهیچ موقعیت جداگانه ای برای نمایش مقادیر بیت های تغییر شناسه و بیت ذخیره کار وجود ندارد؛ اطلاعات مربوطه نمایش داده می شود. در اینجا یک مثال کوچک از شکل ظاهری آن آورده شده است:

# ls -l prim1

V. Kostromin (kos در rus-linux dot net) - 4.5. مجوزهای فایل و دایرکتوری

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

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

در عوض، کاربران تشویق می شوند تا از ابزاری به نام sudo برای انجام وظایف اداری سیستم استفاده کنند. Sudo به یک کاربر مجاز اجازه می دهد تا به طور موقت امتیازات خود را با استفاده از رمز عبور خود به جای دانستن رمز عبور متعلق به حساب root افزایش دهد. این متدولوژی ساده و در عین حال مؤثر، پاسخگویی را برای همه اقدامات کاربر فراهم می کند و به مدیر کنترل دقیقی را بر روی اعمالی که کاربر می تواند با امتیازات گفته شده انجام دهد، می دهد.

    اگر به دلایلی می خواهید اکانت root را فعال کنید، به سادگی به آن رمز عبور بدهید:

    تنظیمات با رمزهای عبور ریشه نیستندپشتیبانی.

    sudo passwd

    Sudo از شما رمز عبور را درخواست می کند و سپس از شما می خواهد که یک رمز عبور جدید برای root را مطابق شکل زیر ارائه کنید:

    رمز عبور برای نام کاربری: ( وارد کنید مال خودترمز عبور) رمز عبور جدید یونیکس را وارد کنید: (یک رمز عبور جدید برای root وارد کنید)رمز عبور جدید یونیکس را دوباره تایپ کنید: (تکرار رمز عبور جدید برای روت) passwd: رمز عبور با موفقیت به روز شد

    برای غیرفعال کردن رمز عبور حساب ریشه، از دستور passwd زیر استفاده کنید:

    ریشه sudo passwd -l

    با این حال، برای غیرفعال کردن خود حساب ریشه، از دستور زیر استفاده کنید:

    usermod --expiredate 1

    شما باید با خواندن صفحه مرد در Sudo بیشتر بخوانید:

    مرد سودو

به طور پیش فرض، کاربر اولیه ایجاد شده توسط نصب کننده اوبونتو عضوی از گروه "sudo" است که به عنوان کاربر مجاز sudo به فایل /etc/sudoers اضافه می شود. اگر می‌خواهید به هر حساب دیگری از طریق sudo دسترسی ریشه کامل بدهید، به سادگی آنها را به گروه sudo اضافه کنید.

افزودن و حذف کاربران

فرآیند مدیریت کاربران و گروه‌های محلی ساده است و تفاوت بسیار کمی با سایر سیستم‌عامل‌های گنو/لینوکس دارد. اوبونتو و سایر توزیع‌های مبتنی بر دبیان استفاده از بسته «adduser» را برای مدیریت حساب تشویق می‌کنند.

    برای افزودن یک حساب کاربری، از نحو زیر استفاده کنید و دستورات را دنبال کنید تا به حساب رمز عبور و ویژگی های قابل شناسایی مانند نام کامل، شماره تلفن و غیره بدهید.

    نام کاربری sudo adduser

    برای حذف یک حساب کاربری و گروه اصلی آن، از دستور زیر استفاده کنید:

    نام کاربری sudo deluser

    حذف یک حساب، پوشه اصلی مربوطه را حذف نمی کند. این به شما بستگی دارد که آیا می خواهید پوشه را به صورت دستی حذف کنید یا آن را مطابق با سیاست های حفظ دلخواه خود نگه دارید.

    به یاد داشته باشید، اگر اقدامات احتیاطی لازم را انجام نداده باشید، هر کاربری که بعداً با همان UID/GID مالک قبلی اضافه شود، اکنون به این پوشه دسترسی خواهد داشت.

    ممکن است بخواهید این مقادیر UID/GID را به چیزی مناسب تر، مانند اکانت ریشه، تغییر دهید و شاید حتی محل پوشه را برای جلوگیری از درگیری های بعدی تغییر دهید:

    sudo chown -R root:root /home/username/ sudo mkdir /home/archived_users/ sudo mv /home/username /home/archived_users/

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

    sudo passwd -l نام کاربری sudo passwd -u نام کاربری

    برای افزودن یا حذف یک گروه شخصی، به ترتیب از دستور زیر استفاده کنید:

    نام گروه sudo addgroup نام گروه sudo delgroup

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

    نام کاربری sudo adduser نام گروه

امنیت نمایه کاربر

هنگامی که یک کاربر جدید ایجاد می شود، ابزار adduser یک دایرکتوری خانگی کاملاً جدید به نام /home/username ایجاد می کند. نمایه پیش فرض بر اساس محتویات یافت شده در فهرست راهنمای /etc/skel که شامل تمام اصول نمایه است، مدل می شود.

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

    برای تأیید مجوزهای دایرکتوری اصلی کاربر فعلی خود، از نحو زیر استفاده کنید:

    ls -ld /home/username

    خروجی زیر نشان می دهد که دایرکتوری /home/username دارای مجوزهای قابل خواندن جهانی است:

    drwxr-xr-x 2 نام کاربری نام کاربری 4096 2007-10-02 20:03 نام کاربری

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

    sudo chmod 0750 /home/username

    برخی از افراد تمایل دارند از گزینه بازگشتی (-R) بی رویه استفاده کنند که تمام پوشه ها و فایل های فرزند را تغییر می دهد، اما این ضروری نیست و ممکن است نتایج نامطلوب دیگری به همراه داشته باشد. دایرکتوری والد به تنهایی برای جلوگیری از دسترسی غیرمجاز به هر چیزی که زیر والد است کافی است.

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

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

    ls -ld /home/username

    نتایج زیر نشان می دهد که مجوزهای قابل خواندن در جهان حذف شده اند:

    drwxr-x--- 2 نام کاربری نام کاربری 4096 2007-10-02 20:03 نام کاربری

سیاست رمز عبور

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

حداقل طول رمز عبور

به طور پیش‌فرض، اوبونتو به حداقل طول رمز عبور 6 کاراکتری و همچنین برخی بررسی‌های اولیه آنتروپی نیاز دارد. این مقادیر در فایل /etc/pam.d/common-password کنترل می‌شوند که در زیر مشخص شده است.

رمز عبور pam_unix.so مبهم sha512

اگر می خواهید حداقل طول را روی 8 کاراکتر تنظیم کنید، متغیر مناسب را به min=8 تغییر دهید. اصلاح در زیر مشخص شده است.

رمز عبور pam_unix.so مبهم sha512 minlen=8

بررسی‌های اولیه آنتروپی رمز عبور و قوانین حداقل طول برای سرپرست با استفاده از دستورات سطح sudo برای تنظیم یک کاربر جدید اعمال نمی‌شود.

انقضای رمز عبور

هنگام ایجاد حساب‌های کاربری، باید حداقل و حداکثر سن گذرواژه را در نظر بگیرید که کاربران را مجبور می‌کند پسوردهای خود را پس از انقضا تغییر دهند.

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

    sudo chage -l نام کاربری

    خروجی زیر حقایق جالبی را در مورد حساب کاربری نشان می دهد، یعنی اینکه هیچ سیاستی اعمال نشده است:

    آخرین تغییر رمز عبور: 20 ژانویه 2015 گذرواژه منقضی می شود: هرگز رمز عبور غیرفعال: هرگز حساب منقضی نمی شود: هرگز حداقل تعداد روز بین تغییر رمز عبور: 0 حداکثر روز بین تغییر رمز عبور: 99999 تعداد روزهای هشدار قبل از انقضای رمز عبور: 7

    برای تنظیم هر یک از این مقادیر، به سادگی از نحو زیر استفاده کنید و دستورات تعاملی را دنبال کنید:

    sudo نام کاربری را تغییر دهید

    در زیر همچنین نمونه‌ای از نحوه تغییر دستی تاریخ انقضای صریح (-E) به 01/31/2015، حداقل سن رمز عبور (-m) 5 روز، حداکثر سن رمز عبور (-M) 90 روز، عدم فعالیت وجود دارد. دوره (-I) 5 روز پس از انقضای رمز عبور، و یک دوره زمانی هشدار (-W) 14 روز قبل از انقضای رمز عبور:/home/username/.ssh/authorized_keys .

    دایرکتوری .ssh/ را در پوشه اصلی کاربر حذف یا تغییر نام دهید تا از قابلیت های بیشتر احراز هویت SSH جلوگیری کنید.

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

    چه کسی | نام کاربری grep (برای دریافت ترمینال pts/#) sudo pkill -f pts/#

    دسترسی SSH را فقط به حساب های کاربری که باید آن را داشته باشند محدود کنید. به عنوان مثال، می توانید گروهی به نام "sshlogin" ایجاد کنید و نام گروه را به عنوان مقدار مرتبط با متغیر AllowGroups که در فایل /etc/ssh/sshd_config قرار دارد اضافه کنید.

    AllowGroups sshlogin

    سپس کاربران SSH مجاز خود را به گروه "sshlogin" اضافه کنید و سرویس SSH را مجددا راه اندازی کنید.

    sudo adduser نام کاربری sshlogin sudo systemctl sshd.service را راه اندازی مجدد کنید

    احراز هویت پایگاه داده کاربر خارجی

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

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

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

در ابتدا، هر فایل دارای سه پارامتر دسترسی بود. آن ها اینجا هستند:

  • خواندن- به شما امکان دریافت محتویات فایل را می دهد، اما اجازه نوشتن را نمی دهد. برای یک دایرکتوری، به شما امکان می دهد لیستی از فایل ها و فهرست های موجود در آن را دریافت کنید.
  • رکورد- به شما امکان می دهد داده های جدید را در یک فایل بنویسید یا داده های موجود را تغییر دهید و همچنین به شما امکان می دهد فایل ها و دایرکتوری ها را ایجاد و تغییر دهید.
  • کارایی- اگر برنامه ای دارای پرچم اجرا نباشد، نمی توانید آن را اجرا کنید. این ویژگی برای همه برنامه ها و اسکریپت ها تنظیم شده است؛ به کمک آن است که سیستم می تواند بفهمد که این فایل باید به عنوان یک برنامه اجرا شود.

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

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

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

اما با گذشت زمان، چنین سیستمی ناکافی شد و چندین پرچم دیگر اضافه شد که به شما امکان می‌دهد فایل‌ها را غیرقابل تغییر کنید یا آن‌ها را به‌عنوان ابرکاربر اجرا کنید، در زیر به آنها نگاه می‌کنیم:

مجوزهای ویژه فایل در لینوکس

اجازه دادن کاربران عادیبرای اجرای برنامه ها از طرف ابر کاربر بدون دانستن رمز عبور او، چیزی مانند بیت های SUID و SGID اختراع شد. بیایید نگاهی دقیق تر به این قدرت ها بیندازیم.

  • SUID- اگر این بیت تنظیم شده باشد، پس از اجرای برنامه، شناسه کاربری که از او راه اندازی شده است با شناسه مالک فایل جایگزین می شود. در واقع، این به کاربران عادی اجازه می دهد تا برنامه ها را به عنوان superuser اجرا کنند.
  • SGID- این پرچم به روشی مشابه کار می کند، تنها تفاوت این است که کاربر به جای گروه هایی که واقعاً به آنها تعلق دارد، عضو گروهی است که فایل با آن مرتبط است. اگر پرچم SGID روی یک دایرکتوری تنظیم شده باشد، تمام فایل های ایجاد شده در آن با گروه دایرکتوری مرتبط خواهند شد، نه با گروه کاربر. این رفتار برای سازماندهی پوشه های مشترک استفاده می شود.
  • بیت چسبنده- از این بیت برای ایجاد پوشه های مشترک نیز استفاده می شود. در صورت نصب، کاربران فقط می توانند فایل ها را بسازند، بخوانند و اجرا کنند، اما نمی توانند فایل های متعلق به سایر کاربران را حذف کنند.

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

نحوه مشاهده مجوزهای فایل در لینوکس

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

برای اطلاع از حقوق فایل لینوکسدستور زیر را در پوشه ای که این فایل در آن قرار دارد اجرا کنید:

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

بیایید نگاهی دقیق‌تر به معنای مقادیر مشروط پرچم‌های حقوق بیندازیم:

  • --- - به هیچ وجه حقوقی وجود ندارد.
  • --ایکس- فقط اجرای فایل به عنوان یک برنامه مجاز است، اما تغییر یا خواندن آن ممنوع است.
  • -w-- فقط نوشتن و تغییر فایل مجاز است.
  • -wx- اصلاح و اجرا مجاز است، اما در مورد دایرکتوری، نمی توانید محتویات آن را مشاهده کنید.
  • r--- حقوق فقط خواندنی؛
  • r-x- فقط خواندن و اجرا، بدون اجازه نوشتن.
  • rw-- حقوق خواندن و نوشتن، اما بدون اجرا.
  • rwx- کلیه حقوق؛
  • -- ها- بیت SUID یا SGID تنظیم شده است، اولی در فیلد برای مالک، دومی برای گروه نمایش داده می شود.
  • --t- sticky-bit نصب شده است، به این معنی که کاربران نمی توانند این فایل را حذف کنند.

در مثال ما، فایل test1 دارای مجوزهای برنامه معمولی است، مالک می تواند همه کارها را انجام دهد، گروه فقط می تواند بخواند و اجرا کند و بقیه فقط می توانند اجرا کنند. برای test2، پرچم‌های SUID و SGID علاوه بر این تنظیم می‌شوند. و برای پوشه test3 Sticky-bit نصب شده است. فایل test4 در دسترس همه است. اکنون می دانید که چگونه حقوق یک فایل لینوکس را مشاهده کنید.

نحوه تغییر مجوزهای فایل در لینوکس

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

فایل پرچم عمل دسته بندی $ chmod options

گزینه ها در حال حاضر ما را مورد توجه قرار نخواهند داد، جز شاید تنها یکی. با گزینه -R می توانید برنامه را مجبور کنید تا تغییرات را به صورت بازگشتی در همه فایل ها و دایرکتوری ها اعمال کند.

  • تو- صاحب فایل؛
  • g- گروه فایل؛
  • o- سایر کاربران

این عمل می تواند یکی از دو مورد باشد، یا پرچم "+" را اضافه کنید یا پرچم "-" را حذف کنید. در مورد خود حقوق دسترسی، آنها شبیه به خروجی ابزار ls هستند: r - read، w - write، x - execute، s - suid/sgid، بسته به دسته‌ای که آن را تنظیم می‌کنید، t - چسبناک می‌شود. -بیت به عنوان مثال، همه کاربران به فایل test5 دسترسی کامل دارند:

chmod ugo+rwx test5

یا همه حقوق را از گروه و سایر کاربران سلب خواهیم کرد:

chmod go-rwx test5

بیایید به گروه این حق را بدهیم که بخواند و اجرا کند:

chmod g+rx test5

برای سایر کاربران فقط بخوانید:

برای فایل test6، SUID را تنظیم کنید:

و برای test7 - SGID:

ببینیم چی شد:

همانطور که می بینید، تغییر مجوز فایل در لینوکس بسیار ساده است. علاوه بر این، می توانید حقوق اولیه را با استفاده از مدیر فایل تغییر دهید.

نتیجه گیری

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

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

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

کاربران و گروه ها

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

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

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

با استفاده از ابزار ویژه ای که در منو قرار دارد می توانید کاربران و گروه ها را مدیریت کنید سیستم → مدیریت → کاربران و گروه ها.

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

مجوزها در لینوکس

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

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

در حال حاضر ما به یک پیامد بسیار مهم چنین سازماندهی حقوق دسترسی در سیستم علاقه مندیم. یک کاربر معین اوبونتو فقط مالک فهرست اصلی و تمام محتویات آن است. در سیستم، این دایرکتوری در /home/username قرار دارد. همه فایل‌های سیستم دیگر، از جمله همه برنامه‌ها، تنظیمات سیستم و غیره، که در خارج از /home قرار دارند، عمدتاً متعلق به root هستند. به یاد داشته باشید، گفتم که root یک کاربر با امتیازات نامحدود است که اجازه استفاده مستقیم در اوبونتو را ندارد. بنابراین، همه فایل‌ها و دایرکتوری‌های سیستم به دلیلی متعلق به root هستند؛ همه آنها فقط برای کاربر مالک دارای حقوق تغییر هستند، بنابراین هیچ کس به جز root نمی‌تواند در عملکرد سیستم دخالت کند و چیزی را در فایل‌های سیستم تغییر دهد.

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

این کار با استفاده از ابزار sudo و مشتقات آن انجام می شود. sudo یک ابزار کنسول است. این به شما این امکان را می دهد که هنگام اجرای یک دستور خاص، وانمود کنید که root هستید، بنابراین حقوق نامحدودی به دست می آورید. مثلا دستور

به روز رسانی استعداد سودو

داده ها را در مورد برنامه های کاربردی در دسترس شما به روز می کند (در مقاله مدیریت برنامه توضیح خواهم داد که چرا این مورد نیاز است). خود تیم

به روز رسانی استعداد

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

شما می توانید هر کاری را از طریق ترمینال انجام دهید، بنابراین با قابلیت تبدیل شدن به روت می توانید تمام تنظیمات مورد نیاز خود را انجام دهید. با این حال، گاهی اوقات استفاده از آن راحت است برنامه های گرافیکی، در حالی که حقوق ریشه دارد. به عنوان مثال، اگر شما نیاز به کپی فایل ها در فهرست های سیستم دارید. برای اجرای برنامه های گرافیکی به صورت روت، گفتگوی راه اندازی GNOME را با آن باز کنید کلیدهای Alt+ F2 را وارد کنید

Gksudo app_name

به عنوان مثال، برای راه اندازی مدیر فایل Nautlus باید وارد شوید

Gksudo nautilus

از طریق Nautilus که به این روش راه اندازی شده است، می توانید هر فایلی را که در رایانه خود می خواهید تغییر دهید.

هنگام استفاده از Nautilus با بسیار مراقب باشید حقوق ریشه! شما می توانید برای همیشه هر کدام را حذف کنید فایل سیستمی، که به راحتی می تواند منجر به عدم کارکرد کل سیستم شود.

ویرایش فایل های پیکربندی

مهم‌ترین مثال استفاده از فناوری «تظاهر به بودن» که در بالا توضیح داده شد، ویرایش فایل‌های پیکربندی سیستم است. قبلاً گفتم که تمام تنظیمات سیستم و همه برنامه ها در لینوکس به صورت فایل متنی ذخیره می شوند. بنابراین، شما فقط می توانید فایل هایی را ویرایش کنید که متعلق به شما هستند، یعنی فقط تنظیمات مربوط به کاربر خود را. و برای ویرایش پارامترهای سیستم به حقوق مدیر نیاز دارید.

شما قادر خواهید بود بسیاری از فایل ها را باز کنید، اما نمی توانید چیزی را در آنها تغییر دهید، به سادگی به عملیات ذخیره دسترسی نخواهید داشت:

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

Gksudo gedit /path/to/file

Gedit ویرایشگر متن استاندارد اوبونتو است.

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

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

در نتیجه یک ویرایشگر با قابلیت ذخیره تغییرات باز می شود.



 


خواندن:



چرا یک لپ تاپ به یک SSD کوچک نیاز دارد و آیا ارزش نصب ویندوز روی آن را دارد؟

چرا یک لپ تاپ به یک SSD کوچک نیاز دارد و آیا ارزش نصب ویندوز روی آن را دارد؟

درایو SSD چقدر برای بازی ها مهم است ، چه تأثیری دارد و چه فایده ای از این فناوری دارد - این همان چیزی است که در مقاله ما مورد بحث قرار خواهد گرفت. حالت جامد...

تعمیر فلش مموری با استفاده از برنامه ها نحوه تعمیر پورت USB در لپ تاپ

تعمیر فلش مموری با استفاده از برنامه ها نحوه تعمیر پورت USB در لپ تاپ

چگونه پورت USB را تعمیر کنیم؟ پاسخ تکنسین: هنگام استفاده از رایانه، درگاه‌های USB اغلب خراب می‌شوند. اول از همه شکست می خورند...

ساختار دیسک آسیب دیده است، خواندن غیرممکن است، چه باید بکنم؟

ساختار دیسک آسیب دیده است، خواندن غیرممکن است، چه باید بکنم؟

رایانه های شخصی کاربران اغلب اطلاعات مهم را ذخیره می کنند - اسناد، عکس ها، فیلم ها، اما پشتیبان گیری از داده ها معمولاً ...

کامپیوتر از چه چیزی تشکیل شده است؟

کامپیوتر از چه چیزی تشکیل شده است؟

تاریخ انتشار: 1396/01/14 با سلام خدمت دوستان امروز به طور مفصل به طراحی واحد سیستم کامپیوتر می پردازیم. بیایید بفهمیم چه ...

فید-تصویر RSS