نحوه تغییر مجوزها و مالکیت در لینوکس

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

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

مروری بر تغییر مجوزهای لینوکس

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

  • آیتم chmod +rwx – مجوزهای خواندن، نوشتن و اجرا را اضافه می کند.
  • آیتم chmod -rwx – تمام مجوزها را از یک آیتم حذف می کند.
  • آیتم chmod +r – اجازه خواندن را به یک مورد می دهد.
  • آیتم chmod -x – از اجرای آیتم توسط تمامی کاربران جلوگیری می کند.

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

مهم!

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

آشنایی با مدل مجوزهای لینوکس

کاربران و گروه ها

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

  • مالک – کاربری که دارای فایل یا پوشه است.
  • گروه – چندین کاربر که به یک دسته تعلق دارند.
  • دیگران – همه کاربرانی که نه مالک و نه عضو گروه هستند.

انواع مجوز

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

  • خواندن (r) – به کاربران امکان می دهد محتوای یک فایل یا دایرکتوری را مشاهده کنند.
  • نوشتن (w) – به کاربران امکان می دهد محتوای یک فایل را ویرایش کنند. برای دایرکتوری ها، آنها می توانند فایل ها را در پوشه ایجاد، حذف و انتقال دهند.
  • اجرا کنند (x) – کاربران را قادر می سازد تا یک فایل را اجرا کنند. مجوزهای اجرایی روی یک پوشه به این معنی است که کاربران می توانند آن را باز کنند و به تمام داده های آن دسترسی پیدا کنند.

مشاهده مجوزهای فعلی

از آنجایی که مدیریت مجوزها به دستورات نیاز دارد، سیستم خود را باز کنید command-line رابط کاربری اگر از یک سیستم راه دور مانند سرور خصوصی مجازی (VPS) استفاده می کنید، از ترمینال برای رایانه محلی استفاده کنید یا از طریق SSH متصل شوید.

متناوبا، اگر از هاستینگer پلتفرم VPS، با یک کلیک به CLI سیستم خود دسترسی پیدا کنید مرورگر terminal. به سادگی منوی مدیریت VPS خود را باز کنید روی hPanel و دکمه را بزنید.

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

ls -l

اگر می خواهید فقط یک مورد خاص را بررسی کنید، این دستور را وارد کنید

ls -l itemname

شما باید خروجی شبیه به زیر را ببینید:

drwxrwxrwx 2 user1 admins 4096 Sep 12 04:33 config

این خروجی حاوی اطلاعات مختلفی است. با این حال، از آنجایی که می خواهیم مجوزها و مالکیت را بررسی کنیم، بیایید تمرکز کنیم روی کاربر 1، مدیران، پیکربندی، و drwxrw-r–.

این کاربر 1 placeholder مالک مورد را مشخص می کند، while مدیران گروه لینوکسی است که کاربر به آن تعلق دارد. نام مورد در انتها قرار دارد که این است پیکربندی.

این drwxrw-r– رشته در مورد تنظیمات مجوز مورد به شما می گوید. بیایید آن را تجزیه کنیم:

  • د – اولین کاراکتر رشته نوع آیتم را نشان می دهد که می تواند دایرکتوری باشد (د)، یک فایل معمولی (، یا یک پیوند نمادین (ل).
  • rwx – قسمت دوم مجوزهای مالک را مشخص می کند. از آنجایی که داریم rwx، کاربر 1 می تواند دایرکتوری را بخواند، بنویسد و اجرا کند.
  • rw- – قسمت سوم مجوزهای گروه را بر روی آیتم تعیین می کند. خط فاصله () به معنای از دست دادن مجوز است، بنابراین مدیران اعضای گروه فقط می توانند دایرکتوری را بخوانند و بنویسند.
  • r– – قسمت چهارم مجوزهای دیگر کاربران را تعریف می کند. از آنجایی که ما فقط یک r و دو خط فاصله، دیگران فقط می توانند دایرکتوری را بخوانند.
پیشنهاد می‌کنیم بخوانید:  روش تنظیم منطقه زمانی CentOS 7

مهم است

ساختار و ترتیب نامگذاری مجوز همیشه ثابت می ماند.

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

برای تغییر مجوزهای مورد، از chmod دستور لینوکس سینتکس به شکل زیر است:

chmod [option] [mode] [file_folder_name]

گزینه یک پرچم اضافی است که رفتار فرمان chmod شما را تغییر می دهد. می توانید لیست کامل را بررسی کنید روی را راهنمای chmod page.

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

حالت نمادین

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

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

chmod u+wx,g-x,o=r script.sh

بیایید نمادها را تجزیه کنیم تا بفهمیم چه کار می کند:

  • u+wx – اضافه می کند (+) بنویس (w) و اجرا کنید (x) مجوزهای مالک مورد (تو).
  • gx – حذف می کند () اجرا (x) مجوز روی فایل از گروه (g).
  • o=r – مجموعه ها (=) سایر کاربران (o) مجوزهای مورد برای فقط خواندنی (r).

به عنوان مثال، اگر مجوزهای اولیه فایل به عنوان نشان داده شود -r–rwxrwx، تبدیل خواهد شد -rwxrw-r–.

حالت عددی (اکتال).

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

در اینجا اعداد و تعاریف آنها آمده است:

شماره تعریف
4 اجازه خواندن
2 اجازه نوشتن
1 مجوز را اجرا کنید
0 بدون اجازه

برای تنظیم چندین مجوز، به سادگی اعداد را اضافه کنید. به عنوان مثال، 3 (1+2) یک آیتم را قابل اجرا و نوشتن می کند، در حالی که 7 (1+2+4) امتیازات کامل را بر روی مورد اعطا خواهد کرد.

به عنوان مثال، این دستور مقدار را تنظیم می کند script.sh اجازه فایل به -rwxrw-r–:

chmod 764 script.sh

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

فرض کنید یک مالک می تواند یک آیتم را بخواند و بنویسد، اما شما می خواهید آن را قابل اجرا کنید. با نماد، می توانید با استفاده از مجوز اضافه کنید u+x. با استفاده از عددی، باید امتیاز موجود را دوباره با استفاده از آن اضافه کنید 7 به جای تنها 1.

مجوز بازگشتی تغییر می کند

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

به عنوان مثال، ما یک اسکریپت پوشه حاوی زیرنویس 1 و زیرنویس 2 زیر شاخه ها، و همچنین چندین .sh فایل ها ساختار به صورت زیر است:

script/
│
├── subscript/
│  └── script1.sh
│
├──subscript2/
│
├── script2.sh
│
└── script3.sh

با استفاده از chmod بازگشتی، می‌توانیم مجوزهای همه موارد بالا را با تغییر ساده تغییر دهیم اسکریپت پوشه ای مثل این:

chmod -R 777 script

تغییر مالکیت با chown و chgrp

در لینوکس، اگر یک آیتم ایجاد کنید، به طور پیش فرض مالک آن خواهید بود. اگر به یک گروه تعلق دارید، همه اعضای دیگر همان مجوزها را به ارث خواهند برد. می توانید مالکیت را با استفاده از چاشنی یا chgrp فرمان

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

chown [options] [user:group] [item]

به عنوان مثال، اگر می خواهید مالکیت را تغییر دهید script.sh به جاندو، که متعلق به مدیران گروه، از دستور زیر استفاده کنید:

chown johndoe:admins script.sh

برای اعطای مالکیت به یک کاربر جدید با حفظ گروه فعلی، به سادگی نام گروه را حذف کنید:

chown johndoe script.sh

به طور مشابه، اگر می خواهید مالکیت یک مورد را به گروه دیگری تغییر دهید، کاربر را حذف کنید. با این حال، مطمئن شوید که نام گروه را با دو نقطه شروع کنید (:) مشابه این:

chown :admins script.sh

دستور chown همچنین به شما امکان می دهد تا آن را اضافه کنید گزینه ای برای تغییر مالکیت مورد به صورت بازگشتی:

chmod -R johndoe:admins scriptfolder

برخلاف chown، chgrp فقط به شما امکان می دهد مالکیت یک مورد را به گروه دیگری تغییر دهید. در اینجا یک دستور مثال است:

chgrp admins script.sh

بیت های مجوز ویژه

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

پیشنهاد می‌کنیم بخوانید:  فید RSS وردپرس: چیست و چگونه یکی را پیکربندی کنیم روی وبسایت شما

Setuid و setgid

شناسه کاربر را تنظیم کنید مجوز (setuid) به شما امکان می دهد یک فایل را به عنوان مالک به جای کاربر فعلی اجرا کنید. می توانید آن را با استفاده از س شخصیت نماد نمادین مانند این است:

chmod u+s script.sh

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

مهم!

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

پس از اضافه کردن س مجوز، امتیاز مالک فایل باید به عنوان نشان داده شود rws. اساساً همان است rwx، اما نشان می دهد که setuid فعال است. مجوز صحیح setuid ممکن است به شکل زیر باشد:

-rwsr-xr-x

شناسه گروه را تنظیم کنید (setgid) شبیه به setuid است، با این تفاوت که فایل ها را با استفاده از مجوزهای گروه مرتبط اجرا می کند. برای اعطای آن از دستور زیر استفاده کنید:

chmod g+s script.sh

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

-rwxr-sr-x

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

بیت چسبنده

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

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

برای فعال کردن بیت چسبنده روی یک پوشه، اضافه کنید تی مجوز با استفاده از حالت نمادین chmod مانند:

chmod +t folder

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

drwxrwxrwt

همچنین می‌توانید با افزودن عبارت، بیت چسبنده را به صورت بازگشتی به همه زیرپوشه‌ها و فایل‌های داخل یک پوشه اضافه کنید گزینه ای مانند این:

chmod -R +t folder

نتیجه گیری

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

برای تغییر مجوزها در لینوکس، استفاده کنید chmod به دنبال آن تنظیمات و مواردی که می خواهید تغییر دهید. برای تنظیم، اگر می‌خواهید انعطاف‌پذیری بیشتری در تغییر مجوزها داشته باشید، از نماد نمادین استفاده کنید یا اگر دستور ساده‌تری می‌خواهید از عدد استفاده کنید.

در ضمن استفاده کنید چاشنی برای تغییر مالکیت یک مورد به کاربر یا گروه دیگری. برای تغییر مالکیت گروه، می توانید از chgrp فرمان

علاوه بر این سه مجوز، لینوکس مجوزهای ویژه ای نیز دارد. به عنوان مثال، سست و setgid به شما اجازه می دهد یک فایل را به عنوان مالک یا گروه مرتبط اجرا کنید. شما همچنین می توانید آنها را با استفاده از chmod فرمان

تغییر مجوزها سوالات متداول لینوکس

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

برای تغییر مجوزهای یک فایل یا پوشه در لینوکس، از chmod فرمان نحو است chmod [option] [mode] [item]. گزینه رفتار فرمان شما را تغییر می دهد، حالت مجوزهای جدید را مشخص می کند، در حالی که مورد به فایل یا پوشه ای که می خواهید تغییر دهید اشاره دارد.

چگونه می توانم مجوزهای فعلی یک فایل را مشاهده کنم؟

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

chmod در لینوکس مخفف چیست؟

در لینوکس، chmod فرمان مخفف تغییر حالت. این به شما امکان می دهد مجوز یک فایل یا پوشه را تغییر دهید و به کاربران مختلف اجازه می دهد آن را بخوانند، بنویسند یا اجرا کنند.