2012-06-15 11 views

Odpowiedz

52

Kanoniczny sposób sprawdzania pliku /etc/passwd dla tej informacji jest z getent. Można przetwarzać dane wyjściowe getent za pomocą standardowych narzędzi, takich jak cut, aby wyodrębnić powłokę logowania użytkownika. Na przykład:

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

getent da ci wynik ala/etc/passwd. poniższe polecenie palca sprawia, że ​​człowiek jest czytelny dla osób nieużywanych do tworzenia pliku passwd. getent jest jednak bardziej odpowiednim narzędziem. –

+0

Cóż, pytający wyjaśnia, że ​​chce sposobu, aby zobaczyć powłokę, ponieważ grepping/etc/passwd nadal będzie pokazywał powłokę i inne dane, ale getent jest najbardziej podstawowym sposobem na zapytanie o dane z formatu bazy danych, takie jak pliki są w. –

+1

Warto zauważyć, że/etc/passwd nie zawsze zawiera te informacje na rzeczywistych witryn wielu użytkowników; może być obecny w bazie danych LDAP. Niestety, chociaż jestem niejasno świadomy, że PAM jest tak naprawdę systemem odpowiedzialnym za patrzenie na te rzeczy, nie wiem * jak * to sprawdzić, więc mam nadzieję na kolejną odpowiedź. – Glyph

6

Powłoka logowanie jest zdefiniowana w /etc/passwd. Więc można zrobić:

grep username /etc/passwd 
+5

To niekoniecznie jest tam zdefiniowane. getent to właściwa droga. – jlliagre

2

myślę co szukasz to:

#!/bin/bash 

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

EDIT: @jrrs poleca tę wersję jako poprawa ... zgadzam ...

#!/bin/bash 

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

Zapisz jako get-shell że gdzieś na swojej drodze (prawdopodobnie ~/bin), a następnie wywołać ją lubię:

get-shell userfoo 
18

Polecenie to 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 nie ma tego polecenia, ale można je łatwo zainstalować za pomocą 'yum install finger'. – noun

+1

Współpracuje z OS X. – polym