“ sudo -s” ทำอะไรได้จริง?


26

ฉันใช้ Ubuntu 10.04

ฉันสังเกตว่าหลังจากฉันเรียกใช้ " sudo -s " ในเทอร์มินัลพรอมต์เปลี่ยนจาก

" XXX @ XXX "

ไปยัง

" root @ XXX "

ดูเหมือนว่ามันจะเปลี่ยนเป็นสิทธิ์รูท

แต่เมื่อฉันตรวจสอบเอกสารของคำสั่ง "sudo" ที่นี่จะอธิบายเรื่องอื่นของ "sudo -s" ทุกคนสามารถอธิบายให้ฉันว่า " sudo -s " ทำอะไรได้บ้าง


6
คุณควรถามเรื่องนี้มากกว่าที่askubuntu.com

7
ทำไม askubuntu.com sudoแทบจะเป็นเฉพาะอูบุนตู ...
Dave Sherohman

คำตอบ:


9

sudoคำสั่งทั้งสองไม่สอดคล้องกันจริงๆ - คำสั่งเปลี่ยนผู้ใช้ไม่ว่าจะเป็นรูทหรือผู้ใช้ที่คุณระบุด้วย-uสวิตช์ สิ่งที่ทำทั้งหมด-sนี้คือทางลัดสำหรับการเริ่มเชลล์ในฐานะผู้ใช้นั้น มันเทียบเท่ากับ:

sudo $SHELL

ยกเว้นว่าเป็นไปได้ว่าจะมีทางเลือกอื่น/bin/shหรือหากSHELLไม่มีการตั้งค่าไว้


6

sudo -sรันเชลล์ที่ระบุใน$SHELLตัวแปรสภาวะแวดล้อมของคุณเป็น superuser / root -uคุณสามารถระบุผู้ใช้คนอื่นใช้

$SHELLตัวแปรสภาพแวดล้อมมีเส้นทางไปยังเปลือกเข้าสู่ระบบเริ่มต้นของผู้ใช้ etc/passwdการตั้งค่าที่เกิดขึ้นจริงสำหรับโปรแกรมเปลือกเริ่มต้นมักจะอยู่ใน ขึ้นอยู่กับสิ่งที่คุณทำในเซสชันปัจจุบันตัวแปร $ SHELL อาจไม่มีโปรแกรมเชลล์ที่คุณใช้อยู่ในปัจจุบัน หากคุณเข้าสู่ระบบโดยอัตโนมัติด้วย zsh เช่น แต่แล้ววิงวอนทุบตี $ SHELL /bin/zshจะไม่เปลี่ยนแปลงจาก

แสดงผู้ใช้ปัจจุบันและโปรแกรมเชลล์: echo $(whoami) is logged in and shell is $0

  • whoami พิมพ์ชื่อผู้ใช้ที่ผู้ใช้ทำงานอยู่
  • $0 มีชื่อ / เส้นทางของโปรแกรมที่กำลังทำงานอยู่ (โปรแกรมเชลล์ในกรณีนี้)

3

จากคู่มือ:

sudo อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตรันคำสั่งเป็น superuser หรือผู้ใช้รายอื่นตามที่ระบุในไฟล์ sudoers

-s Shell รันเชลล์ที่ระบุโดยตัวแปรสภาวะแวดล้อม SHELL หากถูกตั้งค่าหรือเชลล์ตามที่ระบุใน passwd (5)

ที่จริงจังกว่านั้น sudo -s รันตัวแปรสภาวะแวดล้อมเชลล์ เนื่องจากคุณไม่ได้เพิ่มตัวแปรใด ๆ จึงเรียกใช้ตามที่ระบุใน passwd และเชื่อมต่อคุณในฐานะรูท


1
ไม่ชัดเจนจากคู่มือว่าหากคุณไม่ได้ให้ผู้ใช้จะมีค่าเริ่มต้นเป็นรูท คุณจะต้องอ่านคำอธิบายสำหรับ-uตัวเลือกเพื่อเรียนรู้ว่า แต่สำหรับคนที่ไม่คุ้นเคยกับการที่พวกเขาจะไม่ทราบว่าจะมองไปที่sudo -u
wisbucky


0

ดูเหมือนว่าจะสร้างอินสแตนซ์อื่นของเชลล์ที่ด้านบนของเชลล์ปัจจุบัน แต่มีสิทธิ์รูท ฉันจะเดิมพันว่าหลังจากคุณทำsudo -sถ้าคุณพิมพ์ exit คุณจะกลับไปที่เปลือกเดิม


-1

sudo -s ให้คุณเรียกใช้คำสั่งที่คุณได้รับอนุญาตล่วงหน้า [ดู / etc / sudoers] โดยอาจขอให้คุณยืนยัน ID ปัจจุบันของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.