دستورات کنترل سطح دسترسی در لینوکس

کنترل سطح دسترسی در لینوکس

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

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

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

ساختار کلی نمایش دسترسی در لینوکس

[-][rwx][rwx][rwx]

بخش اول (-): نوع فایل

بخش دوم (rwx): دسترسی‌های مالک (Owner)

بخش سوم (rwx): دسترسی‌های گروه (Group)

بخش چهارم (rwx): دسترسی‌های دیگران (Others)

توضیح جزئیات نمایش دسترسی در لینوکس

بخش اول (نوع فایل):

-: فایل معمولی (Regular file)

d: دایرکتوری (Directory)

l: لینک نمادین (Symbolic link)

b: فایل دستگاه بلاک (Block device)

c: فایل دستگاه کاراکتر (Character device)

s: سوکت (Socket)

p: پایپ (Pipe)

بخش دوم (دسترسی‌های مالک):

r (Read): مالک فایل می‌تواند محتوای فایل را بخواند.

w (Write): مالک فایل می‌تواند محتوای فایل را تغییر دهد یا در آن بنویسد.

x (Execute): مالک فایل می‌تواند فایل را به عنوان یک برنامه یا اسکریپت اجرا کند.

بخش سوم (دسترسی‌های گروه):

r (Read): کاربران عضو گروه مالک می‌توانند فایل را بخوانند.

w (Write): کاربران گروه می‌توانند فایل را تغییر دهند.

x (Execute): کاربران گروه می‌توانند فایل را اجرا کنند.

بخش چهارم (دسترسی‌های دیگران):

r (Read): دیگر کاربران می‌توانند فایل را بخوانند.

w (Write): دیگر کاربران می‌توانند فایل را تغییر دهند.

x (Execute): دیگر کاربران می‌توانند فایل را اجرا کنند.

مثال‌ها:

-rw-r–r–

-: یک فایل معمولی.

rw-: مالک فایل می‌تواند آن را بخواند و تغییر دهد.

r–: گروه می‌تواند فقط فایل را بخواند.

r–: دیگر کاربران نیز فقط می‌توانند فایل را بخوانند.

drwxr-xr-x

d: این یک دایرکتوری است.

rwx: مالک دایرکتوری می‌تواند آن را بخواند، در آن تغییر دهد و وارد آن شود (اجرا).

r-x: گروه می‌تواند محتویات را بخواند و وارد دایرکتوری شود، اما نمی‌تواند در آن تغییرات ایجاد کند.

r-x: دیگران نیز می‌توانند محتویات را بخوانند و وارد دایرکتوری شوند.

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

مالکیت (Ownership)

User (مالک): کاربری که مالک اصلی فایل یا دایرکتوری است.
Group (گروه): مجموعه‌ای از کاربران که می‌توانند دسترسی‌های خاصی به فایل یا دایرکتوری داشته باشند.
Others (دیگران): تمامی کاربران دیگر که نه مالک فایل هستند و نه عضو گروه مالک.

سطوح دسترسی (Permissions)

Read (r): دسترسی به خواندن محتوا (مشاهده فایل‌ها یا لیست کردن دایرکتوری‌ها).
Write (w): دسترسی به تغییر محتوا (ویرایش فایل‌ها یا ایجاد/حذف فایل‌ها در دایرکتوری).
Execute (x): دسترسی به اجرای فایل‌ها (برای فایل‌های اجرایی یا ورود به دایرکتوری‌ها).

برای مدیریت دسترسی‌ها و مجوزها، سه دستور کلیدی وجود دارد که برای کنترل سطح دسترسی در لینوکس استفاده می‌شود: chmod، chown، و chgrp. در ادامه مثالهایی برای دستورات همراه با توضیحات کامل برای سوئیچها برای شما آورده ایم.

دستور chmod برای کنترل سطح دسترسی در لینوکس(تغییر مجوزهای دسترسی)

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

chmod [options] mode file

mode می‌تواند به صورت عددی (مثل 755) یا نمادین (مثل u+rwx) باشد.
مثال‌ها:

chmod 755 file.txt: تنظیم مجوز به خواندن/نوشتن/اجرا برای مالک، و فقط خواندن/اجرا برای دیگران.
chmod u+x script.sh: افزودن اجازه اجرای اسکریپت به کاربر مالک.

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

مالک (Owner)
گروه (Group)
دیگران (Others)
مجوزها به سه دسته تقسیم می‌شوند:

خواندن (Read) – r (مقدار عددی: 4)
نوشتن (Write) – w (مقدار عددی: 2)
اجرا (Execute) – x (مقدار عددی: 1)
مجوزها به صورت عددی یا نمادین تعیین می‌شوند. برای مثال، عدد 755 به این صورت تفکیک می‌شود:

7: مالک (read, write, execute) => 4 + 2 + 1 = 7
5: گروه (read, execute) => 4 + 1 = 5
5: دیگران (read, execute) => 4 + 1 = 5
سوئیچ‌های کلیدی:
-R: اجرای تغییر مجوزها به صورت بازگشتی (Recursive) برای تمام فایل‌ها و دایرکتوری‌های داخلی.
مثال‌ها:

chmod 755 file.txt:

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

chmod -R 644 /var/www:

این دستور مجوزهای فایل‌ها و دایرکتوری‌های داخل /var/www را به صورت بازگشتی به 644 تغییر می‌دهد.
6 (برای مالک): خواندن و نوشتن.
4 (برای گروه و دیگران): فقط خواندن.

دستور chown برای کنترل سطح دسترسی در لینوکس(تغییر مالکیت فایل یا دایرکتوری)

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

فرمت دستور:

chown [owner][:group] file

owner: نام کاربر جدید یا شناسه کاربری که مالک فایل می‌شود.
group (اختیاری): گروهی که به عنوان مالک فایل یا دایرکتوری تنظیم می‌شود.
سوئیچ‌های کلیدی استفاده شده در این دستور
-R: اجرای تغییر مالکیت به صورت بازگشتی برای دایرکتوری و تمام فایل‌ها و زیر دایرکتوری‌ها.
–reference=FILE: مالکیت فایل مقصد را شبیه به فایل مرجع تنظیم می‌کند.
مثال‌ها:

chown john file.txt: تغییر مالکیت فایل file.txt به کاربر john.
chown john:admin file.txt: تغییر مالکیت فایل به کاربر john و گروه admin.
chown -R john /var/www: تغییر مالکیت دایرکتوری /var/www و تمام فایل‌ها و زیر دایرکتوری‌های داخل آن به کاربر john.

دستور chgrp برای کنترل سطح دسترسی در لینوکس(تغییر گروه مالک فایل یا دایرکتوری)

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

فرمت دستور:

chgrp [group] file

group: نام گروه جدید که مالک فایل یا دایرکتوری می‌شود.
سوئیچ‌های کلیدی:
-R: اجرای تغییر گروه به صورت بازگشتی برای دایرکتوری و تمام فایل‌ها و زیر دایرکتوری‌ها.
–reference=FILE: گروه مالک فایل مقصد را شبیه به فایل مرجع تنظیم می‌کند.
مثال‌ها:

chgrp admin file.txt: تغییر گروه مالکیت فایل file.txt به گروه admin.
chgrp -R admin /var/www: تغییر گروه مالکیت دایرکتوری /var/www و تمام فایل‌های داخل آن به گروه admin.

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

7: مالک دارای مجوز خواندن (r)، نوشتن (w)، و اجرا (x) است. یعنی rwx یا 4 + 2 + 1 = 7.
5: گروه فقط مجوز خواندن (r) و اجرا (x) دارد. یعنی r-x یا 4 + 0 + 1 = 5.
5: دیگران نیز فقط مجوز خواندن (r) و اجرا (x) دارند. یعنی r-x یا 4 + 0 + 1 = 5.

به این دستور:

rwx (مالک): مالک می‌تواند فایل یا دایرکتوری را بخواند، بنویسد و اجرا کند.
r-x (گروه): گروه فقط می‌تواند فایل را بخواند و اجرا کند.
r-x (دیگران): دیگران هم فقط می‌توانند فایل را بخوانند و اجرا کنند.
این سه دستور اصلی برای کنترل سطح دسترسی در لینوکس است که به شما اجازه می‌دهند که به طور دقیق مالکیت و سطح دسترسی فایل‌ها و دایرکتوری‌ها را مدیریت کنید.