ฉันได้ยินมาเพื่อทราบว่าด้วยความคิดทั่วไปของสิทธิ์น้อยผู้ใช้เหมือน Unix ควรสร้างบัญชีอื่น ไม่มี สิทธิ์ sudo นอกเหนือจากบัญชีในตัว กับ สิทธิ์ sudo ใน Mac สิ่งนี้แปลว่า: ควรสร้างบัญชีพนักงานสำหรับใช้ประจำวันนอกเหนือจากบัญชีผู้ดูแลระบบที่มาพร้อมกับคอมพิวเตอร์ถูกสงวนไว้เฉพาะเมื่อจำเป็นเท่านั้น
สำหรับรูปธรรมให้พูด bruce เป็นพนักงานที่ฉันใช้ทุกวันและ batman เป็นผู้ดูแลระบบซึ่งฉันใช้เมื่อจำเป็นเท่านั้น แต่ฉันจะทำอย่างไรในขณะที่เข้าสู่ระบบ batmanในนามของ bruceนั่นคือจะพูดกับ bruce ของตัวเอง ~ และ $(whoami) ราวกับว่าฉันกำลังเข้าสู่ระบบในฐานะ bruce ด้วยสิทธิพิเศษ?
เพื่อแสดงสิ่งนี้ให้นิยาม /User/bruce/test.sh:
#!/usr/bin/env bash
whoami
cd ~ && pwd
ls ~/Library/Preferences/Preferences/
(ใช่ฉันทำไปแล้ว chmod 744 test.sh ) ฉันเลือกบรรทัดสุดท้ายเพื่อวัตถุประสงค์ในการสร้างภาพประกอบโดยทั่วไปดูเหมือนว่า ~/Library/Preferences/Preferences/ พนักงานไม่สามารถเข้าถึงได้ (เช่นผู้ที่ไม่ใช่ผู้ดูแลระบบ)
สิ่งที่ฉันตั้งใจจะได้รับคือ bruce, /Users/bruceและประสบความสำเร็จ ls เอาท์พุต
ความพยายามครั้งแรกคือว่าจำเป็นถ้าฉันเปิด bruce เทอร์มินัล แต่ login ทุบตีของ batman (เพื่อรับสิทธิ์ sudo) และเรียกใช้
sudo /Users/bruce/test.sh
ฉันเข้าใจ root, /Users/batmanและประสบความสำเร็จ ls การส่งออกของ ~/Library/Preferences/Preferences/แสดงให้เห็นว่าบ้านของแบทแมน; ไม่น่าแปลกใจเลย
หรือ ซ้ำกันเป็นไปได้ (a) ยืนยันว่า sudo -i -u bruce ทำให้ฉันสามารถรันคำสั่งเป็น bruce.
แต่ไม่มี! ถ้าฉัน (ดังกล่าวข้างต้น) เปิด bruce เทอร์มินัล login ทุบตีของ batmanและเรียกใช้
sudo -i -u bruce /Users/bruce/test.sh
ฉันเข้าใจ bruce, /Users/bruceและ ls: : Permission denied.
อีกอย่าง ซ้ำกันเป็นไปได้ (b) กล่าวว่า sudo -H -u bruce ใช้บ้านของบรูซ
เมื่อฉันเปิดอีกครั้ง bruce เทอร์มินัล login ทุบตีของ batmanและเรียกใช้
sudo -H -u bruce bash /Users/bruce/test.sh
ฉันก็รับเช่นกัน bruce, /Users/bruceและ ls: : Permission denied.
ผู้อ่านอาจคิดว่าคำขอของฉันไม่สมเหตุสมผล แต่ฉันแค่อยากรู้ว่ามันเป็นไปได้ที่จะให้สิทธิ์ sudo แก่พนักงานเป็นการชั่วคราวหรือไม่
ตัวอย่างเช่นถ้าสิ่งนี้สามารถทำได้เมื่อฉันทำสคริปต์สั้น ๆ ฉันไม่จำเป็นต้องหลีกเลี่ยงอีกต่อไป $(whoami) หรือ ~ทำให้มีความยืดหยุ่นมากขึ้น
หรือเมื่อฉันเรียกใช้สคริปต์สั้น ๆ ว่าไซต์ใดที่ฉัน googled แนะนำและไม่ต้องแทนที่ $(whoami) โดย bruce และ / หรือ ~ โดย /Users/bruce.
ครั้งสุดท้ายที่ฉันจำได้ว่าฉันรู้สึกหงุดหงิดโดยการ จำกัด สิทธิ์อาจเป็นเมื่อฉันเรียกใช้สคริปต์ที่สร้างโดยคนทั่วไปที่ฉันไปเพื่อติดตั้งแบบอักษร LaTeX
อย่างไรก็ตามในปัจจุบันฉันสามารถจำได้หนึ่งอินสแตนซ์เท่านั้น
นั่นคือหลังจากที่ฉันในขณะที่เข้าสู่ระบบแบทแมน brew -ed สิ่งที่ใช้ homebrew (เพราะต้องใช้สิทธิ์ sudo) และ logout -ed กลับเป็นบรูซและ brew -ed อย่างอื่น
Homebrew ร้องเรียนสิทธิ์ที่ไม่ถูกต้องเป็นจำนวนมากในบางโฟลเดอร์ภายใต้ /usr/localและกระตุ้นให้ฉันวิ่ง sudo chown -R $(whoami) blablabla.
สำหรับฉันแล้วมันดูเหมือนว่า brew ได้กำหนดสิทธิ์บางอย่างเป็น batman เป็นของตัวเองและมันทำให้ฉันเป็นบ้าที่จะซ่อมพวกมันทีละคน
คุณจะทำอย่างไรเพื่อให้ได้ช่วงเวลาตัวอย่างเช่นนั้น brew ต้องใช้ sudo ในขณะที่ใช้บัญชีพนักงานหรือไม่?
หรือในท้ายที่สุดการปฏิบัติที่บัญชีที่ใช้ในชีวิตประจำวันควรมีสิทธิ์น้อยที่สุดไม่สมจริงเพียงใด?
chown /Users/bruce/Library/Preferences/Preferences/ และก็ไม่เป็นไร!
sudoฉันมีเพียงเพื่อsuแต่อย่างที่คุณพูดhomebrewเป็นการออกแบบผู้ใช้คนเดียว