بازگشت به لیست مقالات

نحوه تغییر مالک فایل در لینوکس (آموزش کامل دستور chown + مثال کاربردی)

نحوه تغییر مالک فایل در لینوکس (آموزش کامل دستور chown + مثال کاربردی)

مدیریت مالکیت فایل‌ها یکی از مهارت‌های پایه و بسیار مهم در لینوکس است؛ مخصوصاً اگر از VPS لینوکس استفاده می‌کنید، سرور اختصاصی مدیریت می‌کنید یا با هاست اشتراکی کار می‌کنید.

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

در این مقاله به‌صورت کامل توضیح می‌دهیم:

  • مالکیت فایل در لینوکس چیست؟

  • دستور chown چگونه کار می‌کند؟

  • چگونه مالک فایل را تغییر دهیم؟

  • رایج‌ترین اشتباهات هنگام استفاده از chown

  • تفاوت chown و chmod

  • نکات امنیتی مهم هنگام تغییر مالکیت فایل‌ها


مالکیت فایل در لینوکس یعنی چه؟

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

  1. Owner (مالک) → کاربری که مالک فایل است

  2. Group (گروه) → گروهی از کاربران که به فایل دسترسی دارند

  3. Permissions (سطح دسترسی) → تعیین می‌کند چه کسی می‌تواند فایل را بخواند، ویرایش کند یا اجرا کند

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

ls -l filename

مثال خروجی:

-rw-r--r-- 1 root www-data 2048 index.html

در این مثال:

  • مالک (Owner): root

  • گروه (Group): www-data


دستور chown در لینوکس چیست؟

دستور chown (مخفف Change Owner) برای تغییر مالک و یا گروه یک فایل یا پوشه در لینوکس استفاده می‌شود.

این دستور می‌تواند:

  • مالک یک فایل را تغییر دهد

  • گروه فایل را تغییر دهد

  • مالک و گروه را همزمان تغییر دهد

  • مالکیت یک دایرکتوری را به‌صورت بازگشتی تغییر دهد

🔒 نکته مهم:
در اکثر توزیع‌های لینوکس فقط کاربر root یا کاربری با دسترسی sudo می‌تواند مالک فایل‌ها را تغییر دهد.


ساختار کلی دستور chown

ساختار کلی دستور:

chown [OPTIONS] OWNER[:GROUP] FILE

اجزای دستور:

  • OWNER → نام کاربری جدید یا UID

  • GROUP → نام گروه یا GID (اختیاری)

  • FILE → فایل یا پوشه مورد نظر

فرم‌های رایج استفاده:

chown user file
chown user:group file
chown :group file
chown -R user:group directory

چگونه مالک فایل را در لینوکس تغییر دهیم؟

1️⃣ تغییر فقط مالک فایل

اگر فقط بخواهید مالک را تغییر دهید:

sudo chown username filename

مثال:

sudo chown john report.txt

در این حالت:

  • مالک = john

  • گروه بدون تغییر باقی می‌ماند


2️⃣ تغییر همزمان مالک و گروه

برای تغییر مالک و گروه با هم:

sudo chown username:groupname filename

مثال:

sudo chown john:developers app.log

نتیجه:

  • مالک = john

  • گروه = developers


3️⃣ تغییر فقط گروه فایل

اگر فقط بخواهید گروه را تغییر دهید:

sudo chown :groupname filename

مثال:

sudo chown :www-data index.html

تغییر مالکیت پوشه در لینوکس به‌صورت بازگشتی

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

برای این کار از گزینه -R استفاده می‌کنیم:

sudo chown -R username:groupname directory_name

مثال رایج در سرورهای وب:

sudo chown -R www-data:www-data /var/www/html

این دستور معمولاً برای رفع مشکلات دسترسی در Apache یا Nginx استفاده می‌شود.

⚠️ هشدار:
استفاده اشتباه از -R می‌تواند دسترسی‌های سیستمی را مختل کند. همیشه قبل از اجرا مسیر را بررسی کنید.


بررسی مالکیت فایل بعد از اجرای chown

برای اطمینان از اعمال تغییرات:

برای فایل:

ls -l filename

برای پوشه:

ls -ld directory_name

مهم‌ترین گزینه‌های دستور chown

گزینهتوضیح
-Rتغییر بازگشتی مالکیت
-vنمایش فایل‌های تغییر یافته
--fromتغییر فقط در صورت تطابق مالک فعلی
-hتغییر مالک لینک سمبولیک

مثال حالت verbose:

sudo chown -v john report.txt

چه زمانی باید مالک فایل را تغییر دهیم؟

در شرایط زیر استفاده از دستور chown ضروری است:

  • رفع خطای Permission Denied

  • تنظیم دسترسی صحیح برای Apache یا Nginx

  • انتقال فایل بین کاربران

  • ایمن‌سازی پوشه‌های برنامه‌ها

  • مدیریت چندکاربره در VPS

  • اصلاح مالکیت بعد از آپلود فایل با FTP یا SCP


اشتباهات رایج هنگام استفاده از chown

❌ اجرای دستور بدون sudo
→ تغییر انجام نمی‌شود.

❌ استفاده نادرست از گزینه -R
→ ممکن است دسترسی کل سیستم مختل شود.

❌ دادن مالکیت root به فایل‌های وب‌سایت
→ ریسک امنیتی بالا ایجاد می‌کند.

✅ بهترین روش:
همیشه کمترین سطح دسترسی لازم را اختصاص دهید (اصل Least Privilege).


تفاوت chown و chmod چیست؟

دستورکاربرد
chownتغییر مالک یا گروه فایل
chmodتغییر سطح دسترسی فایل

این دو دستور مکمل هم هستند اما وظایف متفاوتی دارند.


نکات امنیتی هنگام استفاده از chown

  • هرگز فایل‌های قابل دسترسی از وب را به root اختصاص ندهید

  • برای سرویس‌هایی مثل Apache یا Nginx کاربر اختصاصی تعریف کنید

  • بعد از مهاجرت یا دیپلوی حتماً مالکیت فایل‌ها را بررسی کنید

  • تغییر بازگشتی را فقط روی مسیرهای مشخص اجرا کنید


جمع‌بندی

یادگیری نحوه تغییر مالک فایل در لینوکس یکی از مهارت‌های ضروری برای توسعه‌دهندگان، مدیران سرور و صاحبان وب‌سایت است.

دستور chown به شما کنترل دقیقی روی دسترسی فایل‌ها، امنیت سیستم و پایداری سرور می‌دهد. اگر سرور VPS یا وب‌سایت لینوکسی مدیریت می‌کنید، تسلط بر این دستور باعث می‌شود:

  • خطاهای دسترسی را سریع‌تر رفع کنید

  • امنیت سیستم را افزایش دهید

  • مدیریت کاربران را حرفه‌ای‌تر انجام دهید


سوالات متداول درباره دستور chown

❓ آیا کاربر عادی می‌تواند مالک فایل را تغییر دهد؟

خیر. فقط کاربر root یا کاربران دارای دسترسی sudo می‌توانند مالک فایل را تغییر دهند.


❓ آیا chown سطح دسترسی فایل را هم تغییر می‌دهد؟

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


❓ چگونه مالک چند فایل را همزمان تغییر دهیم؟

sudo chown username file1 file2 file3

❓ آیا دستور chown در همه توزیع‌های لینوکس وجود دارد؟

بله. این دستور بخشی از GNU Coreutils است و در تمام توزیع‌های اصلی مانند Ubuntu، Debian، CentOS و RHEL وجود دارد.


❓ چرا بعد از اجرای chown هنوز خطای Permission Denied دریافت می‌کنم؟

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