อะไรคือความแตกต่างระหว่าง sudo, su, visudo, chroot และ gksu?


คำตอบ:


24
  • chrootเป็นวิธีการเข้าสู่โฟลเดอร์และ 'แกล้ง' โฟลเดอร์ที่เป็น/สิ่งที่ดำเนินการภายใน สิ่งนี้ช่วยให้คุณสามารถรันไฟล์ปฏิบัติการบนการติดตั้ง Ubuntu แบบไม่บู๊ตด้วยการติดตั้งที่อื่นนอกเหนือจากการ/ใช้/bin/bash(อันที่อยู่ภายในการติดตั้ง) เพื่อรับพรอมต์เทอร์มินัล

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

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

  • visudo- แก้ไขsudoersไฟล์ สิ่งนี้ใช้ไฟล์ปฏิบัติการพิเศษที่ตรวจสอบไวยากรณ์ของไฟล์เพื่อให้แน่ใจว่าคุณไม่ได้ถูกล็อคsudoเนื่องจากsudoersไฟล์เสียหาย หากคุณพยายามบันทึกการกำหนดค่าที่ไม่ถูกต้องมันจะหยุดคุณและนำคุณกลับสู่เครื่องมือแก้ไขเพื่อแก้ไข

  • gksudoหรือgksuเป็นเช่นเดียวกับ sudo ~/.Xauthorityยกเว้นว่ามันจะเป็นกราฟิกและปรับเปลี่ยนเส้นทางเพื่อให้โปรแกรมกราฟิกไม่ก่อให้เกิดปัญหาเกี่ยวกับสิทธิ์ในโปรไฟล์ของผู้ใช้โดยเฉพาะอย่างยิ่งกับ


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

44

sudo:

Sudo (superuser do) อนุญาตให้ผู้ดูแลระบบให้ผู้ใช้บางคน (หรือกลุ่มผู้ใช้) สามารถเรียกใช้คำสั่ง (หรือทั้งหมด) เป็นรูตขณะที่บันทึกคำสั่งและอาร์กิวเมนต์ทั้งหมด Sudo ดำเนินการตามคำสั่งพื้นฐาน

มันไม่ได้มาแทนที่เชลล์

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

แหล่ง

visudo

visudo เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่อนุญาตให้แก้ไข/etc/sudoersไฟล์ในแบบที่ปลอดภัย มันเปิดขึ้น/etc/sudoersโดยใช้อินเตอร์เฟสของตัวแก้ไข vi ตามค่าเริ่มต้น (แม้ว่าสิ่งนี้สามารถเปลี่ยนแปลงได้โดยการตั้งค่าตัวแปรสภาพแวดล้อม EDITOR ของเชลล์เป็นตัวแก้ไขข้อความที่แตกต่างกัน) ป้องกันการแก้ไขพร้อมกันหลายครั้งพร้อมล็อคทำการตรวจสอบสติ

แหล่ง

SU

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

โดยค่าเริ่มต้นและไม่มีอาร์กิวเมนต์บรรทัดคำสั่งอื่น ๆ สิ่งนี้จะยกระดับผู้ใช้ปัจจุบันไปยัง superuser ของระบบโลคัล

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

นอกจากนี้หนึ่งสามารถสลับไปยังผู้ใช้อื่นที่ไม่ใช่ superuser

แหล่ง

ราก

root คือชื่อผู้ใช้หรือบัญชีที่โดยค่าเริ่มต้นจะสามารถเข้าถึงคำสั่งและไฟล์ทั้งหมดบน Linux หรือระบบปฏิบัติการ Unix-like อื่น ๆ นอกจากนี้ยังเรียกว่าบัญชีรูทผู้ใช้รูทและ superuser

คำว่ารูทยังมีความหมายเพิ่มเติมที่เกี่ยวข้องอีกหลายรายการเมื่อใช้เป็นส่วนหนึ่งของคำศัพท์อื่น ๆ

หนึ่งในนั้นคือรูตไดเร็กทอรีซึ่งเป็นไดเร็กทอรีระดับบนสุดของระบบ นั่นคือมันเป็นไดเรกทอรีที่ไดเรกทอรีอื่น ๆ ทั้งหมดรวมถึงไดเรกทอรีย่อยและไฟล์ที่อยู่ ไดเรกทอรีรากถูกกำหนดโดยเครื่องหมายทับ ( /)

อีกอย่างคือ/root(รากเครื่องหมายทับ) ซึ่งเป็นโฮมไดเร็กตอรี่ของผู้ใช้รูท.

นอกจากนี้ยังอาจหมายถึงผู้ใช้รูทซึ่งเป็นผู้ดูแลระบบของระบบที่มีสิทธิ์เต็มรูปแบบ

แหล่ง

chroot

chroot คือการดำเนินการที่เปลี่ยนไดเรกทอรีรากที่ชัดเจนสำหรับกระบวนการทำงานปัจจุบันและลูก ๆ ของมัน ตัวอย่างเช่นถ้าคุณ chroot /mnt/chroot-testแล้วไดเรกทอรีจะเป็นรากเสมือนของคุณที่คุณอาจจะหมายถึงโดย/mnt/chroot-test/

แหล่ง

การใช้ chroots

ต่อไปนี้เป็นการใช้ chroots ที่เป็นไปได้:

  1. การแยกแอปพลิเคชันที่ไม่ปลอดภัยและไม่เสถียร

  2. การรันแอปพลิเคชัน 32 บิตบนระบบ 64 บิต

  3. การทดสอบแพ็กเกจใหม่ก่อนการติดตั้งบนระบบการผลิต

  4. ใช้งานแอพพลิเคชั่นเวอร์ชั่นเก่ากว่าบน Ubuntu ที่ทันสมัยกว่า

  5. การสร้างแพ็คเกจใหม่ช่วยให้สามารถควบคุมแพ็คเกจการพึ่งพาที่ติดตั้งไว้อย่างระมัดระวัง

แหล่งที่มาและข้อมูลเพิ่มเติมเกี่ยวกับ chroot


1
เกือบสับสนในอูบุนตู visudo ใช้นาโน ฉันพบวิธีที่ง่ายต่อการจดจำซึ่งก็คือ 'su' = ผู้ใช้สวิตช์ (ไปที่รูท - ใช่คุณสามารถใช้มันเพื่อสลับไปยังผู้ใช้รายอื่นด้วย), 'sudo' = สลับผู้ใช้เป็นรูทและทำได้และ chroot เช่น ' เปลี่ยนรูต ' ไม่ถูกต้องทั้งหมด แต่ใกล้พอที่จะจำได้
Geek

1
@JourneymanGeek ถูกต้องมากขึ้นและผมคิดว่าเช่นเดียวกับส่วนต่อขยายของsumneumonic ไปsudoคือจะบอกว่าsudoหมายถึง "ผู้ใช้ Switched DO" (กล่าวคือทำตามที่ผู้ใช้เปลี่ยน) หรือ "SuperUser DO" (กล่าวคือทำตามที่ superuser) สิ่งนี้จะทำให้การsudoersเชื่อมโยงที่สวยงาม (เช่น "ผู้ใช้สลับผู้ใช้" มากกว่า "(ผู้ใช้สลับผู้ใช้และผู้ดำเนินการ)") เหตุผลที่ตัวแปรเหล่านี้มีความแม่นยำมากกว่าคือsudoทำให้ผู้ใช้สามารถดำเนินการในฐานะผู้ใช้สำรอง แต่ไม่จำเป็นต้องให้ผู้ใช้เหล่านั้นเป็นผู้ใช้สำรองทั่วไป (ขึ้นอยู่กับเนื้อหาของ/etc/sudoers)
Eliah Kagan

@maythux: นั่นเป็นเพียงหนึ่งในความหมายของchroot (อย่าเพิ่งถาม Wikipedia) โดยทั่วไปแล้วมันหมายถึงระบบย่อยที่ปลอดภัย (และถูกล็อค) ซึ่งทำงานภายใน Unix / Linux ที่อนุญาตให้ใช้ชุดปฏิบัติการ (หรือบริการ) เพียงชุดเล็ก ๆ
david6

5

SU เชื่อมต่อคุณเป็นรูต

เทอร์มินัลจะยังคงอยู่ในฐานะรูทสำหรับเซสชัน

ด้วย sudo (superuser do) คุณสามารถดำเนินการตามรูทได้ในขณะที่เชื่อมต่อในฐานะผู้ใช้ทั่วไป

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