خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


File Permission یا مجوز فایل در لینوکس چیست

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

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



Linux File Permissions

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


The file owner.
The group members.
Others (everybody else).

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

The read permission.
The write permission.
The execute permission.

این مفهوم به شما این امکان را می دهد تا کنترل اینکه کدام کاربران می توانند فایل را خوانده، در فایل نوشته یا فایل را اجرا کنند را داشته باشید
برای مشاهده مجوزهای فایل، از دستور ls استفاده کنید:

ls -l file_name

بدیهی است که در دستور فوق باید به جای file_name نام فایل مورد نظرتان را جایگزین کنید.

-rw-r--r-- 12 khoshamoz users 12.0K Apr  28 10:10 file_name
|[-][-][-]- [------] [---]
| | | | | | |
| | | | | | +-----------> 7. Group
| | | | | +-------------------> 6. Owner
| | | | +--------------------------> 5. Alternate Access Method
| | | +----------------------------> 4. Others Permissions
| | +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

کاراکتر اول نوع فایل را نشان می دهد که می تواند یک فایل معمولی (-)، دایرکتوری (d)، یک symbolic link (l)، یا انواع خاصی از فایل ها باشد. 9 کاراکتر زیر نشان دهنده مجوزهای فایل هستند که هر کدام سه تایی و سه کاراکتری هستند. سه تای اول مجوز مالک، دسته دوم مجوزهای گروه و دسته آخر مجوزهای سایرین را نشان می دهد.
در مثال بالا (rw-r--r--) به این معنی است که مالک فایل دارای مجوز خواندن و نوشتن (rw-) است، گروه و سایرین فقط مجوزهای خواندن (r--) را دارند.
مجوزهای فایل یا File permission ها بسته به نوع فایل، معنای متفاوتی دارند. هر یک از سه مجوز می توانند از کاراکترهای زیر ساخته شوند و بسته به اینکه روی یک فایل یا دایرکتوری تنظیم شده باشند، اثرات متفاوتی را خواهند داشت که برخی از مهمترین انها را توضیح می دهیم. البته در قسمت پایین هر کدام توضیحات زیر، تصویر کامل را قرار می دهیم که می توانید آن را هم مشاهده کنید.
مجوز Read با علامت - فایل قابل خواندن نیست. شما نمی توانید محتویات فایل را مشاهده کنید.
مجوز Read با علامت r یعنی فایل قابل خواندن است.
مجوز Write با علامت – یعنی فایل را نمی توان ویرایش و تغییر داد.
مجوز write با علامت w یعنی فایل را می توان ویرایش و تغییر داد.
مجوز Execute با علامت – یعنی فایل قابل اجرا نیست.
مجوز Execute با علامت x یعنی می تواند فایل را اجرا کرد.

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

File Permission یا مجوز فایل در لینوکس چیست
دایرکتوری ها انواع خاصی از فایل ها هستند که می توانند حاوی فایل ها و دایرکتوری های دیگر باشند. در خصوص دایرکتوری ها:
مجوز Read با علامت - محتویات دایرکتوری قابل نمایش نیست.
مجوز Read با علامت r محتویات دایرکتوری را می توان نشان داد. مثلا با دستور ls می توانید محتویات داخل دایرکتوری را لیست کنید.
مجوز Write با علامت - محتویات دایرکتوری قابل تغییر نیستند.
مجوز Write با علامت w محتویات دایرکتوری را می توان تغییر داد. مثلا می توانید فایل جدید ایجاد کنید و یا حذف فایل ها و دایرکتوری ها را انجام دهید.
مجوز Execute با علامت – یعنی دایرکتوری قابل تغییر نیست.
مجوز Execute با علامت x یعنی با دستور cd می توان از دایرکتوری پیمایش یا navigate کرد.
توضیحات کامل تر را در تصویر زیر می توانید مشاهده کنید:

File Permission یا مجوز فایل در لینوکس چیست

Changing File permissions in linux

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


هنگام استفاده از chmod، به خصوص هنگام تغییر بازگشتی مجوزها، بیشتر مراقب باشید. فرمان می تواند یک یا چند فایل و/یا دایرکتوری که با فاصله یا space از هم جدا شده اند را به عنوان آرگومان بپذیرد. مجوزها را می توان با استفاده از symbolic mode و numeric mode تغییر داد.

Symbolic (Text) Method

Syntax دستور chmod در استفاده از symbolic mode دارای فرمت زیر است:

chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...

[ugoa…] در واقع flag های کاربران، کلاس‌های کاربرانی را که مجوزهای فایل برای آنها تغییر می‌کند را تعریف می‌کند. u صاحب یا مالک فایل، g کاربرانی که عضو گروه هستند، o همه کاربران دیگر، a همه کاربران که در واقع عملکردی مشابه سه تای قبلی یعنی ugo دارد.
هنگامی که flag کاربران حذف می شود، به طور پیش فرض روی a تنظیم می شود
[-+=] در واقع flag های عمملیاتی هستند که مشخص می کند مجوزها باید حذف، اضافه یا تنظیم شوند. - مجوزهای مشخص شده را حذف می کند، + مجوزهای مشخص شده را اضافه می کند، = مجوزهای فعلی را به مجوزهای مشخص شده تغییر می دهد. اگر هیچ مجوزی پس از علامت = مشخص نشود، تمام مجوزهای کلاس کاربر مشخص شده حذف می شوند.
مجوزها (perms...) به صراحت با استفاده از صفر یا یک و یا بیشتر از طریق حروف r، w، x، x، s و t تنظیم می شود. هنگام کپی کردن مجوزها از یک کلاس به کلاس کاربر دیگر از یک حرف واحد از مجموعه u، g و o استفاده کنید.
هنگام تنظیم مجوز برای بیش از یک کلاس کاربر ([،…])، از کاما (بدون فاصله) برای جدا کردن symbolic modes استفاده کنید. در ادامه چند مثال از نحوه استفاده از دستور chmod در symbolic modes را مورد بررسی قرار می دهیم.
مثلا به اعضای گروه اجازه اجرای فایل را بدهید، اما اجازه خواندن و نوشتن روی آن را ندهید:

chmod g=x filename

حذف مجوز write برای همه کاربران:

chmod a-w filename

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

chmod -R o-x dirname

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

chmod og-rwx filename

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

chmod og= filename

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

chmod u=rwx,g=r,o= filename

Numeric Method

Syntax دستور chmod هنگام استفاده از Numeric Method دارای فرمت زیر است:

chmod [OPTIONS] NUMBER FILE...

هنگام استفاده از numeric mode می توانید مجوزها را برای هر سه کلاس کاربر (مالک، گروه و سایر کلاس ها) به طور همزمان تنظیم کنید. شماره مجوز می تواند یک عدد 3 یا 4 رقمی باشد. هنگامی که از عدد 3 رقمی استفاده می شود، رقم اول نشان دهنده مجوزهای مالک فایل، رقم دوم گروه فایل و آخرین رقم همه کاربران دیگر است.
هر مجوز نوشتن، خواندن و اجرا دارای مقدار عددی زیر است:

r (read) = 4
w (write) = 2
x (execute) = 1
no permissions = 0

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

Owner: rwx=4+2+1=7
Group: r-x=4+0+1=5
Others: r-x=4+0+0=4

با استفاده از محاسبه بالا به عدد 754 می رسیم که نشان دهنده مجوزهای مورد نظر است. برای تنظیم setuid، setgid و sticky bit flags ، از عدد چهار رقمی استفاده کنید.
هنگامی که از عدد 4 رقمی استفاده می شود، رقم اول به معنای زیر است:

setuid=4
setgid=2
sticky=1
no changes = 0

سه رقم بعدی همان معنی را دارند که از عدد 3 رقمی استفاده می کنیم. اگر رقم اول 0 باشد می توان آن را حذف کرد و حالت را می توان بصورت 3 رقمی نشان داد. مثلا حالت عددی 0755 همان 755 است.
برای محاسبه numeric mode می توانید از روش دیگری (روش باینری) نیز استفاده کنید که کمی پیچیده تر است. دانستن نحوه محاسبه حالت عددی با استفاده از 4، 2 و 1 برای اکثر کاربران کافی است. با استفاده از دستور stat می توانید مجوزهای فایل را در نماد عددی بررسی کنید:

stat -c "%a" file_name

برای استفاده از دستور chmod در حالت numeric mode چند مثال را مشاهده خواهید کرد.
مثلا به مالک فایل اجازه read و write داده و فقط به اعضای گروه و همه کاربران دیگر مجوز read بدهید:

chmod 644 dirname

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

chmod 750 dirname

به یک دایرکتوری داده شده، مجوزهای read، write و execute و یک sticky bit بدهید:

chmod 1777 dirname

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

chmod -R 700 dirname

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

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


دسته بندی مطالب خوش آموز