حالا خوب شد
...
واسه اون خطایی که GDM میده من حدس میزنم بخاطر permission پوشه var/lib نمیتونه فایل gdm رو بخونه پس باید سطح دسترسی اون پوشه به ۷۵۵ (سطح دسترسی خواندنی و اجرایی) تغییر پیدا کنه.
دستور آخری که دادم رو زدی؟ خروجیش چی بود؟ منظورم این دستوره که باید با کاربر root نوشته بشه (تو ریکاوری از طریق root نوشته بشه):
chmod ugo+rx /etc /home /lib /usr /var
اگه دستور آخری رو زده باشی و خطا نده احتمالا درست میشه. جوابش رو حتما بهم بده. منم یک خبر خوب دارم اینکه script ای نوشتم که سطح دسترسی تمام پوشهها رو تغییر میده، البته اگه فقط دستور بالا کفایت نکرد میشه از این script استفاده کرد تا permission کل پوشههای روی سیستم بشه ۷۵۵ (به لحاظ امنیتی بعضی از پوشهها بهتره که تا این سطح دسترسی ازاد نباشند).
نکته: اگه سیستمت صدمه ببینه من در قبال این script هیچ مسئولیتی قبول نمیکنم همش پای خودته
۱. دستور زیر رو اجرا کن یعنی توی ترمینال بنویسش و enter بزن:
back_it_now () for f in "$1"/*; do if [ -d "$f" ]; then chmod 755 "$f"; back_it_now "$f"; fi; done
که دستور بالا تابع اش رو میسازه. این تابع رو جوری نوشتم که یک پارامتر هم میگیره که پارامتری که میگیره نام یک پوشه است که سطح دسترسی تمام زیر پوشههای اون پوشه رو به ۷۵۵ تغییر میده. مثلا:
back_it_now /home/alis313
یا
back_it_now ~
که سطح دسترسی تمام زیر پوشههای پوشه خانگی رو تغییر میده البته نه خود پوشه خانگی بلکه زیر پوشههاش.
و وقتی مسیر رو بهش میدی نباید آخر مسیر علامت / باشه و گرنه خطا میده، استفاده به شکلهای زیر غلطه:
back_it_now /
یا
back_it_now /home/alis313/
۲. پس در اینجا چون میخوایم سطح دسترسی پوشههای کل سیستم بشه ۷۵۵ پس اگه بدون پارامتر، نام تابع رو توی ترمینال بنویسیم، یعنی اگه دستور زیر رو وارد کنیم، کل پوشههای روی سیستم سطح دسترسیش میشه ۷۵۵، البته این حالت از لحاظ امنیتی صحیح نیست و پوشههایی مثل lost+found و از این دست بهتره برای کاربران عادی قابل مشاهده نباشه. با ان اوصاف اگه راضی بودی، پس در اینجا چون کل پوشههای روی سیستم رو میخوایم permission اش رو عوض کنیم باید تابع رو بدون پارامتر بنویسیم پس دستور زیر رو تو ترمینال بزن:
back_it_now
قبل از استفاده از تابع back_it_now اول تست کن ببین اصلا دستور زیر کار میکنه یا نه؟ (همون دستور بالایی که اول گفتم)
chmod ugo+rx /etc /home /lib /usr /var