دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
لینوکس
  • Folder icon closed Folder open iconآشنایی با لینوکس (Linux Fundamentals)
  • Folder icon closed Folder open iconتوزیع‌های مختلف لینوکس (Linux Distributions)
  • Folder icon closed Folder open iconFHS؛ آشنایی با ساختار فایل‌ و پوشه‌های لینوکسی
  • Folder icon closed Folder open iconمهم‌ترین دستورات پایه‌ای برای هر sysadmin
  • Folder icon closed Folder open iconمدیریت فایل و پوشه (file & directory management) در لینوکس
  • Folder icon closed Folder open iconآموزش ویرایش فایل‌های متنی در لینوکس با Nano و Vim
  • Folder icon closed Folder open iconآشنایی با users، groups و ساختار مدیریت کاربران در لینوکس
  • Folder icon closed Folder open iconآموزش Permission و Ownership در لینوکس
  • Folder icon closed Folder open iconآشنایی با Root و sudo
  • Folder icon closed Folder open iconآشنایی با Processها در لینوکس
  • Folder icon closed Folder open iconتغییر Hostname در لینوکس
  • Folder icon closed Folder open iconتنظیم Timezone در لینوکس
  • Folder icon closed Folder open iconتنظیم NTP در لینوکس
  • Folder icon closed Folder open iconبروزرسانی سیستم در لینوکس
  • Folder icon closed Folder open iconساخت کاربر جدید در لینوکس
  • Folder icon closed Folder open iconایجاد کاربران و گروه ها در لینوکس
  • Folder icon closed Folder open iconآموزش ACL در لینوکس؛ مدیریت سطح دسترسی پیشرفته برای کاربران و گروه‌ها
  • Folder icon closed Folder open iconآموزش umask در لینوکس؛ تعیین مجوز پیش‌فرض فایل‌ها و پوشه‌های جدید
  • Folder icon closed Folder open iconآموزش فایل sudoers؛ مدیریت دسترسی کاربران به دستورات مدیریتی در لینوکس
  • Folder icon closed Folder open iconآموزش دستور chown در لینوکس
  • Folder icon closed Folder open iconآموزش دستور chmod در لینوکس
  • Folder icon closed Folder open iconSticky Bit در لینوکس چیست؟ آموزش افزایش امنیت پوشه‌های اشتراکی
  • Folder icon closed Folder open iconآموزش SUID در لینوکس؛ اجرای برنامه‌ها با دسترسی مالک فایل
  • Folder icon closed Folder open iconآموزش SGID در لینوکس؛ مدیریت دسترسی گروه‌ها و اجرای برنامه‌ها
لینوکس

آموزش Permission و Ownership در لینوکس

permissions and ownership in linux

مدیریت سطح دسترسی فایل‌ها و پوشه‌ها

مقدمه

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

در مقاله‌ی قبلی با کاربران و گروه‌ها آشنا شدید؛ در این مقاله می‌بینیم که چطور همان کاربران و گروه‌ها، مالک (Owner) فایل‌ها و پوشه‌ها می‌شوند و چطور با دستورات chmod و chown سطح دسترسی را کنترل می‌کنیم.


مالکیت فایل (Ownership) چیست؟

هر فایل و پوشه در لینوکس دقیقاً یک Owner (مالک) و یک Group Owner دارد. وقتی یک فایل ساخته می‌شود، به‌طور پیش‌فرض مالک آن، کاربری است که فایل را ساخته و گروه آن، Primary Group همان کاربر خواهد بود.

سطح دسترسی به یک فایل بر اساس سه دسته تعریف می‌شود:

  • Owner (u) — خود مالک فایل
  • Group (g) — اعضای گروهی که فایل به آن‌ها تعلق دارد
  • Others (o) — تمام کاربران دیگر سیستم

نمایش Permissions با دستور ls -l

با اجرای دستور زیر می‌توانید سطوح دسترسی فایل‌ها را ببینید:

ls -l

نمونه خروجی:

-rw-r--r-- 1 root root 5495986 Jul 17 09:06 csf.tgz
drwx------ 3 root root    4096 Jul 19 12:45 snap

این رشته‌ی ۱۰ کاراکتری این‌طور خوانده می‌شود:

بخشمعنی
کاراکتر اولنوع فایل (- فایل معمولی، d پوشه، l symbolic link)
۳ کاراکتر بعدیدسترسی مربوط به Owner (rwx)
۳ کاراکتر بعدیدسترسی مربوط به Group (rwx)
۳ کاراکتر آخردسترسی مربوط به Others (rwx)

هر یک از این سه‌تایی‌ها از حروف زیر تشکیل شده:

کاراکترمعنی
rread / خواندن
wwrite / نوشتن
xexecute / اجرا
-عدم وجود آن دسترسی

Symbolic Notation در برابر Octal Notation

سطوح دسترسی را می‌توان به دو شکل بیان کرد:

۱. Symbolic (نمادین): استفاده از حروف u, g, o, a و r, w, x — مثل u+x یا g-w

۲. Octal (عددی): هر سطح دسترسی یک عدد دارد و مجموع آن‌ها یک رقم می‌سازد:

Permissionعدد
Read (r)4
Write (w)2
Execute (x)1

مثلاً rwxr-xr-- معادل عدد 754 است:

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

هر دو روش کاملاً معتبرند؛ روش Octal برای تنظیم سریع و روش Symbolic برای تغییرات جزئی مناسب‌تر است.


دستور chmod — تغییر Permission

حالت Octal

chmod 755 file.txt

تنظیم دقیق و کامل سطح دسترسی با یک عدد سه‌رقمی (رایج‌ترین و سریع‌ترین روش).

chmod -R 755 folder/

اعمال سطح دسترسی به‌صورت بازگشتی روی یک پوشه و تمام محتویات آن.

حالت Symbolic

chmod u+x script.sh

افزودن سطح دسترسی اجرا (execute) برای Owner.

chmod g-w file.txt

حذف سطح دسترسی نوشتن (write) از Group.

chmod o=r file.txt

تنظیم دقیق سطح دسترسی برای Others (فقط خواندن، بدون در نظر گرفتن مقدار قبلی).

chmod a+r file.txt

افزودن سطح دسترسی خواندن برای همه (Owner, Group, Others).


دستور chown و chgrp — تغییر Ownership

chown ali file.txt

تغییر Owner فایل به کاربر ali.

chown ali:developers file.txt

تغییر هم‌زمان Owner و Group فایل.

chown :developers file.txt

تغییر فقط Group فایل (بدون تغییر Owner) — معادل chgrp.

chown -R ali:developers /var/www/html

تغییر بازگشتی Ownership برای یک پوشه و تمام محتویات آن؛ بسیار پرکاربرد هنگام دیپلوی سایت.

chgrp developers file.txt

تغییر Group به‌صورت مستقیم، بدون نیاز به دستور chown.


نکته مهم: تفاوت Permission روی فایل و پوشه

معنای x (execute) روی پوشه‌ها با فایل‌ها فرق دارد:

  • روی فایل: x یعنی اجازه‌ی اجرا شدن آن فایل به‌عنوان یک برنامه یا اسکریپت.
  • روی پوشه: x یعنی اجازه‌ی ورود (cd) به آن پوشه و دسترسی به محتویاتش. بدون x، حتی با داشتن r روی یک پوشه، نمی‌توانید وارد آن شوید یا فایل‌های داخلش را باز کنید — فقط اسم فایل‌ها را می‌بینید.

مثال‌های عملی

سناریو ۱: تنظیم Permission استاندارد برای فایل‌های وب‌سایت

sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;

سناریو ۲: اجرایی کردن یک اسکریپت شخصی

chmod u+x deploy.sh
./deploy.sh

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

chmod 600 wp-config.php

فقط Owner می‌تواند این فایل را بخواند و بنویسد؛ رایج برای فایل‌های تنظیمات دارای اطلاعات حساس.


اشتباهات رایج و عیب‌یابی

۱. استفاده از chmod 777
بسیاری برای رفع سریع خطای Permission denied، از chmod 777 استفاده می‌کنند. این کار به همه (حتی Others) دسترسی کامل خواندن، نوشتن و اجرا می‌دهد و یک ریسک امنیتی جدی است. همیشه کمترین دسترسی لازم را بدهید و از حداقل دسترسی لازم فراتر نروید.

۲. فراموش کردن -R هنگام کار با پوشه‌ها
اگر بخواهید Permission یا Ownership یک پوشه و تمام زیرمجموعه‌هایش را تغییر دهید و -R را فراموش کنید، فقط خود پوشه تغییر می‌کند، نه محتویاتش.

۳. اشتباه گرفتن Permission با Ownership
خطای “Permission denied” همیشه به معنی نادرست بودن Permission نیست؛ گاهی فایل اصلاً متعلق به کاربر یا گروه درستی نیست. قبل از تغییر Permission، با ls -l مطمئن شوید Owner و Group درست تنظیم شده‌اند.

۴. عدم توجه به umask هنگام ساخت فایل‌های جدید
Permission پیش‌فرض فایل‌ها و پوشه‌های تازه‌ساخته‌شده توسط umask کنترل می‌شود، نه توسط chmod. برای تنظیم Permission پیش‌فرض سیستم، به مقاله‌ی اختصاصی umask مراجعه کنید.

۵. نیاز به کنترل دقیق‌تر از آنچه Owner/Group/Others می‌دهند
اگر نیاز دارید به چند User یا Group مختلف، Permissionهای متفاوت روی یک فایل بدهید (چیزی فراتر از سه سطح استاندارد)، به سراغ ACL بروید که در مقاله‌ی جداگانه‌ای پوشش داده شده.


مطالعه بیشتر

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

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

برای مواقعی که سه سطح استاندارد Owner/Group/Others کافی نیست، سراغ آموزش ACL در لینوکس بروید.

مرجع رسمی و کامل دستورات این مقاله را می‌توانید در man page های زیر مطالعه کنید:

  • chmod(1) — man7.org
  • chown(1) — man7.org

جمع‌بندی

در این مقاله با مفهوم Ownership و Permission در لینوکس آشنا شدید: نحوه‌ی خواندن خروجی ls -l، تفاوت Symbolic و Octal Notation، و دستورات chmod، chown و chgrp برای مدیریت دسترسی فایل‌ها و پوشه‌ها.

این مفاهیم پایه‌ی امنیت هر سرور لینوکسی هستند. در مقالات بعدی به سراغ مباحث تخصصی‌تری مثل root، sudo، ACL، umask، SUID، SGID و Sticky Bit می‌رویم که همگی روی همین پایه بنا شده‌اند.


چیت شیت Ownership و Permission

دستورکاربرد
ls -lنمایش Permission و Ownership فایل‌ها
chmod 755 fileتنظیم Permission با روش Octal
chmod u+x fileافزودن Permission اجرا برای Owner
chmod -R 755 folder/اعمال بازگشتی Permission روی پوشه
chown user fileتغییر Owner
chown user:group fileتغییر هم‌زمان Owner و Group
chown -R user:group folder/تغییر بازگشتی Ownership
chgrp group fileتغییر فقط Group

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

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

مطالب اخیراً بازدیدشده

  • آموزش تنظیم و تغییر رمز عبور Administrator در Windows Server
  • ساخت کاربر جدید در لینوکس
  • مشاهده بیشتر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش Permission و Ownership در لینوکس

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

آگوست 2026
شیدسچپج
1234567
891011121314
15161718192021
22232425262728
293031 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام