ypchsh no cambia a algunas conchas


2

Actualmente estoy en bash pero quiero cambiar mi shell a tcsh. Utilicé ypchsh, ingresé mi contraseña cuando se me solicitó y luego cambié el shell de inicio de sesión a / bin / tcsh. Y parecía que funcionaba porque recibí un mensaje que dice "El shell de inicio de sesión se ha cambiado en [dominio]". Luego me desconecté y volví a iniciar sesión. Hice eco de $ 0 para verificar mi shell actual pero dice que todavía estoy en / bin / bash. Sin embargo, cuando echo $ SHELL obtengo / bin / tcsh. Y cuando hago ps, muestra que bash se está ejecutando en lugar de tcsh.

Otros pasos para resolver problemas: Intenté hacer los mismos pasos para cambiar a diferentes shells como sh y ksh, que funciona. Sin embargo, cambiar a csh me da el mismo resultado que intentar cambiar a tcsh. Comprobado / etc / shells y tcsh aparece en la lista. También probé exec tcsh pero el sistema todavía ejecuta bash.

Estoy tratando de hacer esto en una cuenta escolar, así que tal vez haya un problema de permiso. Aunque uno de mis compañeros de clase pudo hacer que su cuenta cambiara de caparazón. Si no hay permiso, ¿hay algún archivo que deba configurar?

[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

Realiza todos estos pasos secundarios para ver qué shell está ejecutando: ¿qué dice la evidencia principal ? ¿Qué pasa si escribes FOO=BAR? ¿Qué shell estás ejecutando realmente? Y en serio? ¿Lo intentaste exec tcshy todavía estás en fiesta? Siento que no nos cuentas toda la historia.
Scott

@ Scott No estoy muy familiarizado con los sistemas Linux, ¿puede explicar cómo puedo encontrar la "evidencia principal" y qué quiere decir escribiendo FOO = BAR? También publiqué un historial de comandos que hice.
Alice

(0) Gracias por proporcionar la actualización, pero sería más claro si eliminara los >caracteres y los insertara $  antes de los comandos de shell. Es mejor si copia desde su terminal y pega en Super User. (Por supuesto, está bien redactar información confidencial como su nombre de usuario y el nombre de la máquina). Pero si cambia el indicador de shell, muéstrelo. (1) Dices que no estás muy familiarizado con los sistemas Linux. Tengo que preguntarme cuánto entiendes sobre los proyectiles * nix y por qué quieres cambiar los tuyos. (2) Cuando digo tipo FOO=BAR, me refiero a tipo FOO=BAR(seguido de Enter) en el indicador de comandos de shell.
Scott

Actualicé y pegué lo que hice en la terminal. Intenté FOO = BAR pero no parece que haya hecho nada. No sé nada acerca de los shells de nix y necesito estar en tcsh porque los ejercicios en clase se realizan en tcsh y sería más fácil de seguir si mi shell es el mismo.
Alice

Ah, pero no necesitas convertirlo en tu caparazón principal solo por eso, ¿verdad? Cualquier shell puede iniciarse desde cualquier otro shell como un programa normal.
Grawity

Respuestas:


0

La razón por la cual mi shell sigue volviendo a bash e incluso me impide usar exec para ingresar a tcsh fue porque en el archivo .cshrc había una línea que decía exec /bin/bash -lallí. Para solucionar esto, eliminé esa línea y desde ese momento puedo cambiar los shells.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.