برنامه نویسی

من از chmod 777 -R / استفاده کردم و چرا باید مراقب باشید یا از انجام آن اجتناب کنید

به‌عنوان یک توسعه‌دهنده برنامه، هرگز به دستورات لینوکس اهمیتی ندادم، اما از آنجایی که اکنون در یک شرکت بسیار کوچک کار می‌کنم، می‌توانم انواع کارهایی را انجام دهم که واقعاً از آنها لذت می‌برم، اگر شما هم مانند من هستید، پس این مقاله برای شماست.

من اخیرا دویدم chmod 777 -R / فرمان را روی یکی از نمونه‌های ادمین AWS EC2 ما انجام دهید، و این منجر به بسیاری از موارد ناخواسته و نه چندان خوب شد. اتفاقات رخ داده و برخی جزئیات در مورد chmod و مجوزها به طور کلی را در این مقاله شرح خواهم داد و تا پایان این مقاله، درک خوبی از این موارد خواهید داشت و این دستورات را با اطمینان اجرا خواهید کرد.

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

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

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

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

حالا بیایید در مورد چیزی بحث کنیم که مربوط به دسترسی است که می تواند روی فایل ها تنظیم شود، اینها یا با حروف الفبا یا اعداد نمایش داده می شوند.

ls -l your_file_name -- Command 
-rw-------@ 1 SRA 4238108 Apr 21  2022 IMG_0237.jpg --- output
# here my file name is IMG_0237.jpg
ls -ld your_folder_name -- Command
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بنابراین در اینجا، خط زیر ls – l مجوزهایی را که روی فایل داریم به ما داد که خواندن و نوشتن (rw) هستند. اگر می خواهید در مورد دایرکتوری بدانید ما می توانیم استفاده کنیم ls -ld. می توانید در مورد چه چیزی بیشتر بیابید ls دستور می تواند با استفاده از مرد ls فرمان

درباره اینکه چگونه می توانید مجوزها، کاربر یا گروه کاربری را تغییر دهید

حالا بیایید در مورد اینکه چگونه می توانیم مجوزها را تغییر دهیم تا یک کاربر یا گروه جدید را به یک پوشه یا یک فایل خاص اختصاص دهیم. این کار را می توان با استفاده از دستورات chown و chmod انجام داد. ابتدا اجازه دهید chmod و کدهای دسترسی همراه با chmod را مورد بحث قرار دهیم

  • r: برای دادن مجوز خواندن استفاده می شود

  • w: برای دادن اجازه نوشتن استفاده می شود

  • x: برای دادن مجوز اجرا استفاده می شود

  • -r: برای حذف مجوز خواندن استفاده می شود

  • -w: برای حذف مجوز نوشتن استفاده می شود

  • -x: و شما درست حدس می‌زنید که مجوز اجرا حذف شود

کد جایگزین در عوض، ما همچنین می‌توانیم شماره‌هایی را برای نشان دادن این مجوزها به شما ارائه دهیم.

اجازه دهید می گوید شما از ls ​​-l در فایل استفاده کرده اید و از مجوز موجود در فایل راضی نبودید، سپس از chmod استفاده می کنید.

chmod permission_you_want your_filename
chmod rwx your_filename
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

chown user_name:user_group_name file_or_folder_name
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

هنگامی که این دستور را اجرا کردید و اکنون می خواهید کاربر و گروه را بررسی کنید، فقط می توانید از ls ​​-l یا ls -ld استفاده کنید.

حالا سر و صدا در مورد -R چیست

تا این مرحله، ما فقط با یک پوشه یا یک فایل سروکار داریم، اما اگر بخواهید مجوز هر فایل را در یک پوشه و هر فایلی را در یک زیرپوشه در یک پوشه تغییر دهید، چه کاری انجام می دهید، اینجا جایی است که – گزینه R (Recursive) در دسترس خواهد بود.

chmod -R your_access_modes folder_name
chmod -R 777 your_folder_name/
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

چرا باید مراقب بود

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

chmod -R 777 /
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این بسیار خطرناک است و من فکر می کنم باید از آن اجتناب کرد و هرگز نباید اجرا شود، به خصوص اگر شما یک توسعه دهنده برنامه هستید، کاری که انجام می دهد این است که مجوزها را روی هر فایلی که در روت قرار دارد تغییر می دهد، یعنی هر فایلی در دستگاه لینوکس شما، این باعث خواندن می شود. ، نوشتن و اجرای مجوز برای همه فایل ها برای همه کاربرانی که به آن دستگاه دسترسی دارند، این یک مسئله امنیتی بسیار جدی است (این مسائل می تواند به خودی خود یک مقاله باشد، بنابراین من در اینجا درباره آنها بحث نمی کنم.). در مورد من چگونه بر ما تأثیر گذاشت، دستگاهی که من این دستور را روی آن اجرا کردم، ما برای اجرای جنکین خود از آن استفاده می کنیم و تقریباً دو روز خط لوله CI/CD شما را تحت تأثیر قرار داد، مجوزهای sudo که سایر کاربران روی این دستگاه دارند به هم خورد. . به عبارت ساده، توجه افراد متعددی را به خود جلب کرد و چندین نفر باید روی رفع آن کار می‌کردند، بنابراین تأثیر آن در کلمات ساده همین بود.

در نتیجه

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

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

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

Why-is-chmod-r-777-ویرانگر

مجوزهای change-folder-and-content

مجوزهای فایل پیشرفته

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا