sudo ปลอดภัยกว่าการใช้ su โดยตรงอย่างไรหากผู้ใช้ได้รับสิทธิ์เข้าถึงคำสั่งทั้งหมด?


40

ดังนั้นฉันได้อ่านถึงความแตกต่างระหว่างการใช้suและsudoและทุกคนดูเหมือนจะเห็นด้วยว่าsudoวิธีการนั้นปลอดภัยกว่าการอนุญาตให้เข้าถึงบัญชีรูทเอง พวกเขาบอกว่าด้วยบัญชีรูทคุณสามารถทำลายระบบทั้งหมดของคุณด้วยคำสั่งเดียว ฉันเข้าใจสิ่งนี้ แต่ผู้ใช้เริ่มต้นที่สร้างขึ้นในระบบยังสามารถเข้าถึงคำสั่งทั้งหมดโดยใช้ sudo su -lฉันนี้สามารถหาได้โดยการเรียก หากเป็นกรณีนี้ฉันสามารถเรียกใช้sudo <game-ending command>เพื่อทำลายระบบของฉัน ดังนั้นวิธีการนี้จะดีขึ้นหรือปลอดภัยกว่าเดิมซึ่งทำให้ฉันสามารถเข้าถึงบัญชีผู้ใช้ขั้นสูงได้โดยตรง ฉันสามารถเรียกใช้คำสั่งเดียวกันทั้งหมดได้ ...

เป็นเพราะการใช้sudoในบรรทัดคำสั่งฉันบอกคอมพิวเตอร์อย่างชัดเจนว่าฉันรู้ว่าฉันกำลังทำอะไรอยู่ พวกเขาคิดว่าคนจะลืมพวกเขาอยู่ภายใต้บัญชีผู้ใช้ super เว้นแต่ว่าพวกเขาพูดอย่างชัดเจน?

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



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

คำตอบ:


40

ส่วนตัวฉันไม่จำเป็นต้องคิดว่ามันปลอดภัยกว่าและผลประโยชน์ส่วนใหญ่ (ของ sudo) อยู่ในระบบผู้ใช้หลายคน ในระบบผู้ใช้เดียวมันอาจเป็นการล้าง

ประโยชน์ที่ได้รับ (ไม่เรียงตามลำดับ):

  • sudo มีการบันทึกที่เหนือกว่า sudo บันทึกแต่ละคำสั่ง
  • sudo ช่วยให้การควบคุมเกรนละเอียดยิ่งขึ้น หนึ่งสามารถกำหนดค่า sudo เพื่อให้การเข้าถึงรากบางคำสั่ง แต่ไม่ใช่ทั้งหมด
  • sudo ใช้รหัสผ่านการเข้าสู่ระบบ วิธีนี้จะช่วยป้องกันไม่ให้รหัสผ่านรูท (ตามที่คุณต้องการกับ su) และเกี่ยวข้องกับประเด็นข้างต้นเกี่ยวกับการควบคุม / การเข้าถึงรูทที่ละเอียดยิ่งขึ้น
  • ใน Ubuntu ตามค่าเริ่มต้นบัญชีรูทจะถูกล็อค สิ่งนี้จะทำการแคร็กเกอร์เพื่อล็อกอิน (รีโมตผ่าน say ssh) พวกเขาจะต้องเดาทั้งชื่อผู้ใช้และรหัสผ่าน หากบัญชีรูทไม่ได้ล็อคเช่นเดียวกับ su ดังนั้นพวกเขาจะต้องถอดรหัสรหัสผ่านของรูทเท่านั้น
  • sudo -iอาจเป็นวิธีที่ดีที่สุดในการแยกตัวแปรสภาพแวดล้อมของรูทออกจากผู้ใช้ของคุณ สิ่งนี้เกิดขึ้นเป็นครั้งคราว แต่มีความลับปานกลาง ดูhttps://help.ubuntu.com/community/RootSudo#Special_notes_on_sudo_and_shells
  • บางคนรู้สึกว่าต้องพิมพ์ sudo ก่อนทุกคำสั่งที่พวกเขาต้องการเรียกใช้ในฐานะรูทหรือการหมดเวลาของ sudo ทำให้พวกเขาหยุดและคิดอย่างชัดเจนมากขึ้นและลดข้อผิดพลาดหรือเรียกใช้คำสั่งที่ผิดพลาด หากทำเช่นนั้นจะช่วยคุณได้ว่าจะเป็นประโยชน์เช่นกัน

อาจมีประโยชน์มากกว่า แต่ที่สำคัญที่สุดคือ IMHO

ดูเพิ่มเติมที่ - https://help.ubuntu.com/community/RootSudo

หากต้องการลองตอบความคิดอื่นของคุณ:

  • ไม่มีอะไรเกี่ยวกับ su หรือ sudo ที่ป้องกันไม่ให้คุณเรียกใช้รหัสที่เป็นอันตรายตราบใดที่คุณรู้รหัสผ่าน ไม่ปลอดภัยหรือดีกว่า
  • แครกเกอร์สามารถรับการเข้าถึงเชลล์ได้หลายวิธี เมื่อคุณเห็น "เรียกใช้รหัสโดยพลการ" ในประกาศความปลอดภัย - https://usn.ubuntu.com/usn/ - นั่นหมายความว่าแคร็กเกอร์สามารถเรียกใช้ / bin / bash หรือรหัสอื่น ๆ ดังนั้นแครกเกอร์สามารถหาการเข้าถึงเชลล์ได้โดยไม่ต้องรู้ชื่อล็อกอินหรือรหัสผ่านของคุณ ทั้ง sudo หรือ su ไม่ช่วยในเรื่องนี้
  • หากแคร็กเกอร์มีการเข้าถึงเชลล์พวกเขาสามารถทำความเสียหายได้มากโดยไม่ต้องเข้าถึงรูท ตัวอย่างเช่น ransomware ที่เข้ารหัสข้อมูลส่วนตัวของคุณทั้งหมด
  • หากแคร็กเกอร์มีสิทธิ์เข้าถึงเชลล์สำหรับบัญชีที่มีการเข้าถึงรูทผ่านทาง su หรือ sudo แคร็กเกอร์สามารถรับสิทธิ์การเข้าถึงรูทผ่านวิธีการต่างๆนอกเหนือจากขอบเขตของการสนทนานี้ ทั้ง sudo หรือ su นั้นเหนือกว่าในส่วนนี้เช่นกัน

ดังนั้นในขณะที่คุณสังเกตเห็นปัญหาหรือข้อบกพร่องที่มี sudo, su มีช่องโหว่เดียวกันแน่นอนและ su ไม่เหนือกว่า sudo ในด้านเหล่านั้น IMHO


มันจะเป็นการดีถ้ามีการเลือกที่จะอนุญาตให้ผู้ใช้ทุกคนควบคุมการเปิดปิด (poweroff และ reboot) เมื่อ destop inatallation มากกว่ารายการ sudoers หรือมีชื่อกลุ่ม
mckenzm

8
ฉันเชื่อว่าข้อได้เปรียบที่ยิ่งใหญ่ที่สุดคือการพิสูจน์ว่าแต่ละคำสั่งจำเป็นต้องได้รับอนุญาตจากผู้ใช้ขั้นสูง ฉันพบในประสบการณ์ครั้งแรกของฉันกับ Linux ที่ฉันมักจะจบลงด้วยการทำงานเป็น root ในเทอร์มินัลอย่างน้อยหนึ่งเมื่อฉัน tinkered กับระบบ น่าเสียดายที่มันง่ายมากที่จะออกคำสั่งทำลายที่เทอร์มินัลโดยการเข้าใจผิดหรือพิมพ์ผิด หากสิ่งนั้นอยู่ใน 'รูตเทอร์มินัล' อาจส่งผลให้มีการกู้คืนจากการสำรองข้อมูลหรือติดตั้งใหม่ sudo ปกป้องฉันจากหลาย ๆ ครั้ง!
rolinger

14
การไม่ใช้รหัสผ่านรูทอาจเป็นข้อได้เปรียบที่ยิ่งใหญ่ที่สุดของ sudo คุณสามารถให้สิทธิ์รูทโดยไม่เปิดเผยความลับใด ๆ
Thorbjørn Ravn Andersen

คุณสามารถ จำกัด คำสั่งไม่เพียง แต่คุณสามารถ จำกัด การขัดแย้งที่ระบุ แต่ฉันไม่เห็นด้วยว่าการถูกล็อครูตนั้นเกี่ยวข้องกับมัน เนื่องจากคุณสามารถกำหนดค่า ssh เพื่อไม่อนุญาตให้ล็อกอินรูท แม้ว่าจะมีอย่างอื่นเมื่อเทียบกับ sudo: sudo คุณใช้รหัสผ่านผู้ใช้ซึ่งเป็นรหัสผ่านน้อยกว่าที่จะถูกบุกรุกและโดยทั่วไปจะไม่เป็นสิ่งที่ดี เช่นเดียวกับทุกสิ่งในโลกนี้มีวิธีที่แตกต่างกันในการทำบางสิ่งบางอย่างและนั่นไม่ได้หมายความว่าวิธีการหนึ่งจะถูกต้องมากกว่าที่อื่น ๆ 100% ของเวลาถ้าเคย แล้วมีการตั้งค่า
Pryftan

แต่ otoh ถ้ามีผู้ใช้มากกว่าหนึ่งคนที่ต้องการการเข้าถึงรูท (ซึ่งไม่ใช่สิ่งที่ฉันจะเข้าไปเพราะนั่นเป็นเพียง - เป็นการสนทนาที่ดีที่สุด) จากนั้น sudo มีข้อได้เปรียบที่นั่น
Pryftan

10

ลองนึกภาพคุณมีเวลา 20 นาทีในการทำสิ่งที่ซับซ้อน คุณค่อนข้างหิวและต้องรีบเร่ง “ ลองใช้ซู” คุณพูด “ มันจะช่วยประหยัดเวลา” เป็นเหตุผลของคุณ

โดยบังเอิญคุณพิมพ์

rm -rf /*

แทน

rm -rf ./*

ระบบของคุณกำลังปิดตัวเองและคุณมีเวลา 10 นาทีจนกว่าจะถึงกำหนด

หากคุณเลือกอย่างชัดเจนเมื่อคุณต้องการรูทคุณสามารถลดโอกาสที่จะเกิดเหตุการณ์นี้ได้ ไม่จำเป็นต้องรูทrm -r ./*ดังนั้นทำไมจึงต้องใช้รูท ทำไมต้องเสี่ยง?

นั่นคือสิ่งที่“ ปลอดภัย” หมายถึงที่นี่ การลดความเสี่ยงของผู้ใช้ (ผู้ใช้ทั้งหมดไม่ใช่แค่ผู้เริ่มต้น) ลดความผิดพลาดร้ายแรง

แน่นอนว่านี่เป็นตัวอย่างที่ยอดเยี่ยมที่ไม่ควรได้รับอนุญาตให้เกิดขึ้นในสภาพแวดล้อมการผลิต

การรักษาความปลอดภัยที่ชาญฉลาดมีบางสิ่งที่ sudo ดีกว่าเช่นกัน ในฐานะที่เป็น@Panther กล่าวว่า - บันทึกข้อ จำกัด รหัสผ่าน root เป็น SPOF ฯลฯ )


4
เฮ้คุณไม่ต้องรอนานแค่นี้ถ้าคุณทำ ... chown -R nobody:nobody /หรือแม้กระทั่งchown -R nobody ../หยั่งราก chmodแน่นอนว่ามีปัญหาคล้ายกันในโหมดเรียกซ้ำ แต่จุดที่ดีที่สุดที่คุณทำคือคุณควรจะรูทเมื่อคุณต้องการ สิทธิ์การเข้าใช้งานของคุณที่น้อยลงนั้นดีกว่าสำหรับการใช้งานปกติ
Pryftan

2
+1 สำหรับการเขียนโปรแกรมเมื่อคุณเมาค้าง
abhicantdraw

4
ดังนั้นสิ่งนี้แตกต่างกันsudoอย่างไร คุณเขียนsudo rm -rf /*แทนsudo rm -rf ./*และบูมอีกครั้ง
ilkkachu

2
@ilkkachu ในแง่ของคำสั่งจริงมันสร้างความแตกต่างน้อยที่สุดกับสิ่งที่เกิดขึ้น แต่คุณต้องระบุอย่างชัดเจนว่าคุณต้องการทำสิ่งนี้ในฐานะรูท นั่นคือประเด็น ความปลอดภัยเป็นเรื่องของการบริหารความเสี่ยง แน่นอนคุณยังสามารถสร้างระบบ แต่ยิ่งคุณมีสิทธิ์รูทน้อยลงโอกาสที่จะทำผิดพลาดก็ยิ่งน้อยลงเท่านั้น ความปลอดภัยคือทั้งหมดที่เกี่ยวกับการลดความน่าจะเป็น
dijksterhuis

2
@ilkkachu เพราะคุณจะไม่sudo rm -rf ./*พิมพ์ คุณน่าจะมีสิทธิ์เขียนเพื่อเข้าถึงข้อมูลในไดเรกทอรีปัจจุบันดังนั้นคุณไม่จำเป็นต้องใช้ sudo สำหรับคำสั่งนั้น ดังนั้น typoed ปลายคำสั่งขึ้นเป็นrm -rf /*ซึ่งมีผลเป็นสายยาวของ "ไม่อนุญาต" ข้อความให้คุณรู้ว่าคุณต้องไปctrl-cก่อนที่จะได้รับสิ่งที่คุณสามารถลบจริงแทนเพียงแค่ลบทุกอย่างใน/bin, /boot, /devและครึ่งหนึ่งของ/etcก่อน คุณยังตระหนักถึงบางสิ่งผิดปกติ
Ray

9

ฉันต้องการเพิ่มมุมมองทางประวัติศาสตร์เล็กน้อยให้กับคำตอบอื่น ๆ น่าเสียดายที่ฉันไม่มีแหล่งข้อมูลใด ๆ พร้อมยกเว้นความทรงจำของฉันเกี่ยวกับการอภิปราย Usenet และบทความในนิตยสาร

เมื่อหลายปีก่อนในปี 1990 การแจกจ่ายทำให้การติดตั้ง Linux บนฮาร์ดแวร์ของคุณง่ายขึ้นแม้จะมีความรู้ด้านคอมพิวเตอร์ไม่มากก็ตามดังนั้น Linux จึงเริ่มดึงดูดผู้คนมากขึ้นเรื่อย ๆ ที่ไม่เคยเจาะผู้ดูแลระบบมาก่อน ภาษาของ UN * X บางตัว แต่หลายคนคุ้นเคยกับระบบ (ผู้ใช้คนเดียว) เช่น Windows 95/98 และพวกเขาเรียนรู้ว่างานการบริหารระบบ Linux ส่วนใหญ่ทำให้จำเป็นต้องทำงานภายใต้บัญชี "รูท" ที่แปลก

ดังนั้นผู้ใช้บางคนเพิ่งเข้าสู่ระบบในฐานะรูทและใช้บัญชีนั้นสำหรับการทำงานทุกวัน ทำไมพวกเขาควรจะต้องพิมพ์suและรหัสผ่านรูทอีกครั้งหรืออีกครั้งหรือเข้าสู่ tty ใหม่เพียงคำสั่งผู้ดูแลระบบบางส่วน? แต่การใช้รูทสำหรับทุกสิ่งนั้นไม่ใช่ความคิดที่ดีเพราะคุณอาจทำอันตรายต่อระบบของคุณได้มากกว่าด้วยคำสั่งที่ไม่ใส่ใจในสถานที่ที่ผิด สิ่งนี้นำไปสู่ ​​distro (เป็น SuSE หรือไม่) เพื่อปรับเปลี่ยนพื้นหลังเดสก์ท็อปสำหรับผู้ใช้รูทเพื่อแสดงคำเตือนขนาดใหญ่ที่คุณควรใช้บัญชีนั้นสำหรับงานผู้ดูแลระบบเท่านั้น

ดังนั้นวิธีการของ Ubuntu ที่sudoมีข้อได้เปรียบบางอย่าง (นอกเหนือจากที่ระบุไว้แล้วโดย Panther )

  • คุณไม่สามารถลงชื่อเข้าใช้บัญชีรูทโดยตรง² :-)
  • กระบวนการติดตั้งจะไม่ขอรหัสผ่านรูท (เพิ่มเติม) คุณต้องใช้รหัสผ่านเดียวเท่านั้น (ผู้ใช้ของคุณ)
  • sudoแคชข้อมูลประจำตัวของคุณดังนั้นสำหรับคำสั่งของผู้ดูแลระบบหลาย ๆ ลำดับคุณจะต้องป้อนรหัสผ่านของคุณเพียงครั้งเดียว (ตรงกันข้ามsu) สิ่งนี้จะช่วยลดความอยากที่จะเปิดเชลล์หรือเทอร์มินัลใหม่ด้วยสิทธิ์ของรู
  • และทำให้การบอกผู้ใช้ออนไลน์ง่ายขึ้นและในเอกสารประกอบคำสั่งที่พวกเขาต้องป้อนในฐานะผู้ดูแลและไม่ใช่

¹และสำหรับผู้ที่ไม่กล้าทำเองก็มีฝ่ายติดตั้ง
² แต่คุณสามารถใช้คำสั่งเช่นsudo -iหรือsudo su - rootรับรูทเชลล์หลังจากคุณเข้าสู่ระบบในฐานะผู้ใช้ปกติ
³ แต่คุณรู้แน่นอนว่าคุณไม่ควรคัดลอกและวางคำสั่งจากอินเทอร์เน็ตใช่ไหม


ที่คุณพูดในอูบุนตูที่คุณไม่สามารถทำได้: sudo su -หรือsudo su - root? เพราะผมเคยเห็นการเรียกร้องที่คล้ายกันเช่นว่า MacOS X ไม่ได้มีราก แต่ที่ผิดปกติอย่างสมบูรณ์เมื่อเพียงคนเดียวที่ต้องทำคำสั่งแรก ...
Pryftan

2
แน่นอนว่ามีบัญชีรูท ฉันบอกว่าคุณไม่สามารถ "เข้าสู่ระบบโดยตรง" ซึ่งหมายความว่าคุณไม่สามารถป้อนผู้ใช้rootและรหัสผ่านที่หน้าจอเข้าสู่ระบบหรือ X กล่องโต้ตอบเข้าสู่ระบบและเริ่มเซสชันของคุณเป็นรูต แต่คุณสามารถใช้หนึ่งในคำสั่งของคุณ (ฉันชอบsudo -iเพราะมันสั้นและขี้เกียจ) เพื่อรับรูตเชลล์
Dubu

1
โปรดอ่านความคิดเห็นของฉันอีกครั้ง :) ฉันบอกว่าบางคนบอกว่า MacOS X ไม่มีบัญชีรูท แต่ที่จริงแล้วมันทำและมันทำให้ฉันนึกถึงเรื่องนี้ แต่สำหรับทุกอย่างที่ฉันรู้ devs ที่ Ubuntu นั้นบ้าพอที่จะแก้ไข sudo เพื่อไม่อนุญาตให้ทำเช่นนั้นคำถามของฉัน
Pryftan

1
@Pryftan ดังที่ฉันได้กล่าวไว้ในความคิดเห็นของฉันด้านบนทั้งสองคำสั่งของคุณทำงานและจะให้คุณรูตเชลล์ ฉันจะเพิ่มเข้าไปในคำตอบของฉัน
Dubu

ใช่. ฉันรู้ว่า :) ฉันไม่ได้บอกว่ามันเป็นเรื่องจริงหรือไม่ ฉันกำลังบอกว่ามันทำให้ฉันนึกถึงสิ่งที่บางคนพูด แต่ไม่ถูกต้องในการพูด ดังนั้นการทำให้ส่วนที่เป็นตัวหนา
Pryftan

2

มันเป็นไปได้ที่จะปิดการใช้งานรูทเข้าสู่ระบบผ่าน ssh มานานหลายทศวรรษ วิธีของอูบุนตูในการปิดการใช้งานบัญชีรูทและทำให้ทุกคน sudo ทุกอย่างเป็นเพียงกลไก เพียงแค่ "sudo -s" และคุณมีรูตเชลล์ ปิดใช้งานการล็อกอินรูทผ่าน ssh และปล่อยไว้ที่นั่น


8
... ในบันทึกย่อนั้นการทำคีย์เฉพาะสำหรับการล็อกอินใด ๆ ไม่ใช่แค่บัญชีรูทเท่านั้น
rackandboneman

ใช่. ฉันสังเกตสิ่งนี้ในความคิดเห็นเมื่อไม่กี่นาทีที่ผ่านมา การได้รับสิทธิพิเศษอย่างน้อยที่สุดของ Otoh นั้นดีที่สุดดังนั้นเมื่อคุณต้องการยกระดับสิ่งนี้จะช่วยให้คุณไม่ว่าคุณจะล็อกอินด้วย ssh หรือในเครื่อง และสิ่งที่ @rackandboneman พูดนั้นถูกต้องอย่างแน่นอนเช่นกันแม้ว่าสำหรับฉันฉันจะปิดการใช้งานรากระยะไกลเต็มหยุดแม้จะมีปุ่ม ssh โดยไม่คำนึงถึงระบบ
Pryftan

0

ขึ้นอยู่กับการกำหนดค่าsudo <game ending command>จะไม่จำเป็นต้องทำงาน แน่นอนถ้าการsudoersกำหนดค่าอ่าน "ผู้ใช้ ALL = (ALL) ทั้งหมด" sudoจะไม่มีการป้องกันเพิ่มเติม rmแต่คุณสามารถระบุรายการของคำสั่งที่มีสิทธิพิเศษที่คุณต้องใช้บ่อยเช่นการติดตั้งแพคเกจใหม่และออกคำสั่งที่เป็นอันตรายเช่น

วิธีนี้คุณสามารถเรียกใช้คำสั่งทั้งหมดหากคุณลงชื่อเข้าใช้เป็นrootแต่เนื่องจากคุณจะต้องใช้สิ่งนี้เป็นครั้งคราวเท่านั้นความเสี่ยงในการทำงาน<game ending command>จะลดลงอย่างมาก


1
และอาร์กิวเมนต์ที่เฉพาะเจาะจงกับคำสั่งด้วย
Pryftan

1
และต่อกลุ่มมากกว่าต่อผู้ใช้ การใช้กลุ่มเป็นสิ่งที่มีค่าในสภาพแวดล้อมที่มีผู้ใช้หลายคนซึ่งเจ้าหน้าที่อาจมาและไปและคุณอาจต้องการบทบาทที่เฉพาะเจาะจง
Panther

0

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

ในร้านค้าส่วนใหญ่มันไม่ได้เป็นประโยชน์ที่สำคัญที่สุด

ด้วย sudo คุณจะรู้ว่าใครทำคำสั่งเฉพาะ

ตอนนี้อาจไม่สำคัญสำหรับคุณ ตัวอย่างเช่นคุณอาจเป็นผู้ใช้คอมพิวเตอร์คนเดียวของคุณ ถ้าเป็นเช่นนั้น sudo อาจจะไม่ดีไปกว่า su

แต่โฮสต์จำนวนมากมีผู้ดูแลระบบมากกว่าหนึ่งคน

sudo นั้นมีประโยชน์มากเพราะถ้ามีคนทำสิ่งผิด sudo จะบอกให้คุณรู้ว่าใครทำ

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

เป็นโบนัสเมื่อมีคนรู้ว่าการกระทำของพวกเขาถูกบันทึกไว้พวกเขามักจะระมัดระวังมากขึ้น

Sudo ไม่สมบูรณ์

หากคนสองคนทำ "sudo sh" ในเวลาเดียวกันมันอาจเป็นเรื่องยากที่จะระบุคำสั่งแอตทริบิวต์หนึ่งหรืออื่น ๆ

และผู้ดูแลระบบที่เป็นอันตรายสามารถลบหรือแก้ไขบันทึกได้แม้ว่าการทำเช่นนั้นจะไม่ง่ายอย่างที่คิดทุกคนโดยเฉพาะอย่างยิ่งถ้าคุณมีการบันทึกแบบรวมศูนย์

sudo ไม่จำเป็นต้องหยุดการกระทำที่โง่หรือเป็นอันตรายด้วยเหตุผลทั้งหมดที่ระบุไว้ในคำถามเดิม

แต่มันให้โอกาสที่ดีกว่าในการป้องกันการเกิดซ้ำ


1. เฉพาะเมื่อคุณใช้เวลาในการกำหนดค่าอย่างเหมาะสม ระบบ Ubuntu เริ่มต้นที่ไม่ทำ (และทำไม่ได้) 2. เฉพาะในกรณีที่ผู้ใช้ไม่มีวิธีแก้ไขบันทึกหลังความจริงซึ่งผู้ใช้สามารถยกเว้นว่าคำสั่งที่พวกเขาสามารถเรียกใช้ได้นั้น จำกัด (ซึ่งไม่ได้อยู่ในกรณีการใช้งานเริ่มต้นของ Ubuntu)
ilkkachu

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

@Panther ชื่อคำถามนั้นบอกว่า "... หากผู้ใช้ได้รับสิทธิ์เข้าถึงคำสั่งทั้งหมดหรือไม่" ดังนั้นฉันคิดว่าพวกเขาหมายถึงการกำหนดค่าเริ่มต้นตามปกติของ Ubuntu ที่sudoให้ทุกอย่าง แน่นอนว่าคุณสามารถกำหนดค่าให้ จำกัด คำสั่งที่ผู้ใช้ได้รับอนุญาตให้เรียกใช้ แต่ฉันไม่คิดว่าเป็นกรณีในคำถามตามที่ถาม
ilkkachu

ขยายคำตอบแล้ว
Ben Aveling

@ilkkachu - อ่านคำตอบของฉันอีกครั้ง "โดยส่วนตัวแล้วฉันไม่คิดว่ามันปลอดภัยกว่าและประโยชน์ส่วนใหญ่ (ของ sudo) นั้นอยู่บนระบบผู้ใช้หลายคนในระบบผู้ใช้เดียวมันอาจจะเป็นการล้าง" จากนั้นฉันก็อธิบายข้อดีอื่น ๆ ของ sudo ซึ่งหนึ่งในนั้นก็คือมันสามารถกำหนดค่าได้
Panther
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.