خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

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

مدیریت مجوزهای فایل و پوشه در لینوکس ممکن است دشوار باشد. یادگیری نحوه عملکرد همه چیز باید کارها را ساده کند.

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

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

اقداماتی که کاربران می توانند در رابطه با فایل ها و دایرکتوری ها انجام دهند

هر کاربر می تواند در چارچوب مجوزهایی که به او داده شده است عمل کند. سه اقدام وجود دارد که کاربران می توانند در مورد فایل ها یا دایرکتوری ها انجام دهند.

  • read(r): در مورد امکان مشاهده فهرست پوشه ها و محتویات فایل است.
  • Write(w): در مورد ایجاد تغییرات در فایل یا پوشه است.
  • execute(x): در مورد اجرای فایل مورد نظر یا دسترسی به پوشه است.

اگر با دستور chmod و مجوزهای فایل لینوکس آشنایی دارید، ممکن است قبلاً نام این سه مجوز را شنیده باشید.

دستور ls -l را وارد کنید تا ببینید فایل فعلی شما دارای چه مجوزهایی است.

ls-l-command-output

قسمت هایی که به صورت drwxr-xr-x و -rw-r–r– می بینیم به مجوزهای فایل اشاره دارند. حرف d در ابتدای برخی عبارات نشان می دهد که آن عبارت یک دایرکتوری است. اگر قسمت های باقیمانده را جداگانه توضیح دهیم، قسمت هایی که با علامت – از هم جدا شده اند نشان دهنده گروه کاربری با آن مجوز است.

برای درک بهتر، آنها را به گروه های سه تایی تقسیم کنید، به جز حرف d.

rwxr-xr-x = rwxr-xr-x

rw-r–r– = rw-r–r–

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

گروه بندی-مثال

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

  • r: امتیاز خواندن
  • w: امتیاز نوشتن
  • x: اجرای امتیاز
  • rwx: کاربر صاحب فایل می تواند بخواند، بنویسد، اجرا کند
  • r-x: سایر کاربران می توانند بخوانند، اجرا کنند، اما بنویسند

تغییر مجوزها با chmod

فقط root که مجازترین شخص است می تواند امتیاز دسترسی را تغییر دهد. این فرآیند تغییر به راحتی با دستور chmod انجام می شود.

مطلب مرتبط:   11 توزیع لینوکس که هنوز از معماری 32 بیتی پشتیبانی می کنند

پارامترها و معانی دستور chmod در زیر آورده شده است.

  • u: صاحب فایل یا دایرکتوری
  • g: کاربرانی که در همان گروه صاحب فایل یا فهرست هستند
  • o: سایر کاربران
  • الف: برای همه باز است
  • =: همگام سازی مجوز
  • +: اضافه کردن مجوز
  • -: حذف مجوز

اکنون که معانی پارامترها را دیدید، اکنون می توانید یک عملیات مثال را در نظر بگیرید. برای این کار یک دایرکتوری نمونه ایجاد کنید و مراحل زیر را به ترتیب دنبال کنید.

از دستور ls -l برای مرور مجوزهای فایل های موجود در پوشه ای که ایجاد کرده اید استفاده کنید. در حین انجام این کار، فکر کنید که ساختار مجوز فایل های شما به صورت زیر است.

ls -l
total 4
---------- 1 root root 0 Apr 25 16:20 example.txt
---------- 1 root root 0 Apr 25 16:21 ex_File
d--------- 2 root root 4096 Apr 25 16:21 ex_Folder
---------- 1 root root 0 Apr 25 16:20 ex_Text

پس از این کار، با استفاده از کاراکتر * به تمام فایل های پوشه دسترسی پیدا کنید و اجازه دهید write(w) با استفاده از دستور chmod +w * عمومی شود.

chmod +w *

ls -l
total 4
--w-r-x--- 1 root root 0 Apr 25 16:20 example.txt
--w-r-x--- 1 root root 0 Apr 25 16:21 ex_File
d-w-r-x--- 2 root root 4096 Apr 25 16:21 ex_Folder
--w-r-x--- 1 root root 0 Apr 25 16:20 ex_Text

اکنون، سعی کنید مجوز خواندن-نوشتن-اجرا (rwx) را به کاربران گروه (g)، مجوز نوشتن (w) به کاربران (u) و فقط مجوزهای (x) را به سایر کاربران اجرا کنید.

chmod g+rwx,u+w,o+x *

ls -l
total 4
--w-rwx--x 1 root root 0 Apr 25 16:20 example.txt
--w-rwx--x 1 root root 0 Apr 25 16:21 ex_File
d-w-rwx--x 2 root root 4096 Apr 25 16:21 ex_Folder
--w-rwx--x 1 root root 0 Apr 25 16:20 ex_Text

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

chmod a-rwx *

ls -l
total 4
---------- 1 root root 0 Apr 25 16:20 example.txt
---------- 1 root root 0 Apr 25 16:21 ex_File
d--------- 2 root root 4096 Apr 25 16:21 ex_Folder
---------- 1 root root 0 Apr 25 16:20 ex_Text

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

اعداد برای هر مجوز تعریف می شوند

صاحب فایل

مطلب مرتبط:   چگونه به راحتی دبیان را بر روی رایانه خود نصب کنید

کاربرانی که در همان گروه صاحب فایل هستند

سایر کاربران

r

4

4

4

w

2

2

2

ایکس

1

1

1

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

شما می خواهید این مجوز را فقط به صاحب فایل بدهید. برای انجام این کار، می توانید کمی دستور chmod rwx- —– را که معمولاً استفاده می کنید تغییر دهید. اگر از دستوری مانند فایل chmod 700 استفاده می کنید، فقط مالک فایل تمام امتیازات را خواهد داشت.

usage-chmod-700

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

می توانید از معادله r(4)+w(2)+x(1)=7 برای تمام امتیازاتی که به صاحب فایل داده می شود استفاده کنید.

مجوز نوشتنی که برای کاربران در گروه مشترک با مالک فایل می‌دهید، از عدد 2 استفاده می‌کند که معادل عددی کاراکتر write(w) است. مجوز خواندنی که برای سایر کاربران می دهید از عدد 4 استفاده می کند که معادل عددی کاراکتر read(r) است.

usage-chmod-724-1

همانطور که از خروجی می توان فهمید، معادل های عددی باید مجوز مورد نظر شما را انجام داده باشند.

تنظیمات مجوز خود را در زیر شاخه ها با -R معتبر کنید

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

به عنوان مثال، حقوق دسترسی پوشه ای به نام “ex_Folder” را در مکان خود فهرست کنید. نتیجه خروجی خواهد بود مبنی بر اینکه هیچ حقی پیدا نشد.

ls -l
total 4
---------- 1 root root 0 Apr 25 16:20 example.txt
-rwx-w-r-- 1 root root 0 Apr 25 16:21 ex_File
d--------- 2 root root 4096 Apr 25 16:21 ex_Folder
---------- 1 root root 0 Apr 25 16:20 ex_Text

سپس به داخل پوشه ای با نام ex_Folder بروید.

مطلب مرتبط:   نحوه نصب گوگل کروم در اوبونتو

ex_Folder-include_files-1

سپس به دایرکتوری والد برگردید. از پارامتر -R استفاده کنید و دستوری مانند chmod -R 422 ex_Folder بنویسید تا مجوزهای دسترسی اضافه شده برای همه زیر فایل ها معتبر باشد.

پارامترهای usage-chmod-r

در نتیجه، همه فایل‌ها، از جمله همه فایل‌ها، دایرکتوری‌ها و پوشه‌های فرعی، به گونه‌ای مجاز شدند که مطابق با عبارت 422 باشد.

بهترین راه حل برای فایل های حذف شده تصادفی: chattr

به هر دلیلی، اگر فایل‌هایی وجود دارند که از نظر شما مهم هستند، می‌توانید قبل از حذف تصادفی از آنها محافظت کنید. دستوری که به این فرصت حفاظتی می دهد دستور chattr است. دستور chattr نه تنها در برابر حذف محافظت می کند، بلکه برای جلوگیری از تغییر فایل نیز استفاده می شود.

شما می توانید از دستور lsattr خود برای لیست کردن چنین فایل هایی استفاده کنید.

usage-lsattr-command

سعی کنید از فایل main.cpp که در اینجا ظاهر می شود با دستور chattr +i main.cpp محافظت کنید.

usage-chattr-plus-i-main-cpp

همانطور که در خروجی مشاهده می شود، یک عبارت -i در قسمت مجوزها وجود دارد. این عبارت نشانه آن است که فایل دیگر نمی تواند ویرایش شود. برای تایید این موضوع می توانید سعی کنید این فایل را با دستوری مانند rm -rf main.cpp حذف کنید.

rm -rf main.cpp
rm: cannot remove 'main.cpp': Operation not permitted

اگر می خواهید این عملیات را لغو کنید و فایل را قابل ویرایش کنید، به سادگی از دستور chattr -i main.cpp استفاده کنید.

امتیازات دسترسی برای امنیت سیستم فایل مهم هستند

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

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