“ sudo su -” ถือว่าเป็นวิธีที่ไม่ดีหรือไม่?


13

พื้นหลัง

ฉันรู้ว่าความแตกต่างระหว่างsu -, sudo su -และsudo <command>:

  • su - - สลับผู้ใช้เป็นรูทต้องใช้รหัสผ่านรูท
  • sudo su - - สลับผู้ใช้เป็นรูทต้องการเพียงรหัสผ่านของผู้ใช้ปัจจุบัน
  • sudo <command>- ให้สิทธิ์การเข้าถึงรูตสำหรับคำสั่งเฉพาะ ต้องใช้รหัสผ่านของผู้ใช้ปัจจุบันเท่านั้น

คำถามของฉันเกี่ยวกับการใช้หรือไม่sudo su -เป็นวิธีปฏิบัติที่ปลอดภัยในสภาพแวดล้อมการผลิต

ความคิดบางอย่าง:

  1. ดูเหมือนว่าการอนุญาตให้sudo su -มีความเสี่ยงด้านความปลอดภัยโดยการเข้าถึงบัญชีรูทขึ้นอยู่กับรหัสผ่านของผู้ใช้แต่ละคน แน่นอนว่าสิ่งนี้อาจลดลงได้ด้วยการบังคับใช้นโยบายรหัสผ่านที่เข้มงวด ฉันไม่คิดว่าsu -จะดีไปกว่านี้เพราะต้องการให้ผู้ดูแลระบบแชร์รหัสผ่านรูทจริง

  2. การอนุญาตให้ผู้ใช้สลับไปยังบัญชีรูททั้งหมดทำให้ยากต่อการติดตามว่าใครเป็นผู้เปลี่ยนแปลงระบบ ฉันเคยเห็นเคสในงานประจำวันของฉันซึ่งมีผู้ใช้หลายคนsudo su -เข้าถึง สิ่งแรกที่ผู้ใช้ทำเมื่อลงชื่อเข้าใช้ระบบจะทำงานsudo su -ก่อนเริ่มทำงาน จากนั้นวันหนึ่งมีบางอย่างหยุดพักและไม่มีการตรวจสอบย้อนกลับว่าใครเป็นคนขับrm -rf *ผิดไดเรกทอรี

คำถาม

เมื่อพิจารณาจากข้อกังวลข้างต้นเป็นความคิดที่ดีหรือไม่ที่จะอนุญาตให้ผู้ใช้ใช้งานsudo su -หรือแม้แต่ใช้งานsu -เลย?

มีเหตุผลใดบ้างที่ผู้ดูแลระบบจะกำหนดค่าบัญชีผู้ใช้สำหรับsudo su -หรือsu -แทนsudo <command>(นอกเหนือจากความเกียจคร้าน)?

หมายเหตุ:ฉันไม่สนใจเคสที่ผู้ใช้เรียกใช้sudo su -หรือsu -เป็นผู้ดูแลระบบจำเป็นต้องทำการเปลี่ยนแปลงระบบเมื่อเข้าถึง ssh โดยตรงถูกปิดใช้งานสำหรับผู้ใช้รูท


4
sudo su -ค่อนข้างโง่เพราะsudo -iทำสิ่งเดียวกันโดยมีการกดแป้นน้อยกว่า
Michael Hampton

ฉันเห็นด้วยกับ @MichaelHampton อย่างไรก็ตามฉันมักจะเรียกใช้sudo bashเพียงเพื่อหลีกเลี่ยงค่าใช้จ่ายในการเข้าสู่ระบบบางส่วน อย่างไรก็ตามเมื่อไตร่ตรองก็ไม่อาจหลีกเลี่ยงได้มากเท่ากับที่ฉันจินตนาการ
ericx

2
@ericx พิจารณาsudo -sด้วย
Michael Hampton

คำตอบ:


11

ลองดูกรณีของคุณ:

 su -

จะรัน / bin / sh ในฐานะผู้ใช้รูทโดยใช้สภาพแวดล้อมรูท ต้องการรหัสผ่านรูทและการบันทึกอาจถูกบันทึกไว้ทั้งนี้ขึ้นอยู่กับการตั้งค่า syslog (โดยปกติแล้วจะเป็นค่าเริ่มต้นที่ /var/log/auth.log)

 sudo /bin/sh

จะรันเชลล์ในฐานะผู้ใช้รูทโดยใช้ชุดตัวแปรสภาพแวดล้อมปัจจุบัน (มีข้อยกเว้นบางอย่างที่จะถูกกำหนดในไฟล์ sudoers) รหัสผ่านเป็นรหัสผ่านผู้ใช้ต้นทางและไม่ใช่รหัสผ่านผู้ใช้รูท sudo มักเข้าสู่ระบบ

 sudo su -

จะเรียกใช้เชลล์ (โดยปกติ / bin / sh) เมื่อผู้ใช้รูทตั้งค่าสภาพแวดล้อมในฐานะผู้ใช้รูท นี้จะต้องใช้รหัสผ่านของผู้ใช้แหล่งที่มาและโดยทั่วไปจะถูกบันทึกไว้

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


ฉันคิดถึงความแตกต่างของสภาพแวดล้อมระหว่าง sudo และ su อย่างสมบูรณ์ ขอขอบคุณ!
Kingand

0

* จากความกังวลข้างต้นเป็นความคิดที่ดีที่จะอนุญาตให้ผู้ใช้งานใช้ sudo su *

ไม่ไม่ได้อยู่ในความคิดของฉัน มันไม่มีประโยชน์ในทางปฏิบัติมากกว่าการอนุญาตให้พวกเขา su ยกเว้นว่าพวกเขาไม่ต้องการรหัสผ่านรูทเพื่อทำ

หรือ su - เลย?

เนื่องจากฉันปิดการใช้งานการเข้าสู่ระบบรากเสมอ su เป็นสิ่งที่จำเป็นและมีความสมดุลทำให้เซิร์ฟเวอร์มีความปลอดภัยมากขึ้น


2
ไม่ต้องการให้ทุกคนแบ่งปันรหัสผ่านรูทอย่างจริงจังมีข้อได้เปรียบทางด้านความปลอดภัยที่สำคัญซึ่งไม่ควรมองข้าม
Falcon Momot

0

OP ดูเหมือนจะให้เหตุผลที่ดีมากมายที่จะไม่อนุญาต / ส่งเสริมการใช้งานทั่วไปให้เรียกใช้sudo bashหรือsudo su -เนื่องจากสวิตช์เหล่านั้นไปยังโหมดที่มีประสิทธิภาพทั้งหมดที่ internals ซึ่งโดยทั่วไปไม่ได้เข้าสู่ระบบ และพวกเขาอาจลืมว่าพวกเขาอยู่ในโหมดนั้นและทำอะไรบางอย่าง ... น่าเสียดาย

ดังนั้นดูเหมือนว่าปลอดภัยมากขึ้นที่จะให้ผู้ใช้ส่วนใหญ่ถูก จำกัด ให้ทำงานsudo on/a/particular/command/หรือรายการคำสั่ง วิธีนั้นทุกคำสั่ง sudo จะถูกบันทึก

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

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