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

من در چند ماه گذشته در حال گذراندن دوره‌ای درباره لینوکس بوده‌ام و یکی از جنبه‌های (Linux)لینوکس(Linux) که همیشه من را گیج می‌کرد این بود که مجوزها چگونه کار می‌کردند. به عنوان مثال، زمانی که یک بار فایلی را در وب سرور خود آپلود کردم و با خطا مواجه می‌شدم، میزبان وب به من گفته بود که مجوزهای فایل را به 755 تغییر دهم.

من نمی دانستم این به چه معناست، حتی اگر تغییر مجوزها مشکل را برطرف کرد. اکنون متوجه شده ام که مجوزهای لینوکس(Linux) آنقدرها هم پیچیده نیستند، فقط باید سیستم را درک کنید. در این مقاله، من در مورد مجوزهای لینوکس(Linux) در سطح بالا صحبت می کنم و به شما نشان می دهم که چگونه از دستور chmod برای تغییر مجوزها برای فایل ها و پوشه ها استفاده کنید.

مجوزها و سطوح لینوکس

در لینوکس(Linux) ، اساساً سه مجوز وجود دارد که معمولاً باید نگران آنها باشید: خواندن، نوشتن و اجرا. هر سه اینها کاملاً خود توضیحی هستند. اکنون وقتی این مجوزها بر روی یک فایل اعمال می شوند، در سطوح اعمال می شوند.

در لینوکس(Linux) سه سطح مجوز وجود دارد : مالک، گروه و موارد دیگر. مالک، کاربری است که مالک فایل/پوشه است، گروه شامل سایر کاربران در گروه فایل است و سایرین فقط نماینده همه کاربران دیگری هستند که مالک یا در گروه نیستند.

خواندن(Read) ، نوشتن و اجرا به صورت کاراکترهای نمادین و یا به صورت اعداد هشتگانه نمایش داده می شوند. برای مثال، اگر یک ls -l را در فهرستی با چند فایل انجام دهید، نمایش کاراکتر نمادین مجوزها را خواهید دید.

مجوزها به صورت زیر نوشته می شوند: بیت اول یا خط تیره یا حرف d است. Dash به این معنی است که یک فایل است و d مخفف دایرکتوری است. توجه داشته باشید که اگر نام فایل یک پیوند باشد ، بیت اول نیز می تواند l باشد. (l)بعد، سه گروه سه بیتی وجود دارد. بیت اول در هر گروه برای خواندن، بیت دوم برای نوشتن و بیت سوم برای اجرا است. سه بیت اول برای مالک، سه بیت دوم برای گروه و سه بیت سوم برای بقیه است. در اینجا یک توضیح تصویری تر است.

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

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

-rw-rw-rw-

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

drwxr--r--

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

نمایش عدد اکتال

بنابراین مجوزها در لینوکس(Linux) با استفاده از نمادها به این ترتیب نمایش داده می شوند. راه دوم برای نمایش همان مجوزها با استفاده از اعداد هشتگانه است. هنگامی که بعداً از دستور chmod استفاده می کنیم، خواهید دید که می توانید مجوزها را با استفاده از نمادها یا اعداد هشتگانه تغییر دهید.

بنابراین، لینوکس(Linux) چگونه خواندن، نوشتن و اجرا را با استفاده از اعداد اکتال نشان می دهد؟ اساساً، همانطور که در زیر نشان داده شده است، فقط به هر مجوز یک عدد اختصاص می دهد.

مجوز خواندن با 4، نوشتن با 2 و اجرا با 1 نشان داده می شود. تنها کاری که باید انجام دهید این است که آنها را جمع کنید تا مجوز هشتگانه را دریافت کنید. برای مثال، بیایید مثال بالا را در نظر بگیریم که در آن همه همه مجوزها را دارند:

-rwxrwxrwx

مالک rwx دارد، بنابراین ما 4 + 2 + 1 را اضافه می کنیم تا مقدار 7 را به دست آوریم. همین کار را برای گروه و همین کار را برای سایرین انجام می دهیم. مقدار اکتال نهایی 777 است. بیایید نگاهی به مثالی بیندازیم که در آن فقط مجوز خواندن/نوشتن داده ایم:

-rw-rw-rw-

از آنجایی که خواندن و نوشتن را اضافه می کنیم، اولین عدد اکتالی 4 + 2 خواهد بود. عدد دوم مانند عدد هشتی سوم خواهد بود. در اینجا ما یک مقدار اکتال نهایی 666 داریم.

پس حالا بیایید آن را به روش دیگری امتحان کنیم. می‌خواهیم بدانیم 755 چه مجوزهایی را نشان می‌دهد؟ خوب، تشخیص اینکه آیا آن را با اعداد جداگانه تقسیم می کنید، بسیار آسان است. اولین عدد 7 است که فقط با اضافه کردن 4 + 2 + 1 می توانیم آن را بدست آوریم، یعنی مالک مجوز خواندن/نوشتن/اجرا دارد. پنج را فقط می توان با افزودن 4 + 1 به دست آورد، به این معنی که گروه و سایر کاربران مجوزهای خواندن و اجرا را دارند.

امیدواریم(Hopefully) که این توضیح خوبی برای نحوه نمایش مجوزها در لینوکس(Linux) با استفاده از اعداد هشتگانه باشد. در کل خیلی ساده است.

استفاده از chmod برای اصلاح مجوزها

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

اجازه دهید با مجوزهایی که در بالا در مورد آنها صحبت کردیم شروع کنیم، یعنی:

-rw-rw-rw-

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

دستور دقیق این است

chmod a+x filename

نحو به این صورت است: حرف یا حروفی که نشان دهنده مالک ( u )، گروه ( g )، دیگر ( o ) یا همه ( a ) به دنبال یک + برای اضافه کردن مجوزها یا یک - برای حذف مجوزها و سپس حرف برای مجوز ( r برای خواندن، w برای نوشتن و x برای اجرا).

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

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

chmod go-wx filename

از آنجایی که می خواهم مجوزهای گروه و سایر موارد را تغییر دهم، از حرف g و حرف o استفاده می کنم . من می خواهم مجوزها را حذف کنم، بنابراین از علامت – استفاده می کنم. (–)در نهایت، من می خواهم مجوزهای نوشتن و اجرا را حذف کنم، بنابراین از w و x استفاده می کنم . در اینجا یک جدول کوچک مفید برای استفاده از نماد وجود دارد:

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

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

-rw-rw-rw-

در بالا(Above) ، می بینید که من از دستور زیر استفاده کردم:

chmod 744 filename

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

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

chmod 640 filename

در اینجا به مالک اجازه خواندن/نوشتن داده ایم، گروه فقط اجازه خواندن و گروه دیگر هیچ مجوزی ندارد. شما از یک صفر برای نشان دادن بدون مجوز استفاده می کنید. خیلی ساده، نه؟

در پایان، این یک نمای کلی بسیار ساده از مجوزهای لینوکس(Linux) است و می تواند بسیار پیچیده تر از این باشد، اما برای مبتدیان، مکان خوبی برای شروع است. در آینده مقالات بیشتری در مورد مجوزهای پیشرفته تر ارسال خواهم کرد. اگر سوالی دارید، در کامنت بگذارید. لذت بردن!



About the author

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



Related posts