ypchsh ไม่เปลี่ยนเป็นเชลล์บางตัว


2

ฉันกำลังทุบตีอยู่ในขณะนี้ แต่ฉันต้องการเปลี่ยนเชลล์เป็น tcsh ฉันใช้ ypchsh ป้อนรหัสผ่านเมื่อได้รับแจ้งจากนั้นเปลี่ยนเชลล์ล็อกอินเป็น / bin / tcsh และดูเหมือนว่าใช้งานได้เพราะฉันได้รับข้อความแจ้งว่า "เชลล์ล็อกอินมีการเปลี่ยนแปลงใน [domain]" จากนั้นฉันออกจากระบบและลงชื่อเข้าใช้อีกครั้งฉันทำ echo $ 0 เพื่อตรวจสอบเชลล์ปัจจุบันของฉัน อย่างไรก็ตามเมื่อฉันทำเสียงสะท้อน $ SHELL ฉันจะได้รับ / bin / tcsh และเมื่อฉันทำ ps ก็แสดงให้เห็นว่าทุบตีทำงานแทน tcsh

ขั้นตอนการแก้ปัญหาอื่น ๆ ที่ถ่าย: พยายามทำขั้นตอนเดียวกันเพื่อสลับไปยังกระสุนที่แตกต่างกันเช่น sh และ ksh ที่ใช้งานได้ อย่างไรก็ตามการเปลี่ยนเป็น csh ให้ผลลัพธ์แบบเดียวกับที่ฉันพยายามเปลี่ยนเป็น tcsh ตรวจสอบ / etc / shells และ tcsh อยู่ในรายการ ฉันยังลอง exec tcsh แต่ระบบยังคงทำงานทุบตี

ฉันกำลังพยายามทำสิ่งนี้ในบัญชีโรงเรียนดังนั้นอาจมีปัญหาสิทธิ์ แม้ว่าหนึ่งในเพื่อนร่วมชั้นของฉันสามารถรับบัญชีของเขาเพื่อเปลี่ยนเปลือก หากไม่ได้รับอนุญาตจะมีไฟล์เหมือนที่ฉันต้องตั้งค่า?

[user@machine ~]> echo $0
/bin/bash
[user@machine ~]> echo $SHELL
/bin/tcsh
[user@machine ~]> ypchsh
Changing NIS account information for user on machine
Please enter password:

Changing login shell for user on machine
To accept the default, simply press return. To use the
system's default shell, type the word "none".
Login shell [/bin/tcsh]: /bin/tcsh

The login shell has been changed on machine

[user@machine ~]> logout

[user@machine ~]> echo $0
/bin/bash
[user@machine ~]> echo $SHELL
/bin/tcsh
[user@machine ~]> FOO=BAR
[user@machine ~]> ps
  PID TTY          TIME CMD
14549 pts/21   00:00:00 bash
14780 pts/21   00:00:00 ps
[user@machine ~]> exec /bin/tcsh
[user@machine ~]> echo $0
/bin/bash
[user@machine ~]> echo $SHELL
/bin/tcsh
[user@machine ~]> FOO=BAR
[user@machine ~]>

[user@machine ~]> uname -a
Linux machine 2.6.32-696.3.2.el6.i686 #1 SMP Tue Jun 20 00:48:23 UTC 2017 i686 i686 i386 GNU/Linux
[user@machine ~]> /bin/ls -ld
drwx--s--x 49 user group 4096 Sep  1 13:08 .
[user@machine ~]> /bin/*sh
/bin/csh: /bin/csh: cannot execute binary file
[user@machine ~]> /usr/bin/*sh
Usage: amuFormat.sh <Card Type> <drive>
<Card Type> has to be defined in amuFormat.sh itself
<drive> has to be defined in mtools.conf

คุณทำตามขั้นตอนรองทั้งหมดเหล่านี้เพื่อดูว่าเปลือกหอยคุณกำลังทำงานอะไร - ประถม หลักฐานพูด? จะเกิดอะไรขึ้นถ้าคุณพิมพ์ FOO=BAR? คุณใช้เปลือกอะไรจริงๆ? และจริงจังหรือไม่ คุณลองแล้ว exec tcsh และคุณยังอยู่ในการทุบตี? ฉันรู้สึกว่าคุณไม่ได้บอกเรื่องราวทั้งหมดกับเรา
Scott

@Scott ฉันไม่คุ้นเคยกับระบบ Linux คุณสามารถอธิบายได้อย่างไรว่าฉันสามารถหา "หลักฐานเบื้องต้น" และคุณหมายถึงอะไรโดยการพิมพ์ใน FOO = BAR? ฉันโพสต์ประวัติคำสั่งที่ฉันทำด้วย
Alice

(0) ขอขอบคุณที่ให้การอัปเดต แต่จะชัดเจนกว่าถ้าคุณจะลบ > ตัวอักษรและแทรก $   ก่อนคำสั่งเชลล์ จะเป็นการดีที่สุดถ้าคุณคัดลอกจากเทอร์มินัลแล้ววางลงใน SuperUser (แน่นอนว่าคุณสามารถ redact ข้อมูลที่ละเอียดอ่อนเช่นชื่อผู้ใช้และชื่อเครื่องของคุณ) แต่ถ้า shell prompt ของคุณเปลี่ยนให้แสดงให้เห็นว่า (1) คุณบอกว่าคุณไม่คุ้นเคยกับระบบ Linux มากนัก ฉันต้องสงสัยว่าคุณเข้าใจเกี่ยวกับเปลือกหอย * nix มากแค่ไหนและทำไมคุณถึงต้องการเปลี่ยนแปลงของคุณ (2) เมื่อฉันพูดประเภท FOO=BARฉันหมายถึงประเภท FOO=BAR (ตามด้วย Enter) ที่พร้อมต์เชลล์
Scott

ฉันอัพเดตและวางสิ่งที่ฉันทำในเทอร์มินัล พยายาม FOO = BAR แต่ดูเหมือนจะไม่ทำอะไรเลย ฉันไม่รู้อะไรเกี่ยวกับหอยเชลล์และฉันจำเป็นต้องอยู่ใน tcsh เพราะการออกกำลังกายในชั้นเรียนนั้นทำใน tcsh และมันจะง่ายกว่าที่จะติดตามถ้าเปลือกของฉันเหมือนกัน
Alice

อ่า แต่คุณไม่จำเป็นต้องทำให้มันเป็นของคุณ ประถม คุณแค่ทำอย่างนั้นเหรอ? เชลล์ใด ๆ ที่สามารถเปิดตัวได้จากเชลล์อื่น ๆ เช่นโปรแกรมปกติ
grawity

คำตอบ:


0

เหตุผลที่เปลือกของฉันยังคงกลับไปทุบตีและป้องกันไม่ให้ฉันใช้ exec เพื่อเข้าสู่ tcsh เพราะในไฟล์. csrc มีบรรทัดที่ระบุว่า exec /bin/bash -l ในนั้น. ในการแก้ไขปัญหานี้ฉันลบบรรทัดนั้นและจากจุดนั้นบนฉันสามารถสลับเชลล์ได้

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