เมื่อใดก็ตามที่ฉันพยายามที่จะออก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 -u
sudo -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
คำสั่งหมายถึง“ผู้ใช้สวิทช์”sudo
su
sudo su someuser
หรือเมื่อต้องการรวมการเรียกใช้สคริปต์เริ่มต้นของผู้ใช้เพิ่มยัติภังค์
sudo su - someuser
root
ผู้ใช้งานroot
ผู้ใช้ในระบบปฏิบัติการ Unix ที่เกี่ยวข้องกับการมีอำนาจที่จะทำอะไร
Apple ได้เลือกที่จะปิดการใช้งานroot
บัญชีใน macOS เพื่อหลีกเลี่ยงช่องโหว่ด้านความปลอดภัยและเพื่อป้องกันคุณจากการถูกยิง แอปเปิ้ลได้สร้างความคิดของผู้ดูแลระบบบัญชีผู้ใช้ที่มีอำนาจหลายอำนาจมากขึ้นกว่ามาตรฐานบัญชีผู้ใช้ แต่ไม่ได้อำนาจเหมือนroot
มี ดูบันทึกย่อฝ่ายสนับสนุนของ Appleเพื่อการสนทนา
หากจำเป็นคุณสามารถเปิดroot
ใช้งานผู้ใช้ใน macOS แล้วสลับไปใช้ผู้ใช้นั้น สิ่งนี้เป็นกำลังใจอย่างยิ่ง ฉันจะลงไปสู่เส้นทางนี้เป็นทางเลือกสุดท้ายเท่านั้น
สำหรับการอภิปรายเรื่องนี้ในบริบทของpostgres
ผู้ใช้เรียกใช้Postgresระบบฐานข้อมูลบน MacOS ดูคำถามนี้บนเว็บไซต์น้องสาว, DBA Stack แลกเปลี่ยน
sudo su
ยังคงใช้งานได้ดังนั้นจึงไม่ได้ปิดใช้งานจริงๆ มันไม่มีรหัสผ่าน