모든 사용자의 기본 쉘을 반환합니다.

모든 사용자의 기본 쉘을 반환합니다.

각 사용자의 기본 셸을 표시하는 단일 명령을 작성하려고 합니다. 조사를 통해 chsh -s /bin/ksh현재 작업을 수행하지 않는 등 기본 셸을 변경하는 명령을 대부분 찾을 수 있습니다 .

CentOS에서 이 작업을 수행하는 방법을 아는 사람이 있습니까?

답변1

또 다른 방법

getent passwd | cut -d: -f1,7

답변2

/etc/passwd시스템의 모든 사용자 계정에 관한 기타 관련 정보와 함께 사용자 이름 및 로그인 셸 목록이 포함된 파일을 구문 분석할 수 있습니다 .

사용자 이름은 :구분된 첫 번째 필드에 저장되고 로그인 쉘은 일곱 번째(마지막) 필드에 저장됩니다.

awk따라서 예쁘기를 위해 중간에 약간의 형식을 사용하여 필드를 인쇄하는 데 사용할 수 있습니다 .

awk -F':' '{ print $1 " " FS " " $NF }' /etc/passwd

ldap로컬 파일 시스템을 사용하지 않는 서비스를 사용하는 경우 getent passwd다음을 수행 nsswitch하여 정보를 얻은 다음 awk그 위에 사용할 수 있습니다.

getent passwd | awk -F':' '{ print $1 " " FS " " $NF }'

예:

% awk -F':' '{ print $1 " " FS " " $NF }' /etc/passwd
root : /bin/bash
daemon : /usr/sbin/nologin
bin : /usr/sbin/nologin
sys : /usr/sbin/nologin
sync : /bin/sync
games : /usr/sbin/nologin
man : /usr/sbin/nologin
lp : /usr/sbin/nologin
mail : /usr/sbin/nologin

답변3

해당 정보는 /etc/passwd에 저장됩니다.

cut -d: -f1,7 /etc/passwd

관련 정보