ความแตกต่างระหว่างคำสั่ง sudo และ su คืออะไร?


12

ความแตกต่างระหว่างsudoและsuคำสั่งคืออะไร? เหตุใด OS X จึงจัดการเหล่านี้แตกต่างจาก Linux


1
หากมีสิ่งใด Linux จะจัดการกับพวกเขาแตกต่างจาก OS X OS X ได้รับการรับรอง Unix ซึ่งหมายความว่าสอดคล้องกับมาตรฐานพฤติกรรมบางอย่าง Linux เป็นเหมือน Unix แต่ไม่ได้รับการรับรอง Unix และไม่จำเป็นต้องสอดคล้องกับมาตรฐาน Unix ดังนั้นหากมีความแตกต่าง (นอกเหนือจากปัญหารหัสผ่านรูทที่ระบุไว้ในคำตอบของ Aaron Lake) พวกเขาจะไม่ปฏิบัติตามในส่วนของการใช้งานของการกระจาย Linux เฉพาะในคำถาม
alesplin

คำตอบ:


21

OS X จัดการsudoและsuเหมือนกันกับ Linux

sudoเป็นคำสั่งที่ไม่มีตัวเลือกเพิ่มเติมใด ๆ จะเรียกใช้คำสั่งในฐานะรูท ตัวอย่างเช่น:

% touch /newfile
touch: /newfile: Permission denied
% ls -l /newfile
ls: /newfile: No such file or directory
% sudo touch /newfile
% ls -l /newfile 
-rw-r--r--  1 root  wheel  0 Apr 27 11:45 /newfile

suในทางกลับกันจะเปลี่ยนผู้ใช้ปัจจุบันเป็นรูท (อีกครั้งโดยไม่มีคำสั่งพิเศษ) ในตัวอย่างด้านล่างฉันต้องทำงานsudo suเนื่องจากฉันไม่ทราบรหัสผ่านรูทสำหรับระบบของฉัน:

% whoami
alake
% sudo su
$ whoami
root

ความแตกต่างที่สำคัญระหว่างsudoและsuเป็นsudoรันคำสั่งเป็นรากในขณะที่suทำให้คุณราก เช่นเดียวกับโปรแกรมอรรถประโยชน์บรรทัดคำสั่งอื่น ๆ มีหลายวิธีในการใช้ทั้งสองวิธีsudoและsuหากคุณสนใจคุณสามารถเรียกใช้man <command>เช่น man sudoเพื่อรับข้อมูลเพิ่มเติม


5
ในแง่ที่เรียบง่ายภาษาsudoสามารถ super user and doแต่ในฐานะที่เป็น ในฐานะที่เป็นจุดเพิ่มเติมบน OS X เมื่อคุณตรวจสอบสิทธิ์เรียบร้อยแล้วคุณสามารถใช้sudoโดยไม่ต้องใช้รหัสผ่านเป็นเวลาสั้น ๆ (โดยค่าเริ่มต้น 5 นาทีเว้นแต่จะถูกเขียนทับsudoers) หลังจากนั้นคุณจะต้องพิมพ์รหัสผ่านอีกครั้ง
binarybob

1
'ไม่มีตัวเลือกเพิ่มเติม' เป็นตัวระบุที่สำคัญมาก ... พวกเขาทั้งสองจะให้คุณเป็นผู้ใช้อื่นนอกเหนือจากรูท ... เช่นsudo su -lm _wwwจะให้คุณมีเปลือกเป็นราวกับว่าผู้ใช้เว็บเซิร์ฟเวอร์ (โดยเรียกใช้คำสั่งเป็นรูตเช่น ไม่มีรหัสผ่านที่ถูกต้อง)
Joe

2
@ โจฉันคิดว่าจะเพิ่มข้อมูลนั้น แต่ไม่สนใจความกะทัดรัด ในขณะที่คุณอธิบายsudoค่อนข้างเป็นยูทิลิตี้ที่แข็งแกร่งและครอบคลุมการทำงานขั้นพื้นฐานได้ที่นี่ในที่สุดจะเกิดความสับสนหรือครอบงำกลุ่มเป้าหมายที่กำลังมองหาสำหรับความแตกต่างระหว่างและsudo su
Aaron Lake

"ความแตกต่างที่สำคัญระหว่าง sudo และ su คือ sudo รันคำสั่งเหมือนรูทในขณะที่ su ทำให้คุณรูท" - false sudo -sรันเชลล์ ("ทำให้คุณรูท") และsu -c commandรันคำสั่งเป็นรูท
el.pescado

2
sudoอีกครั้งเพื่อเห็นแก่ความกะทัดรัดของฉันมองข้ามวิธีการหลายทางเลือกของการใช้ นอกจากนี้คุณไม่สามารถทำsu -c commandตามค่าเริ่มต้นบน OS X ได้เนื่องจากคุณไม่ทราบรหัสผ่านของรูท อย่างไรก็ตามคุณสามารถsudo suเปลี่ยนรหัสผ่านsu -c commandได้ ฉันรู้สึกว่าคำถามได้รับคำตอบและไม่จำเป็นต้องดำน้ำลึกลงไปในการใช้ sudo และ su อย่างไรก็ตามฉันจะอัปเดตโพสต์สำหรับคนที่อยากรู้อยากเห็น
Aaron Lake
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.