2012-06-15 12 views

Respuesta

52

La forma canónica para consultar el archivo/etc/passwd para esta información es con getent. Puede analizar la salida getent con herramientas estándar como cut para extraer el shell de inicio de sesión del usuario. Por ejemplo:

$ getent passwd $LOGNAME | cut -d: -f7 
/bin/bash 
+0

getent le dará salida ala/etc/passwd. el comando con el dedo a continuación lo hace legible para aquellos que no están acostumbrados a completar el archivo passwd. getent es la herramienta más apropiada. –

+0

Bueno, el interlocutor deja claro que quieren ver el caparazón, porque grepping/etc/passwd aún mostrará el shell y otros datos, pero getent es la forma más fundamental de consultar datos del formato de la base de datos que tal los archivos están en. –

+1

Vale la pena señalar que/etc/passwd no siempre contiene esta información en sitios reales de usuarios múltiples; puede estar presente en una base de datos LDAP. Lamentablemente, aunque soy vagamente consciente de que PAM es realmente el sistema responsable de buscar esto, no sé * cómo * buscarlo, así que espero otra respuesta. – Glyph

6

El shell de entrada se define en /etc/passwd. Por lo que puede hacer:

grep username /etc/passwd 
+5

No se define necesariamente allí. getent es el camino correcto. – jlliagre

2

Creo que lo que busca es la siguiente:

#!/bin/bash 

cat /etc/passwd | grep $1 | cut -d ':' -f 7 

EDIT: @jrrs recomienda esta versión como una mejora ... Estoy de acuerdo ...

#!/bin/bash 

grep "^$1" /etc/passwd | cut -d ':' -f 7 

Guardar como get-shell que alguna parte de su trayectoria (probablemente ~/bin) y llamarlo como:

get-shell userfoo 
18

El comando es finger.

[[email protected] ~]$ finger ken 
Login: ken      Name: Kenneth Berland 
Directory: /home/ken     Shell: /bin/tcsh 
On since Fri Jun 15 16:11 (PDT) on pts/0 from 70.35.47.130 
    1 hour 59 minutes idle 
On since Fri Jun 15 18:17 (PDT) on pts/2 from 70.35.47.130 
New mail received Fri Jun 15 18:16 2012 (PDT) 
    Unread since Fri Jun 15 17:05 2012 (PDT) 
No Plan. 
+0

CentOS 6 no tiene este comando, pero puede instalarlo fácilmente con 'yum install finger'. – noun

+1

Trabajó con OS X. – polym

Cuestiones relacionadas