ไม่กี่วันที่ผ่านมาฉันได้รับคำถามจากมิเกลผู้อ่านบล็อกทั่วไปและผู้แสดงความคิดเห็นเชิงบังคับเกี่ยวกับ อะไรคือความแตกต่างระหว่าง sudo y su. โดยเฉพาะอย่างยิ่งมิเกลกังวลว่าวิธีหนึ่งมีความปลอดภัยมากกว่าวิธีอื่นหรือไม่ มันเกิดขึ้นที่ฉันได้อ่าน sudo ไม่ปลอดภัยเพียงพอ และต้องการทราบข้อมูลเพิ่มเติมนี่เป็นอีกโพสต์สำหรับผู้ที่ขอบทความเพิ่มเติมเกี่ยวกับ ความลึกลับของขั้ว. |
Su
โปรแกรม su อนุญาตให้คุณใช้เชลล์ของผู้ใช้รายอื่นโดยไม่ต้องออกจากระบบเซสชันปัจจุบัน โดยทั่วไปจะใช้เพื่อรับสิทธิ์ root สำหรับการดำเนินการดูแลระบบโดยไม่ต้องออกจากระบบและเข้าสู่ระบบอีกครั้ง สภาพแวดล้อมเดสก์ท็อปบางอย่างรวมถึง GNOME และ KDE มีโปรแกรมที่ขอรหัสผ่านแบบกราฟิกก่อนที่จะอนุญาตให้ผู้ใช้ดำเนินการคำสั่งที่มักจะต้องมีการเข้าถึงดังกล่าว
ชื่อ su มาจากภาษาอังกฤษ sทดแทน uเป็น (ผู้ใช้แทน) นอกจากนี้ยังมีผู้ที่สร้างมันขึ้นมาจาก superuser (ผู้ใช้ขั้นสูงนั่นคือผู้ใช้รูทหรือผู้ดูแลระบบ) เนื่องจากโดยปกติจะใช้เพื่อปรับใช้บทบาทผู้ดูแลระบบ
เมื่อคุณวิ่ง su ระบบจะขอรหัสผ่านของบัญชีที่คุณต้องการเข้าถึงและหากได้รับการยอมรับระบบจะให้สิทธิ์เข้าถึงบัญชีนั้น
[guy @ localhost] $ your Password: [root @ localhost] # exit logout [guy @ localhost] $
โดยไม่ใส่ผู้ใช้จะถูกเข้าถึงในฐานะผู้ดูแลระบบ อย่างไรก็ตามคุณสามารถส่งชื่อผู้ใช้อื่นเป็นพารามิเตอร์ได้เช่นกัน
[guy @ localhost] $ su mongo รหัสผ่าน: [mongo @ localhost] # ออกจากระบบ [guy @ localhost] $
เมื่อป้อนรหัสผ่านแล้วเราสามารถดำเนินการคำสั่งได้ราวกับว่าเราเป็นผู้ใช้คนอื่น ในการเขียน ทางออกเรากลับไปหาผู้ใช้ของเรา
ตัวแปรที่ใช้กันอย่างแพร่หลายคือการใช้ su ตามด้วยขีด ดังนั้นในการเข้าสู่ระบบในฐานะรูทคุณต้องป้อน ของเขา - และเข้าสู่ระบบในฐานะผู้ใช้อื่น ของคุณ - ผู้ใช้รายอื่น. ความแตกต่างระหว่างการใช้สคริปต์หรือไม่? ขอแนะนำให้ใช้สคริปต์เนื่องจากจำลองว่าคุณจะเข้าสู่ระบบด้วยผู้ใช้รายนั้น ดังนั้นมันจะเรียกใช้ไฟล์เริ่มต้นทั้งหมดของผู้ใช้นั้นเปลี่ยนไดเร็กทอรีปัจจุบันเป็น HOME ของผู้ใช้นั้นเปลี่ยนค่าของตัวแปรระบบบางตัวที่ปรับให้เข้ากับผู้ใช้ใหม่ (HOME, SHELL, TERM, USER, LOGNAME และอื่น ๆ ) และ อื่น ๆ สิ่งอื่น ๆ.
ผู้ดูแลระบบต้องระมัดระวังอย่างมากในการเลือกรหัสผ่านสำหรับบัญชีรูท / ผู้ดูแลระบบเพื่อหลีกเลี่ยงการโจมตีจากผู้ใช้ที่ไม่มีสิทธิ์ su. ระบบที่คล้าย Unix บางระบบมีกลุ่มผู้ใช้ที่เรียกว่า ล้อซึ่งประกอบด้วยผู้เดียวที่สามารถดำเนินการได้ su. ซึ่งอาจลดความกังวลด้านความปลอดภัยหรือไม่ก็ได้เนื่องจากผู้บุกรุกสามารถเข้ายึดบัญชีใดบัญชีหนึ่งได้ เขา su อย่างไรก็ตาม GNU ไม่สนับสนุนการใช้งานของกลุ่มนั้น สิ่งนี้ทำด้วยเหตุผลทางปรัชญา
sudo
คำสั่งที่เกี่ยวข้องเรียกว่า sudoเรียกใช้คำสั่งในฐานะผู้ใช้รายอื่น แต่เป็นไปตามข้อ จำกัด ต่างๆที่ผู้ใช้สามารถดำเนินการคำสั่งใดในนามของผู้ใช้รายอื่น (โดยปกติจะระบุไว้ในไฟล์ / etc / sudoers).
ในทางกลับกันไม่เหมือน su, sudo แจ้งให้ผู้ใช้ป้อนรหัสผ่านของตนเองแทนผู้ใช้ที่ต้องการ สิ่งนี้ช่วยให้สามารถมอบหมายคำสั่งให้กับผู้ใช้บนเครื่องอื่นได้โดยไม่ต้องแชร์รหัสผ่านลดความเสี่ยงในการปล่อยให้เทอร์มินัลไม่มีใครดูแล
ปัญหา Sudo: ระยะเวลาผ่อนผัน
ข้อดีของ sudo ในความเคารพของ su คือดำเนินการเฉพาะคำสั่งที่ร้องขอโดยแสร้งทำเป็นว่าเป็นผู้ใช้รายอื่นโดยไม่เปลี่ยนผู้ใช้ปัจจุบัน นี่หมายความว่าเราสามารถดำเนินการคำสั่งในฐานะผู้ดูแลระบบและในวินาทีถัดไปพวกเขาจะมีสิทธิ์ของผู้ใช้ที่พวกเขาเคยใช้ก่อนหน้านี้ ... หรือเกือบ
บางคนมองว่าการรักษาความปลอดภัยละเมิดความจริงที่ว่า sudo ให้ "ช่วงเวลาผ่อนผัน" ที่อนุญาตให้ผู้ใช้ดำเนินการคำสั่งในฐานะผู้ใช้รายอื่นโดยไม่จำเป็นต้องป้อน sudo ซ้ำ ๆ หน้าคำสั่งและรหัสผ่านหลังจากดำเนินการแล้ว หลังจากนั้น "ระยะเวลาผ่อนผัน" sudo จะถามรหัสผ่านเราอีกครั้ง
สิ่งนี้ "ไม่ดี" เป็นหลักเนื่องจากอาจมีคนเข้ามายึดคอมพิวเตอร์ของเราหลังจากป้อนรหัสผ่าน sudo และในขณะที่ "ระยะเวลาผ่อนผัน" ทำงานอยู่ให้ทำการ DISASTER
โชคดีที่คุณสามารถปิด "ระยะเวลาผ่อนผัน" ได้ซึ่งจะช่วยเพิ่มความปลอดภัยให้กับระบบของคุณ เพียงเพิ่มหนึ่งบรรทัดในไฟล์ / etc / sudoers:
sudo nano / etc / sudoers
และเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์:
ค่าดีฟอลต์: ALL timestamp_timeout = 0
การเปลี่ยนแปลงจะมีผลทันทีโดยไม่จำเป็นต้องรีสตาร์ทระบบ
ในความเป็นจริงหากคุณสามารถเข้าด้วยสิทธิ์ของผู้ดูแลระบบด้วย sudo และอยู่ที่นั่นเหมือนที่คุณทำกับ su - สำหรับสิ่งนี้คุณต้องเขียน: sudo -s จึงเปลี่ยนผู้ใช้ปัจจุบันและปล่อยให้เวลาผ่อนผันเป็นเรื่องตลก (เนื่องจากคุณสามารถอยู่ได้เช่น ตราบเท่าที่คุณต้องการเช่นเดียวกับของคุณ)
ขอบคุณสำหรับการกล่าวถึง แต่เครดิตจริงไปที่แชท Sabayon ซึ่งฉันไม่ได้ใช้อีกต่อไปเพราะฮาร์ดไดรฟ์ของฉันพังและฉันต้องการกลับไปที่ Ubuntu -
เหตุผลที่พวกเขาให้ฉันก็คือบางครั้งเมื่อทำการกำหนดค่า sudo บางอย่างพวกเขาไม่ได้รับสิทธิ์แบบสัมบูรณ์และยังคงกำหนดค่าไม่ถูกต้อง และด้วยการ "เข้าสู่ระบบ" ด้วย su เป็น root สำหรับงานอัปเดตและบำรุงรักษาคุณจะป้องกันไม่ให้สิ่งนี้เกิดขึ้น
จากนั้นฉันก็ส่งอีเมลถึงคุณเพราะฉันสัญญาว่าจะแบ่งปันสิ่งที่พบซึ่งดูเหมือนจะไม่สำคัญกับฉัน
เนื่องจาก Ubuntu ได้รับการติดตั้งโดยค่าเริ่มต้นโดยไม่มีผู้ใช้รูทให้เรียกใช้
"Sudo passwd root"
ป้อนรหัสผ่านยืนยันและหลังจากนั้น
“ สุราก”
สำหรับการบำรุงรักษานอกเหนือจากการหลีกเลี่ยงการใส่ sudo ในแต่ละคำสั่ง
ตามหลักการแล้วใน Ubuntu บัญชีรูทจะถูกลบออกเพื่อไม่ให้คุณเข้าสู่ระบบด้วยบัญชีนี้เสมอไป แต่เนื่องจากฉันได้รับคำแนะนำเกือบจะเป็นเสียงเดียวกันว่าการใช้ sudo นั้นเป็นเรื่องที่ไม่เหมาะสมในกรณีที่ฉันติดตาม
คุณสามารถเข้าถึงไฟล์ / etc / shadow และเปลี่ยนแฮชรหัสผ่านรูทเป็นแฮชรหัสผ่านผู้ใช้ปกติจากนั้นทำการเปลี่ยนรหัสผ่านสำหรับรูท ??? ในเวลาอื่นฉันก็ลองเหมือนกัน….
ชัดเจน. ไม่ได้เป็นเอกสิทธิ์เฉพาะของ Fedora
จากนั้นจะสามารถติดตั้งได้หรือไม่ฉันคิดว่า« SU »อยู่ใน FEDORA เท่านั้น
ข้อมูลที่ดีมากด้วยสิ่งนี้แน่นอนว่าความสงสัยของหลาย ๆ คนจะหมดไปเพราะฉันรู้ว่าหลายคนมีข้อสงสัยนั้น
ใน ubunto ฉันคิดว่าฉันจำได้ว่าคุณไม่สามารถใช้คำสั่ง su ได้ (เพื่อป้อนในฐานะผู้ใช้รูท)
ในการ "กู้คืน" รหัสผ่านรูท (อันที่จริงรหัสผ่านอื่น ๆ ) คุณสามารถ "โจมตี" ไฟล์รหัสผ่านระบบด้วย John The Ripper ฉันจะไม่พูดอะไรมากเกี่ยวกับเรื่องนี้
อาจจะมีวิธีอื่น ... อาจจะเปลี่ยนรหัสผ่านโดยป้อนด้วย "sudo su" แล้วตามด้วยคำสั่ง "passwd" มันจะน่าสนใจถ้าจะดูว่าคนอื่นตอบสนองอย่างไร ...
เป๊ะ!
ถูกต้อง ... ฉันต้องขอบคุณ Miguel Mayol i Tur ... เขาเป็นคนที่มีความคิด 🙂
ไชโย! พอล.
ขอบคุณสำหรับการสนับสนุนที่ดีเสมอมาเราขอขอบคุณ
ขอบคุณบอส! กอด! พอล.
ความแตกต่างระหว่าง 'su' และ 'sudo' คือ 'do'
ฉันลืมรหัสผ่านรูทโชคดีที่ฉันใช้ sudo ได้และในการใช้ su ฉันใช้ 'sudo su' และมันไม่ขอผ่าน (?)
ไม่มีใครรู้วิธีค้นหารหัสผ่านรูท (ฉันสามารถเข้าถึงรูทผ่าน sudo)?
sudo รหัสผ่าน
ฮา! ฉลาดมาก!
ผู้ที่ต้องการกู้คืนรหัสผ่านรูทจะเป็น "sudo passwd root" และจะขอให้คุณป้อนรหัสผ่านใหม่
สวัสดีชีวิตของคุณเป็นอย่างไร
ขออภัยด้วยการใช้คำสั่ง su เช่นนี้:
su -c "command" เหมือนกับการใช้ sudo โดยไม่มีระยะเวลาผ่อนผัน ฉันไม่เห็นความจำเป็นที่จะต้อง sudo
การใช้ sudo จริงคือเพื่อให้ผู้ใช้บางคนสามารถใช้คำสั่งนี้หรือคำสั่งนั้นได้ซึ่งจะใช้ใน บริษัท มากขึ้นเพื่อที่จะไม่ต้อง chroot ซึ่งเป็นสิ่งที่ไม่สามารถทำได้กับ su
เรียนฉันต้องทำ Linux TP และต้องตอบคำถามง่ายๆ บางทีพวกเขาอาจช่วยฉันได้ ขอบคุณตั้งแต่ตอนนี้:
คำสั่งใดที่ช่วยให้เราติดตั้ง / ลบ / แก้ไขแพ็คเกจเดเบียนได้?
อะไรคือคำสั่งที่ช่วยให้เราจัดการการติดตั้งได้ง่ายขึ้น
แพ็คเกจในเดเบียน?
คำสั่งใดที่จะสามารถติดตั้งแพ็กเกจรอบต่อนาทีได้?
เราใช้ตัวเลือกอะไรในการถอนการติดตั้งแพ็คเกจ?
ไดเร็กทอรีที่เป็นที่เก็บ yum คืออะไร?
ยำคืออะไร?
เราใช้ตัวเลือกอะไรในการค้นหาแพ็คเกจที่มียำ?
เราใช้ตัวเลือกอะไรในการลบแพ็คเกจ?
เราใช้ตัวเลือกใดในการอัปเดตระบบได้บ้าง?
อักษรอะไรระบุใบอนุญาต
แต่ละคนหมายถึงอะไร?
คำสั่งใดที่แสดงรายการสิทธิ์ของไฟล์
อะไรคือสามกลุ่มที่แบ่งการอนุญาต?
มีสองวิธีในการใช้สิทธิ์ใดบ้าง
ใบอนุญาตใช้ระบบหมายเลขอะไร?
จดหมายเหล่านี้มีน้ำหนักเท่าใด?
ใบอนุญาตพิเศษคืออะไร?
สิทธิ์พิเศษที่มีอยู่คืออะไรและผู้ใช้มีไว้ทำอะไร?
ฉันใช้คำสั่งใดในการเปลี่ยนสิทธิ์
ฉันใช้พารามิเตอร์ใดเพื่อให้สิทธิ์ในการดำเนินการกับไฟล์
พารามิเตอร์ใดที่ใช้เพื่อให้สิทธิ์ในการอ่านแก่กลุ่มเท่านั้น
พารามิเตอร์ใดที่ใช้เพื่อให้สิทธิ์ในการอ่าน / เขียนแก่กลุ่มอื่นและลบการเขียนออกจากผู้ใช้ที่เป็นเจ้าของไฟล์
สิทธิ์ใดที่สร้างขึ้นโดยค่าเริ่มต้นสำหรับไฟล์และไดเร็กทอรี
เราใช้คำสั่งอะไรในการตรวจสอบ?
เราจะเปลี่ยนมาสก์เริ่มต้นได้อย่างไร?
เราจะทำให้มาส์กที่ใช้แตกต่างกันอย่างไร? (ใช้มาสก์เริ่มต้นที่ปล่อยให้เจ้าของเท่านั้นที่มีสิทธิ์ทั้งหมด)
คำสั่งใดแสดงรายการกระบวนการ กล่าวถึงพารามิเตอร์ต่างๆและการใช้งาน
กระบวนการที่เริ่มต้นทุกอย่างคืออะไร?
แสดงรายการกระบวนการที่สอดคล้องกับผู้ใช้ที่ล็อกอิน
แสดงรายการกระบวนการทั้งหมดของระบบ
ฉันใช้ตัวเลือกใดเพื่อรับข้อมูลเพิ่มเติม
แสดงรายการกระบวนการทั้งหมดที่ใช้ในเทอร์มินัล
ตัวเลือกใดแสดงกระบวนการและการอ้างอิง
อธิบายว่ากระบวนการแม่ลูกคืออะไรและจะระบุได้อย่างไร
คำสั่งใดแสดงกระบวนการในรูปแบบของต้นไม้
คำสั่งใดตรวจสอบกระบวนการแบบเรียลไทม์
ตรวจสอบกระบวนการเดียวเท่านั้น
คำสั่งใดแสดงการใช้หน่วยความจำ
พารามิเตอร์ใดที่แสดงหน่วยความจำเป็นเมกะไบต์
พารามิเตอร์อะไรในช่วงเวลา?
คำสั่งใดแสดงข้อมูลเกี่ยวกับเวลาที่ทีมขึ้น
ฉันใช้คำสั่งอะไรในการฆ่ากระบวนการ
กระบวนการเหล่านี้จัดการอะไรเพื่อให้ได้ข้อสรุป
สัญญาณประเภทใดที่พบบ่อยที่สุด?
ระบุประเภทของสัญญาณที่รองรับ
ในเทอร์มินัลทำการทดสอบ vi จากนั้นไปที่เทอร์มินัลอื่นมองหากระบวนการและฆ่ามันด้วยสัญญาณ 15 Ditto แต่มีสัญญาณ 9
อะไรคือความแตกต่างระหว่างสัญญาณ 9 และ 15?
อันไหนทำงานโดยปริยาย?
เหตุใดกระบวนการจึงทำงานอยู่เบื้องหลัง และเบื้องหน้า?
เรียกใช้การทดสอบ vi แล้วกด ctrl + z เกิดอะไรขึ้น
ทำซ้ำการทดสอบ vi, ctr + z, 4 ครั้งฉันจะทำสิ่งที่ล้มเหลวได้อย่างไร
ผ่านกระบวนการใดกระบวนการหนึ่งไปยังเบื้องหน้าและปิด vi
พารามิเตอร์ของคำสั่งใดที่เราดำเนินการเพื่อไม่ให้ครอบครองเชลล์
คำสั่งใดปรับเปลี่ยนลำดับความสำคัญของกระบวนการที่กำลังทำงานอยู่ คุณจะเปลี่ยนลำดับความสำคัญของเทอร์มินัลที่กำลังทำงานอยู่ได้อย่างไร?
มีค่าระดับใดและลำดับชั้นคืออะไร?
เปิดไฟล์ / etc / passwd และดูว่ามีลำดับความสำคัญระดับใด
เปลี่ยนระดับความสำคัญเป็น 4 แล้วเป็น 25 คุณกำหนดทั้งสองอย่างได้ไหม ทำไม?
แสดงรายการกระบวนการที่มีค่าลำดับความสำคัญ
คำสั่งใดตรวจสอบกระบวนการทำงานทั้งหมด
สวัสดีฉันต้องการปิดการใช้งาน sudo เหมือนเดิมฉันได้รับสิ่งนี้:
[sudo] รหัสผ่านสำหรับ xxx:
xxx ไม่ได้อยู่ในไฟล์ sudoers จะมีการรายงานเหตุการณ์นี้
ในขณะที่ฉันปิดใช้งานเนื่องจากฉันใช้ su ใน debian
สวัสดี ecc!
ฉันคิดว่าจะดีกว่าถ้าคุณตั้งคำถามนี้ในบริการถาม - ตอบของเราที่เรียกว่า ถาม DesdeLinux เพื่อให้ทั้งชุมชนสามารถช่วยคุณแก้ปัญหาได้
กอด Pablo
สวัสดี. ฉันใช้คำสั่งอุณหภูมิของฮาร์ดดิสก์ใน Linux Mint: 'sudo hddtemp / dev / sda' มันถามรหัสผ่านจากฉันและให้ผลลัพธ์ที่คาดหวัง
แต่เมื่อดำเนินการในเทอร์มินัลเดียวกัน 'hddtemp / dev / sda' มันบอกฉันว่า Permission Denied
ดังนั้นระยะเวลาผ่อนผันจึงใช้ไม่ได้กับฉันทำไมจึงเป็นเช่นนั้น
สวัสดีบล็อก
ฉันยังพบว่าเมื่อติดตั้ง distro (เช่น ubuntu, linux mint) ระบบจะถามรหัสผ่านผู้ดูแลระบบ
และในอินเทอร์เฟซแบบกราฟิกของศูนย์ควบคุมฉันใช้ตัวเลือกเพื่อเปลี่ยนรหัสผ่านของผู้ใช้
ตอนนี้ใช้ "su -" มันจะถามรหัสผ่านซึ่งไม่ใช่ของผู้ใช้ปัจจุบันของฉัน แต่เป็นรหัสที่ฉันใช้เมื่อติดตั้ง distro ซึ่งยังคงเป็นผู้ใช้ root หรือผู้ดูแล
ซึ่งจะส่งผลให้ผู้ใช้จำนวนมากลืมรหัสผ่านของผู้ดูแลระบบที่แท้จริง
สวัสดีคำอธิบายของคุณยอดเยี่ยมชัดเจนสั้นและกระชับ ขอบคุณสำหรับข้อมูล