OSX วิธีที่ถูกต้องในการเปลี่ยนเปลือกเริ่มต้นของผู้ใช้คืออะไร? เมื่อฉันค้นหามันฉันพบการอ้างอิงหลายแอปพลิเคชันที่เรียกว่า NetInfo Manager แต่ฉันไม่พบมันในระบบของฉัน นอกจากนี้ยังมีการอ้างอิงถึงเวอร์ชันบรรทัดคำสั่งชื่อ niutil ซึ่งฉันไม่พบเช่นกัน
OSX วิธีที่ถูกต้องในการเปลี่ยนเปลือกเริ่มต้นของผู้ใช้คืออะไร? เมื่อฉันค้นหามันฉันพบการอ้างอิงหลายแอปพลิเคชันที่เรียกว่า NetInfo Manager แต่ฉันไม่พบมันในระบบของฉัน นอกจากนี้ยังมีการอ้างอิงถึงเวอร์ชันบรรทัดคำสั่งชื่อ niutil ซึ่งฉันไม่พบเช่นกัน
คำตอบ:
สำหรับ <= 10.4 - ผู้จัดการ netinfo, / users / whoever / shell
สำหรับ> = 10.5
sudo chsh -s /path/to/shell username
โดยที่ shell คือสิ่งที่คุณต้องการสำหรับผู้ใช้นั้น sudo
ไม่จำเป็นถ้าคุณรู้username
รหัสผ่าน
man chsh
สำหรับตัวอย่างเพิ่มเติม
chsh
และเปลี่ยนฟิลด์เชลล์ ถ้าคุณได้รับข้อผิดพลาดเช่นchsh: /usr/local/bin/bash: non-standard shell
เพิ่มการ/usr/local/bin/bash
/etc/shells
chsh -s /path/to/shell username
NetInfo ถูกแทนที่ด้วย Directory Services (dscl) และสามารถบันทึกเชลล์เริ่มต้นสำหรับ Mac OS X ตั้งแต่ 10.3 ได้ถูกทุบตี ก่อนหน้านั้นมันเป็น tcsh
หากคุณต้องการทำสิ่งนี้จากบรรทัดคำสั่ง (เช่นสำหรับการกดผ่าน ARD หรือจากระยะไกลผ่าน SSH) คุณสามารถเรียกใช้:
sudo dscl localhost -change /Local/Default/Users/USERNAME shell OLD_SHELL NEW_SHELL
#In Use:
sudo dscl localhost -change /Local/Default/Users/chealion shell /bin/bash /bin/zsh
หากคุณไม่แน่ใจเกี่ยวกับเปลือกปัจจุบันคุณสามารถเรียกใช้:
sudo dscl localhost -read /Local/Default/Users/USERNAME shell
หากผู้ใช้ไม่ใช่ผู้ใช้ท้องถิ่นเส้นทางจะเปลี่ยนและถ้าจำเป็นคุณจะเปลี่ยนlocalhost
เป็นชื่อเซิร์ฟเวอร์ Open Directory ของคุณ (สมมติว่ามันทำงาน 10.5)
ข้อมูลถูกเก็บไว้ใน. plists (xml) ใน/private/var/db/dslocal/
- คุณไม่ต้องการแก้ไขไฟล์ plist ด้วยตนเอง
สำหรับ 10.10:
ไม่ใช่shell
แต่UserShell
:
sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh