منبع اصلی نوشتار زیر در این لینک قرار دارد

تفاوت میان دستورهای su و – su چیست

su دستوری است که امکان اجرای یک دستور را توسط کاربری دیگر می دهدو به دو صورت زیر استفاده می شود. برای مثال استفاده از این دستور، در صورتی که پایگاه داده اوراکل را بر روی لینوکس نصب کرده باشید، کاربری به نام oracle ایجاد خواهد شد که دستورهای اوراکل مانند sqlplus و rman تنها توسط حساب کاربری oracle قابل اجرا خواهند بود. حال اگر با کاربری به جز oracle به سیستمی که اوراکل بر روی آن نصب است، متصل شده باشید، لازم است تا توسط دستور su به حساب کاربری oracle وارد شوید.

استفاده از دستور su به دو روش زیر خواهد بود. USERNAME نام حساب کاربری است که می خواهید به آن وارد شوید و در صورتی که USERNAME را تعیین نکنید، به صورت پیشفرض حساب کاربری root در نظر گرفته خواهد شد.

su USERNAME

su – USERNAME

تفاوت در su و – su در چیست

مطابق با راهنمای دستور su استفاده از – (و یا l- یا login–) باعث یک login واقعی و مستقیم به حساب کاربری USERNAME خواهد شد. فرض کنید با کاربری به نام amirnami به سیستم لاگین کرده اید و حال می خواهید از درون ترمینال (یا در محیط گرافیکی و یا در ترمینال های مجازی) به حساب کاربری root وارد شوید، پس دو دستور زیر را باید اجرا کنید

su –   OR   su – root

استفاده از دستورهای بالا باعث یک لاگین مستقیم به حساب کاربری root خواهد شد. اما تفاوت میان دو روش استفاده از su و – su در چیست؟ در واقع تفات در مقدار دهی متغیرهای محیطی است که پس از اجرای دو دستور صورت می گیرد.

  • تفاوت در مقدار متغیر HOME : فرض اینکه کاربر amirnami دستور su را اجرا کند، پس از لاگین به حساب root، مقدار متغیر HOME پش از لاگین برابر با متغیر خانگی amirnami خواهد بود.

env | grep HOME

  • تفاوت در مقدار متغیر PATH : با اجرای دستور su و پس از لاگین به حساب کاربری root، مقدار متغیر PATH برابر با مقدار متغیر PATH کاربر amirnami خواهد بود، در صورتی که با اجرای دستور – su مقدار این متغیر برابر مقدار متغیر PATH کاربر root خواهد بود.

env | grep PATH

  •  تفاوت در مقدار متغیر USER : این متغیر شامل نام کاربری است که به سیستم لاگین کرده است. به دلیل آنکه – su باعث یک لاگین واقعی به حساب کاربری root می شود، پس با اجرای – su مقدار متغیر USER برابر root خواهد بود اما با اجرای su مقدار آن amirnami باقی خواهد ماند.

env | grep USER

همچنین می توانید با اجرای دستور env تغییرات میان مقدار متغیر های دیگر را نیز مقایسه کنید.



برچسب ها : , , , , ,