มีsudo
ไฟล์บริการอยู่เพื่อให้แน่ใจว่าสิทธิพิเศษที่เรียกว่าไม่อยู่หลังจากรีบูต โดยทั่วไปจะรับประกันได้ว่าหลังจากรีบูตเครื่องผู้ใช้ปกติที่เรียกใช้สิทธิ์รูทจะยังคงเป็นผู้ใช้ปกติ
คำอธิบายโดยละเอียดเกี่ยวกับ sudo
คำอธิบายทั้งหมดด้านล่างนี้เพื่อรับข้อมูลทั้งหมดสำหรับทุกคนที่อ่านคำถามนี้แล้วอธิบายว่าไฟล์ sudo ในโฟลเดอร์บริการกำลังทำอะไรที่นั่น
เมื่อคุณติดตั้ง Ubuntu หรือ distro อื่น ๆ ที่ใช้sudo
ความแตกต่างระหว่างการเป็นrootและเป็นผู้ใช้ที่ใช้sudo
เพื่อรับสิทธิ์ "root like" (การดูแลระบบหรือสิทธิ์ของผู้ใช้ขั้นสูง) มีดังต่อไปนี้:
ในฐานะที่เป็นราก
- คุณจะไม่ได้รับรหัสผ่านสำหรับแต่ละคำสั่งหรือทุกคำสั่งที่คุณใช้ในเซสชัน
- คำสั่งบางอย่างที่คุณเรียกใช้จะถูกบันทึกโดยค่าเริ่มต้น
- ระบบจะถือว่าคุณรู้ว่ากำลังทำอะไรอยู่ (เหตุผลที่ไม่ขอรหัสผ่านทุกครั้งที่คุณเรียกใช้คำสั่ง)
- ไม่มีตัวเลือกโอกาสครั้งที่สองหรือตัวเลือกในนาทีสุดท้ายหากคุณทำผิดพลาด
ในฐานะที่เป็น sudo
- คุณจะถูกถามรหัสผ่านสำหรับแต่ละคำสั่งหรือทุกคำสั่งที่คุณใช้ในเซสชัน ตัวอย่างเช่นถ้าคุณเปิดเทอร์มินัลและดำเนินการคำสั่งที่ต้องการสิทธิ์ระดับผู้ดูแลระบบจะถามรหัสผ่านหนึ่งครั้งสำหรับเซสชันนั้นจนกว่าคุณจะปิดเทอร์มินัลหรือออกจากระบบ สิ่งนี้จะแตกต่างกันไปตามคำสั่งที่คุณใช้และที่ใด อาจถามครั้งเดียวหรือหลายครั้ง
- คำสั่งทั้งหมดที่คุณเรียกใช้จะถูกบันทึกไว้เนื่องจากคุณขออนุญาตใช้คำสั่งพิเศษสำหรับผู้ใช้ขั้นสูง
- ระบบจะถือว่าคุณขออนุญาตเป็นการชั่วคราวและสิทธิ์การบริหารจะถูกให้ยืมชั่วคราว (จนกว่าคุณจะออกจากระบบ, ปิดเทอร์มินัล ฯลฯ )
- คุณมีตัวเลือกในนาทีสุดท้ายเพื่อแก้ไขข้อผิดพลาดใด ๆ สิ่งนี้จะเกิดขึ้นในทันทีที่คุณได้รับรหัสผ่าน
ทำไมถูกสร้าง SUDO
การสร้างSUDOเสร็จแล้วเพราะในอดีตการใช้รูทสร้างปัญหามากกว่าโซลูชัน ผู้ใช้ที่มีสิทธิ์ทั้งหมดซึ่งหมายความว่าถ้าพวกเขาไม่ทำความสะอาดฤดูใบไม้ผลิและตัวอักษรที่ถูกลบ/usr
, /lib
และ/bin
โฟลเดอร์ (เพราะพวกเขาคิดว่าพวกเขาไม่จำเป็นต้องใช้พวกเขา) .. คาดเดาสิ่งที่จะเกิดขึ้น ปัญหาหลายอย่างในอดีตเป็นเพราะผู้ใช้ไม่ทราบถึงพลังที่พวกเขามีเมื่อใช้รูท โดยพื้นฐานแล้วพวกเขามีรูท แต่ไม่เข้าใจลีนุกซ์, ลำดับชั้นของระบบไฟล์, ไฟล์ใดที่สำคัญ ฯลฯ (บางอย่างเช่นมีเฟอร์รารีและไม่รู้วิธีขับ ... ในทางหลวง!)
SUDOยังใช้งานโดยแอพ GUI (เช่น Update Manager) เมื่อพวกเขาต้องการสิทธิ์ระดับผู้ดูแลระบบชั่วคราวในการทำบางสิ่ง พวกเขาต้องการเพียงแค่จำนวนคำสั่งที่เฉพาะเจาะจง (โดยทั่วไป 1) จากนั้นพวกเขากลับไปที่สิทธิ์ระดับผู้ใช้ นี่คือการหลีกเลี่ยงการมีสิทธิ์ใช้งานรูทตลอดเวลาและเพื่อหลีกเลี่ยงข้อผิดพลาดหากผู้ใช้ตัดสินใจที่จะลบส่วนสำคัญบางส่วนของระบบ
นอกจากนี้ยังให้ความปลอดภัยที่ดีขึ้นเนื่องจากผู้ใช้รูทถูกปิดใช้งานโดยค่าเริ่มต้น
สุดท้ายถ้าคุณมีพีซีตั้งโต๊ะหรือเซิร์ฟเวอร์คุณไม่ต้องการให้ทุกคนรูทหรือมีสิทธิ์ผู้ดูแลระบบทั้งหมด ความคิดที่แย่มาก ๆ ถ้าน้องสาวหรือน้องชายของคุณเริ่มสงสัยว่าจะเกิดอะไรขึ้นถ้า/boot
เจอDELกุญแจ นี่คือที่sudo
มาเพื่อลดโอกาสที่สิ่งเลวร้ายเกิดขึ้น
การให้สิทธิ์ผู้ใช้ขั้นสูงแบบ จำกัด สำหรับผู้ใช้บางรายหมายความว่าอย่างไร
ผู้ใช้ sudo หรือ sudoers มีไฟล์การกำหนดค่าที่บอกพวกเขาถึงวิธี จำกัด หรือเปิดคำสั่ง sudo สำหรับผู้ใช้ที่เฉพาะเจาะจง ไฟล์/etc/sudoers
มีข้อมูลทั้งหมดเพื่อ จำกัด หรือให้สิทธิ์การเข้าถึงแก่ผู้ใช้ sudo โดยค่าเริ่มต้นมันมาพร้อมกับการเข้าถึงทุกอย่าง แต่คุณสามารถกำหนดค่าหรือ จำกัด สิ่งนี้ได้ตามที่คุณต้องการ
สำหรับข้อมูลเกี่ยวกับวิธีใช้ประเภทไฟล์ sudoers man sudoers
ในเทอร์มินัล ตัวอย่างเช่นรูปแบบปกติคือ:
USER HOST = COMMANDS
ตัวอย่างเช่นcyrex server1 = /bin/ls
จะให้ผู้ใช้ cyrex ในการเข้าถึงเซิร์ฟเวอร์โฮสต์ 1 เพื่อเรียกใช้คำสั่ง ls
ตัวอย่างเช่นcyrex server1 (root) = /bin/ls
จะให้ผู้ใช้ cyrex ในการเข้าถึงเซิร์ฟเวอร์โฮสต์ 1 เพื่อรันคำสั่ง ls ในฐานะรูท
ตัวอย่างเช่นcyrex ALL = /bin/ls
จะให้ผู้ใช้ cyrex ในการเข้าถึงโฮสต์ทั้งหมดเพื่อเรียกใช้คำสั่ง ls
ตัวอย่างเช่นcyrex ALL = ALL
จะให้ผู้ใช้ cyrex ในการเข้าถึงโฮสต์ทั้งหมดเพื่อเรียกใช้คำสั่งทั้งหมด
ตัวอย่างเช่นluis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall
จะอนุญาตให้ฉันเรียกใช้ sudo สำหรับคำสั่งkill
และkillall
เป็น root โดยไม่ต้องขอรหัสผ่าน