เมื่อใดก็ตามที่ฉันพยายามที่จะออกsuฉันได้รับนี้:
$ su
Password:
su: Sorry
ไม่จำเป็นต้องบอกว่าฉันป้อนรหัสผ่านผู้ดูแลระบบที่ถูกต้องซึ่งใช้งานsudoได้ สิ่งที่ฉันต้องการไม่จำเป็นต้องใส่sudoในแต่ละครั้ง
เมื่อใดก็ตามที่ฉันพยายามที่จะออกsuฉันได้รับนี้:
$ su
Password:
su: Sorry
ไม่จำเป็นต้องบอกว่าฉันป้อนรหัสผ่านผู้ดูแลระบบที่ถูกต้องซึ่งใช้งานsudoได้ สิ่งที่ฉันต้องการไม่จำเป็นต้องใส่sudoในแต่ละครั้ง
คำตอบ:
ใน MacOS X ผู้ใช้รูทจะถูกปิดใช้งานตามค่าเริ่มต้นดังนั้นsuจะไม่ทำงาน ขณะที่คนอื่น ๆ sudoได้กล่าวว่ามันเป็นที่ดีที่สุดในการใช้งาน
หากคุณต้องเปิดการใช้งานผู้ใช้รากดูที่ technote แอปเปิ้ล: เปิดใช้งานและใช้ "ราก" ของผู้ใช้ใน Mac OS X
sudo suได้อะไรคือสิ่งที่โลกกำลังปิดการใช้งานsu?
su" ก็เพื่อป้องกันไม่ให้เข้าสู่ระบบราก เมื่อไม่อนุญาตให้ลงชื่อเข้าใช้rootคุณจะป้องกันปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นได้ ไม่อนุญาตให้คนที่สามารถsudoจะsuเป็นชนิดของโง่ โดยทั่วไปsuเพียงแค่เปลี่ยน user-id ปัจจุบันและดำเนินการคำสั่ง (เชลล์ถ้าไม่ได้ระบุ) หากรหัสผู้ใช้เป็น 0 (รูท) แล้วเช่นเมื่อดำเนินการกับsudoไม่มีสิ่งใดที่ต้องทำดังนั้นมันจะดำเนินการเชลล์ sudo bashคุณจะได้รับผลที่คล้ายกันด้วยการทำ
คุณมีสองตัวเลือก สิ่งแรกคือการใช้sudo -s- สิ่งนี้จะช่วยให้คุณเข้าถึง superuser ได้ แต่คุณจะยังคง 'ตัวคุณเอง' (ดังนั้นพูด) ดังนั้นสิ่งต่าง ๆ เช่น~นี้จะยังคงเป็นไดเรกทอรีบ้านของคุณ หรือคุณสามารถใช้sudo suซึ่งจะให้เชลล์แก่คุณในฐานะผู้ใช้รูทที่แท้จริงของ Mac ของคุณ
sudoเพื่อเรียกใช้คำสั่งที่ต้องการสิทธิ์ในการยกระดับไม่ต้องเปลี่ยนเป็นรูทเชลล์และทำงานจากนั้น
sudoจรรยาบรรณมาสู่สุดขั้ว แต่อะไรก็ตาม: ความหมาย อย่าใช้รูทเชลล์ใน OS X
ตัวอย่างเช่นหากคุณต้องการย้ายไฟล์หรือใช้ git โดยใช้ CLI ในกรณีนั้นทางออกที่ดีที่สุดคือการใช้sudo -sคำสั่ง หลังจากคำสั่งนั้นคุณไม่จำเป็นต้องป้อนรหัสผ่านซ้ำแล้วซ้ำอีก
ฉันคิดว่าคุณไม่สามารถทำสิ่งนี้ในฐานะผู้ใช้ "ปกติ" ...
หากมีบัญชีผู้ใช้อื่นที่มีสิทธิ์ผู้ดูแลระบบคุณต้องใช้บัญชีนี้
restricted user$ su
Password:(the root password here)
Sorry!
restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now
sudo -usudo -uเมื่อต้องการเรียกใช้กับการใช้งานอื่นใช้
ตัวอย่างเช่นเมื่อต้องการรันtext-editorเช่นnano :
sudo -u someuser nano
…และป้อนรหัสผ่านผู้ใช้ Mac admin ของคุณเมื่อได้รับแจ้ง ในช่วงหัวเลี้ยวหัวต่อนี้มันเป็นผู้ใช้ผู้ดูแลระบบ Mac ของคุณที่มีการเรียกใช้sudoไม่ใช่someuserผู้ใช้ดังนั้นคุณไม่ต้องป้อนsomeuserรหัสผ่าน
sudo หมายถึงการทำงานบางอย่างโดยใช้สิทธิ์ superuser-u หมายถึง“ เรียกใช้คำสั่งที่ระบุเป็นผู้ใช้ที่ระบุนี้”someuser ควรแทนที่ด้วยชื่อผู้ใช้ที่คุณต้องการ-Iเพื่อจำลองการเข้าสู่ระบบเริ่มต้นเป็นผู้ใช้โดยเฉพาะอย่างยิ่งรวมถึงการทำงานสคริปต์เริ่มต้นของพวกเขาใช้
sudo -u someuser -i nano
สิ่งนี้จะเรียกใช้nanoแอปในฐานะผู้ใช้someuserแต่หลังจากรันสคริปต์เริ่มต้นสำหรับผู้ใช้นั้นแล้วเท่านั้น
หากเราเลือกที่จะไม่ระบุคำสั่งหรือแอพที่จะเรียกใช้เราจะได้รับเชลล์แบบโต้ตอบที่ทำงานเป็นผู้ใช้
sudo -u someuser -i
sudo su someuserอีกวิธีหนึ่งที่ใช้คำสั่งในการทำงานร่วมกับsu คำสั่งหมายถึง“ผู้ใช้สวิทช์”sudosu
sudo su someuser
หรือเมื่อต้องการรวมการเรียกใช้สคริปต์เริ่มต้นของผู้ใช้เพิ่มยัติภังค์
sudo su - someuser
root ผู้ใช้งานrootผู้ใช้ในระบบปฏิบัติการ Unix ที่เกี่ยวข้องกับการมีอำนาจที่จะทำอะไร
Apple ได้เลือกที่จะปิดการใช้งานrootบัญชีใน macOS เพื่อหลีกเลี่ยงช่องโหว่ด้านความปลอดภัยและเพื่อป้องกันคุณจากการถูกยิง แอปเปิ้ลได้สร้างความคิดของผู้ดูแลระบบบัญชีผู้ใช้ที่มีอำนาจหลายอำนาจมากขึ้นกว่ามาตรฐานบัญชีผู้ใช้ แต่ไม่ได้อำนาจเหมือนrootมี ดูบันทึกย่อฝ่ายสนับสนุนของ Appleเพื่อการสนทนา
หากจำเป็นคุณสามารถเปิดrootใช้งานผู้ใช้ใน macOS แล้วสลับไปใช้ผู้ใช้นั้น สิ่งนี้เป็นกำลังใจอย่างยิ่ง ฉันจะลงไปสู่เส้นทางนี้เป็นทางเลือกสุดท้ายเท่านั้น
สำหรับการอภิปรายเรื่องนี้ในบริบทของpostgresผู้ใช้เรียกใช้Postgresระบบฐานข้อมูลบน MacOS ดูคำถามนี้บนเว็บไซต์น้องสาว, DBA Stack แลกเปลี่ยน
sudo suยังคงใช้งานได้ดังนั้นจึงไม่ได้ปิดใช้งานจริงๆ มันไม่มีรหัสผ่าน