ฉันจะเปลี่ยนเปลือกเริ่มต้นของฉันในบัญชีโดเมนได้อย่างไร


13

ฉันใช้บัญชีโดเมน samba4 เพื่อเข้าสู่ระบบบนแล็ปท็อปของฉัน ฉันต้องการทดลองzshใช้ แต่เนื่องจากผู้ใช้ของฉันไม่ได้อยู่ใน/etc/passwdฉันพบว่าchshไม่พบผู้ใช้ของฉัน ทุกคนสามารถให้คำแนะนำฉันจะเปลี่ยนได้login_shellอย่างไร

ผมมองไม่เห็นอะไรในของฉันldap.conf, nssswitch.confหรืออะไร/etc/pam.dที่ช่วยให้ ...

มองหาตัวควบคุมโดเมนฉันคิดว่าบางทีฉันสามารถใช้ samba-tool ได้ แต่ฉันไม่เห็นความช่วยเหลือใดที่ชี้ให้ฉันไปในทิศทางที่ถูกต้อง ...

คำตอบ:


24

ฉันถามเกี่ยวกับสิ่งนี้ในช่อง #suse บน Freenode และ Miuku แนะนำเช่นเดียวกับ Arul อย่างไรก็ตามเขาพูดถึงสองสิ่งหากฉันใช้โดเมน Windows ฉันสามารถตั้งค่าแอตทริบิวต์ loginShell ได้

น่าเศร้าที่ฉันอยู่ในโดเมนแซมบ้าดังนั้นจึงไม่ได้ช่วย แต่ข้อเสนอแนะสุดท้ายของเขาสมบูรณ์แบบรับผล:

getent passwd USERNAME

สิ่งนี้จะมีรายการที่ถูกต้องเทียบเท่ากับผู้ใช้ของคุณใน / etc / passwd ใช้สิ่งนี้วางลงใน / etc / passwd และอัปเดตเชลล์ที่ส่วนท้ายสำหรับพา ธ ที่ถูกต้องของเชลล์ที่คุณต้องการใช้ ด้วยวิธีนี้มันจะไม่เปลี่ยนมันสำหรับผู้ใช้ทุกคนและคุณสามารถมั่นใจได้ว่าเชลล์อยู่ในเครื่องที่คุณกำหนดค่าไว้ก่อนที่จะทำการเปลี่ยนแปลง


getent passwd `id -un` | sudo tee -a /etc/passwdหากคุณไม่ต้องการที่จะคัดลอกและวางคุณสามารถใช้: ไม่แน่ใจว่ามันใช้ได้กับทุกเชลล์หรือไม่ แต่อย่างน้อย bash และ tcsh ก็โอเค
Tom Saleeba

การทำเช่นนี้ใน RHEL 7 กล่องเชื่อมต่อกับโดเมนของ Windows AD เกิดจากฉันไปถูกล็อคออกจากเซิร์ฟเวอร์จนกว่าสายจะถูกลบออกจากไฟล์ / etc / passwd ...
Taegost

ขอบคุณสำหรับข้อมูล @Taegost ฉันไม่ได้ลองใน RHEL
Rumbles

5

ฉันมีปัญหาเดียวกันทุกประการ เนื่องจากไม่ใช่ทุกเครื่องในโดเมนของฉันที่ติดตั้ง zsh และเนื่องจากฉันไม่ต้องการส่งผลกระทบต่อผู้ใช้ทั้งหมดฉันจึงลงเอยด้วยการ. bashrc ของฉัน:

if [ -x /usr/bin/zsh ]; then
  echo 'starting zsh'
  # export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
  exec /usr/bin/zsh
fi

นี่อาจไม่เหมาะสม แต่อย่างน้อยก็ทำให้งานเสร็จ


มีคนที่ทำงานของฉันทำสิ่งที่คล้ายกันเมื่อเร็ว ๆ นี้เขามีปัญหากับวิธีการของเขาที่ไม่ได้โหลดไฟล์. zshrc ฉันไม่ทราบว่าวิธีการของคุณจะใช้งานได้หรือไม่คุณลองมาแล้ว นอกจากนี้ตัวแปร SHELL ของคุณไม่เหมือนกับเส้นทางไปยัง zsh bin ของคุณถูกต้องหรือไม่ ฉันเปลี่ยนการตั้งค่าของพวกเขาเป็นวิธีการของฉันในการตั้งค่าในไฟล์ passwd
Rumbles

ที่น่าสนใจ -. zshrc ของฉันถูกอ่านอย่างถูกต้อง เกี่ยวกับประเด็นที่สองของคุณขอบคุณที่ทำให้มันดีขึ้นมันเป็นความผิดพลาดของฉัน ดูคำตอบได้ที่นี่: unix.stackexchange.com/questions/330233/…
Matteo Giani

แน่นอนว่าวิธีหนึ่งในการทำฉันยังคงต้องการตั้งค่าในไฟล์ / etc / passwd เช่นเดียวกับคำตอบที่ฉันยอมรับเพราะคุณไม่เรียกใช้ bash แล้วโหลด zsh ด้วย bash (บวกฉันเดาว่าถ้าคุณกด ctrl-D ใน การตั้งค่าของคุณถูกดร็อปไปยัง bash shell หรือไม่?) - ผู้ใช้จำเป็นต้องตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง zsh และสำหรับผู้ดูแลระบบเพื่อทำการเปลี่ยนแปลง
Rumbles

มันจะดีกว่าแทนที่จะใช้/usr/bin/zshเป็นแทนที่จะใช้exec /usr/bin/zshเพื่อแทนที่bashกระบวนการเชลล์ด้วยzshกระบวนการเชลล์หรือไม่
Tripp Kinetics

ฉันคิดว่าคุณน่าจะถูก @TrippKinetics
Matteo Giani

2

หากคุณมีสิทธิ์เข้าถึงเพื่อแก้ไขการกำหนดค่าตัวควบคุมโดเมน samba คุณสามารถตั้งค่าคุณสมบัติต่อไปนี้ที่ให้คุณตั้งค่าเชลล์ในsmb.conf

template shell    = /bin/zsh

ไม่แน่ใจว่าจะเกิดอะไรขึ้นถ้าคุณลงชื่อเข้าใช้เครื่องที่ไม่ได้ติดตั้ง zsh (ไม่ distros ทั้งหมดติดตั้ง zsh ตามค่าเริ่มต้น) แต่ฉันเดาว่ามันจะเรียกใช้ distro เชลล์เริ่มต้น

หากคุณต้องการลองเพียงพิมพ์ zsh เพื่อรับ subshell ซึ่งฉันแน่ใจว่าคุณรู้แล้ว


ขอบคุณ แต่จะไม่ส่งผลกระทบต่อผู้ใช้ทุกคนไม่ใช่แค่ของฉัน
Rumbles

ใช่มันเป็นพารามิเตอร์ทั่วโลกที่มีผลต่อผู้ใช้ทั้งหมด ในกรณีนี้ผู้ใช้ทั้งหมดที่zshติดตั้ง ฉันไม่แน่ใจว่าคุณสามารถ จำกัด สิ่งนี้ให้กับผู้ใช้ที่เฉพาะเจาะจง แต่ฉันจะตรวจสอบidmap uidพารามิเตอร์ที่อาจทำให้คุณทำเช่นนั้น
Arul Selvan

ขอบคุณ แต่นั่นไม่ใช่สิ่งที่ฉันตามมา ฉันไม่ต้องการเปลี่ยนเปลือกทุกคนฉันแค่ต้องการเปลี่ยนเปลือกของฉัน ฉันพยายามเปลี่ยนการตั้งค่านี้ใน smb.conf ในพื้นที่ของฉันและหลังจากรีบูตเครื่องไม่มีผล
Rumbles
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.