ความแตกต่างระหว่างคำสั่งsudo -i
และsudo su -
คืออะไร?
พวกเขาเหมือนกันหรือไม่
ความแตกต่างระหว่างคำสั่งsudo -i
และsudo su -
คืออะไร?
พวกเขาเหมือนกันหรือไม่
คำตอบ:
พวกมันอาจให้ฟังก์ชั่นใกล้เคียงกับสิ่งเดียวกัน แต่ดูเหมือนว่า 'sudo -i' นั้นมีน้ำหนักเบากว่าและช่วยให้การอ้างอิงกลับมีประโยชน์ในสภาพแวดล้อมของคุณ
คุณสามารถดูกระบวนการพิเศษได้โดยดูที่ 'ps auxf' (f ทำให้คุณมีมุมมองฟอเรสต์)
sudo -i ให้ต้นไม้กระบวนการนี้
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4675 0.6 0.0 19512 2260 pts/0 S+ 23:42 0:00 | \_ -bash
sudo su -ให้ต้นไม้กระบวนการนี้
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4687 0.5 0.0 43256 1488 pts/0 S 23:42 0:00 | \_ su -
root 4688 0.5 0.0 19508 2252 pts/0 S+ 23:42 0:00 | \_ -su
โปรดทราบว่าพวกเขากำลังเริ่มต้นจากกระบวนการ bash เดียวกัน pid, 4482 แต่ su - ดูเหมือนว่าจะเกิดอีกขั้นตอนหนึ่ง)
'sudo' ครั้งแรกของคุณเพิ่มระดับการเข้าถึงของคุณเป็นรูทแล้ว การรัน su โดยไม่ระบุชื่อผู้ใช้ภายใน sudo เปลี่ยนผู้ใช้ปัจจุบันเป็นรูทสองครั้ง
อีกวิธีในการตรวจสอบนี้คือการรันทั้งสองคำสั่งด้วย strace -f
strace -f -o sudoi sudo -i
VS
strace -f -o sudosu sudo su -
ถ้าคุณทำให้ทั้งสองสเตรตแตกต่างกันคุณจะเห็นว่ามีการวิ่งของ exudo มากกว่าสำหรับ sudo su
อีกหนึ่งสิ่ง.
sudo -iรักษาตัวแปรสภาพแวดล้อมพิเศษที่กำหนดโดย SUDO
SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000
sudo su - clobbers ตัวแปรเหล่านั้น
คำตอบ Shot:ไม่พวกเขาไม่เหมือนกัน
คำตอบยาว: sudo และ su - เป็นโปรแกรมที่แตกต่างกันซึ่งทำงานเดียวกันนั่นคือการยกระดับคุณไปสู่สิทธิ์ของรูท
suเคยเป็นวิธีที่แท้จริงของการกลายเป็นรากบนระบบ Linux อย่างไรก็ตามมีความจำเป็นต้องแยกสิทธิพิเศษและทิ้งข้อมูลการตรวจสอบไว้ นอกจากนี้เมื่อคุณทำซู -ทุกสิ่งที่คุณทำนั้นเป็นเหมือนรากและเป็นอันตรายที่จะมีพลังมาก นี่คือที่ที่ sudo เข้ามาช่วย
sudoมีลักษณะบางอย่างที่ซูไม่ได้ องค์ประกอบสำคัญใน sudo คือความสามารถในการเรียกใช้คำสั่ง "หนึ่ง" ในฐานะรูทแล้วปล่อยสิทธิ์ให้ผู้ใช้ปกติ ตัวอย่าง: ลบไฟล์ที่ root เป็นเจ้าของ
sudo rm /root/someFile
คำสั่งนี้จะลบไฟล์เพราะ sudo จะยกระดับให้คุณรูททุกครั้งที่คุณใช้คำสั่ง sudo ก่อนคำสั่งอื่น คำสั่งถัดไปที่คุณรันจะทำงานเหมือนผู้ใช้ปกติ (เว้นแต่คุณจะต่อท้ายคำสั่ง sudo ในตอนต้น) สิ่งนี้จะช่วยให้คุณสามารถทำงานด้านการจัดการได้สำเร็จจากนั้นปล่อยสิทธิพิเศษในการช่วยคุณหลีกเลี่ยงสภาวะอันตราย
sudo ยังให้ประโยชน์อื่น ๆ เช่นการ จำกัด ชุดโปรแกรมที่ผู้ใช้สามารถเรียกใช้คำสั่งบันทึกการทำงานภายใต้ sudo และสิ่งอื่น ๆ สำหรับข้อมูลเพิ่มเติมsudo สั้น
เมื่อคุณทำsu -หรือsudo -iคุณทำสิ่งเดียวกัน นั่นคือการรูต แต่จำไว้ว่าsuและsudoนั้นแตกต่างกันโดยสิ้นเชิงและมอบเครื่องมือต่าง ๆ ให้คุณในฐานะผู้ดูแลระบบ ส่วนตัวฉันไม่เคยเรียกใช้ su - และนโยบาย pamของฉันห้ามไม่ให้มีใครทำงานได้ ในระบบของฉันคุณจะต้องใช้สาเหตุ sudo ของผลประโยชน์เพิ่ม
ข้อมูลเพิ่มเติม: การใช้และการเปิดใช้งาน sudo
su
ยังสามารถเรียกใช้เพียงคำสั่งเดียว:su -c 'command ...'
sudo -i
และsudo su -
ไม่ระหว่างและsudo
su
sudo su -
ไม่มีจุดหมายดังนั้น?