سلام
تنبلی رو کنار گذاشتم و کمی مطالعه کردم و برآیند اون رو اینجا نوشتم
چرا Login کردن با کاربر Root گناه کبیره است؟۱-ممکنه شما خودتون به اشتباه لینوکس رو خراب کنید.و به محتویات فایل های سیستم عامل در پارتیشن روت آسیب بزنید.
۲-دیگران (هکرها و بد افزار ها) از بیرون ممکن است به روت حمله کنند.امن ترین سیستم سیستمی است که با جهان بیرون ارتباط ندارد.اما این غیرممکن است و شما احتیاج به استفاده از اینترنت و فلش دیسک ها و DVD و ... دارید.و این ها ممکن است حاوی اسکریپت یا ویروس هایی باشند که به راحتی میتوانند به محتویات پارتیشن روت دسترسی پیداکنند و آنجا را خراب کنند.برای امنیت لینوکس اکثرا میگویند که شما اگر هسته لینوکس رو آپدیت نگه دارید نیاز به آنتی ویروس ندارید.خود لینوکس هم فایروال دارد.همراه با لینوکس یک سیستم دیواره آتشین کامل موثر و کارا موسوم به Netfilter/iptables ارائه می شود. قسمت Netfilter بیانگر سیستم دیواره آتشین است که در سیستم عامل از پیش کار گذاشته می شود. یعنی در هسته لینوکس و iptables رابطی است که آن را کنترل می کند. البته در کرنل جدید NFTables جایگزین میشود.NFTablesیک موتور فیلترینگ زیرسیستم/بسته فایروال برای کرنل لینوکس است که آماده است تا جایگزین Iptables شود. NFTables برای سالها توسط نویسنده Netfilter در حال توسعه بوده. این سیستم nftables جدید برای ادغام در کرنل لینوکس ۳.۱۳ آمده شده است. NFTables سالها تحت توسعه بوده تا با ارائه یک کرنل ABI سادهتر، کاهش کدهای حشو، گزارش خطای بهبود یافته و فراهم کردن پشتیبانی کارآمدتر از قوانین فیلترینگ جایگزین IPTables شود.
یکی از دلایلی که لینوکس به طور ذاتی امن است ("inherently secure") این است که همه کاربران آن از User Account ای استفاده میکنند که محدود( limited privileges) است.یکی از دلایل اصلی که ویندوز نا امن و insecure است این است که اغلب کاربران با اختیارات Administrator از ویندوز استفاده میکنند. اما در لینوکس شما فقط به پارتیشن Home خود دسترسی دارید و برای اجرای دستورات و کارهای سیستمی احتیاج به رمز روت دارید و باید از دستوراتی مثل Sudo استفاده کنید.البته در ویندوز هم برای بالا بردن امنیت از User Account Control استفاده شده است و شدیدا توصیه میشود که UAC رو غیر فعال نکنید.البته در ویندوز از شما رمز نمیخواهد.و فقط یک سوال میپرسد و میتونید با دکمه yes جواب مثبت بدید.و همین به نظرمن ضعف بزرگی است.چون ممکن است که خود شخص پشت سیستم نباشد! و براحتی از سد UAC هم میگذرد.البته در ویندوز هم پیشنهاد شده که برای استفاده از کاربر معمولی( standard userیا Limited) استفاده کنید و با استفاده از Run as Administrator و وارد کردن رمز نرم افزار ها را نصب کنید.ولی معمولا اکثر افراد این کار رو انجام نمیدهند و براحتی نرم افزار های مخرب میتونند به ویندوز دسترسی داشته باشند و اون رو خراب کنند.اغلب کاربران به این موضوع توجهی ندارند و ندانسته از Admin استفاده میکنند و در ویندوز استفاده از کاربر ادمین رفته رفته تبدیل به یک فرهنگ شده!!! یک فرهنگ استفاده غلط.ولی در لینوکس به طور پیش فرض مجبورید که از کاربری به غیر از root استفاده کنید.مگر اینکه خودتان اصرار داشته باشید و دوست داشته باشید خطر کنید و لینوکس رو ناامن کنید!!!
توصیه : به جای استفاده از دستور su در ترمینال از دستور sudo استفاده کنید.شدیدا توصیه میشود که از su استفاده نکنید.ولی اگر استفاده کردید حتما باید با استفاده از exit خارج شوید.(su=super user=root)اما گاهی لازم است تغییراتی در پارتیشن روت ایجاد کنیم.برای ایجاد این تغییرات حق نداریم با root وارد سیستم شویم.چون امنیت ندارد.(استفاده از su مجاز نیست)
فرض کنید میخواهیم یک پوسته ساعت (skin) یا یک فایل کدک صوتی و تصویری یا هر فایل دیگری رو دستی به پارتیشن روت منتقل کنیم.چه کار باید انجام دهیم ؟؟؟
میتونیم یکی از انتخاب های زیر رو داشته باشیم:
۱- میتوانیم از دستور gksudo nautilus استفاده کنیم.و این دستور به خاطر داشتن محیط گرافیکی کار ما را خیلی راحت و سریع میکند.
۲-میتوانیم از دستور gksu nautilus استفاده کنیم.(در محیط KDE از دستور kdesu nautilus)در این صورت تفاوت این دستور با دستور بالایی چیست؟؟؟ آیا این دستور یا دستور بالایی مشکل امنیتی نخواهد داشت؟؟؟
3-میتوانیم از دستور sudo nautilus هم استفاده کنیم.که البته توصیه شده که برای برنامه های گرافیکی از دستورات ۲و۱ استفاده بشه.و برای برنامه های متنی و تحت ترمینال از sudo استفاده بشه.ولی درظاهر تفاوت gksudo nautilus با sudo nautilus اینه که با اجرای gksudo برنامه nautilusبه صورت یک فرآیند جدید و مستقل از پدر ایجاد میشود.ولی با اجرای sudo nautilus در واقع nautilus فرزند terminal میشود.(مثل دستور fork که فرزند عین خودش تولید میکنه و بعد با execve خودش رو به ناتیلوس تغییر میده).مثلا وقتی شما پنجره ترمینال رو میبندید ناتیلوس هم بسته میشه.چون پدر که کارش به پایان میرسه فرزند هم با اون سیستم رو ترک میکنه.ولی دستور ۱ و ۲ یعنی استفاده از gksudo یا gksu این طور نیست.و با بستن terminal و به پایان رسیدن اون nautilus همچنان به کارش ادامه میده.
۴-میتونیم از ترمینال و دستورات اون استفاده کنیم.که برخی از دوستان اعتقاد دارند روش های ۱و۲و۳ امن نیستند و روش ۴ امن است.یعنی از ترمینال و دستورات cp و mv برای انتقال فایل یا دایرکتوری(که در واقع همون فایله.اینجا همه چیز یه چیزه اونم فایل) استفاده بشه بهتره.چون یکی از ناظرانجمن به اسم "nixoeen"در همین سایت عقیده داشت: فقط روش ۴ امن است و استفاده از دیگر روش ها کفر است.و برای اثبات حرف هایش دلیلی نگفت.ولی فایل PDF زیر را معرفی کرد.من نگاهی به این فایل انداختم ولی نمیدونم رابطه اش با این بحث چیه!!! چون ظاهرا فایل مربوط به خطرات Thumbnail در ویندوز XP هستش و سواد کم من نمیتونه اون رو در لینوکس و این موضوع درک کنه!!!
دوست دارم نظر دوستان با تجربه لینوکسی رو بدونم.و بتونیم بحث مفیدی در مورد امنیت در لینوکس در اینجا داشته باشیم.
نظر شما کدام گزینه است؟ دلیل شما چیست؟
به قول سیاست مدارا : گزینه روی میز شما چیه؟؟؟