sudo -i แตกต่างจาก sudo -s อย่างไร…

ทำไมต้องใช้ sudo …
 เมื่อทำงานกับ Linux server แน่นอนว่าจำเป็นจะต้องมี user สำหรับเข้าสู่ระบบ ซึ่งสามารถสร้าง normal user ซึ่งเป็นผู้ใช้งานระดับทั่วไปได้ตามต้องการ แต่เมื่อต้องการติดตั้ง แก้ไข หรือ ตั้งค่า ใดๆ กับระบบ จำเป็นต้องใช้ root user โดยปกติแล้วการเปลี่ยนสิทธิ์จาก normal user ไปเป็น root user สามารถทำได้โดยคำสั่ง “su” ซึ่งจำเป็นต้องใช้ password ของ root user หากมีผู้ดูแลระบบมากกว่า 1 คน และ ไม่ต้องการให้ password ของ root user กับทุกคน คำสั่ง “sudo” สามารถช่วยในจัดการให้สิทธิ์สำหรับ normal user ได้ อีกทั้งยังสามารถใช้ระบุตัวตน และ ช่วงเวลาในการใช้สิทธิ์ของ root user จาก log ไฟล์ได้

sudo -i แตกต่างจาก sudo -s อย่างไร…
สำหรับ 2 options ของคำสั่ง sudo นี้ มีความใกล้เคียงกันมาก จุดประสงค์เพื่อการเปลี่ยนสิทธิ์จาก normal user ไปเป็น root user เหมือนกันทั้ง 2 options แต่จะมีความแตกต่างกันเล็กน้อยดังนี้

sudo -i 
จะเป็นการเปลี่ยนสิทธิ์เป็น root user เปลี่ยน home directory เป็นของ root และเรียกใช้งาน root’s profile ที่ไฟล์ .bash_profile หากมีการ declare environment variable ไว้ในไฟล์นี้ ด้วย root user หลังจากใช้คำสั่ง sudo -i ก็ได้จะ environment ต่างๆ มาพร้อมกับสิทธิ์ของ root user

sudo -s 
จะเป็นการการเปลี่ยนสิทธิ์เป็น root user เฉพาะส่วนของ shell เท่านั้นแต่จะไม่มีการเรียกใช้ root’s profile ยังคงใช้งาน environment ของ normal user และยังคงอยู่ใน home directory ของ normal user โดย option นี้เหมาะกับการใช้งานคำสั่งที่จำเป็นต้องใช้สิทธิ์ของ root user แต่ยังใช้งานข้อมูลภายใน home directory ของ normal user

sudo -i VS sudo -s