각 사용자의 기본 셸을 표시하는 명령을 함께 작성하려고 합니다. 연구를 통해 예를 들어 기본 셸을 변경 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