با سلام
حتما تا حالا دستور env را اجرا کردهاید. خروجی این دستور شامل متغیرهای محیطی با همان انگلیسیش Enviornment Varriables میباشد. یکی از مهمترین این متغیرها متغیر PATH میباشد. این متغیر حاوی مسیرهایی میباشد که shell در آن باید به دنبال کامندهایی باشد که در خط فرمان چاپ میشوند. به عبارتی مرجع جستجوی دستورات میباشد.
در هر Session، این متغیرها بر اساس پروفایل کاربر مقدار میگیرند. شما هم میتوانید به صورت دلخواه در فایل .bashrc با استفاده از دستور export مسیرهای مورد علاقه خود را به متغیر PATH اضافه کنید.
حال میبتوان گفت که تفاوت اصلی su و su - چیست. باید گفت که هنگامی که شما از دستور su استفاده میکنید متغیرهای محیطی مقدار نمیگریند و session جدید با همان مقادیری که در session قبلی مقدار گرفته بودند کار میکند در نتیجه هنگامی که شما دستور su را اجرا میکند برای اجرای فرمان ifconfig باید به صورت زیر عمل کنید:
# /sbin/ifconfig
که این هم بدان دلیل است که مسیر /sbin در متغیر PATH کاربران عادی قرار ندارد. اما هنگامی که شما از "-" به همراه دستور su استفاده میکنید کلیه متغیرهای محیطی بر اساس پروفایل کاربری که دستور su مشخص میکند ( که اگر نام کاربری مشخص نشود به صورت پیشفرض همان root است) دوباره مقدار دهی میشوند. در نتیجه اگر از دستور su - استفاده کنید کامند ifconfig و یا هر دستور دیگری که مختص کاربر root باشند بدون مشخص کردن مسیر آن قابل اجرا خواهند بود..
موفق باشید
