텍스트파일의 필요한 부분만을 뽑아낼 수 있는 cut활용법4편: /etc/passwd파일과 /etc/shadow파일에서 필요한 항목만을 출력하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,271 조회
- 0 추천
- 목록
본문
텍스트파일의 필요한 부분만을 뽑아낼 수 있는 cut활용법4편: /etc/passwd파일과 /etc/shadow파일에서 필요한 항목만을 출력하기
이번 예는 /etc/passwd파일, /etc/group, /etc/shadow파일등에서 원하는 항목만을 출력할 수 있는 매우 유용한 방법이다.
즉, cut명령어의 응용부분으로서 /etc/passwd파일의 각 행들을 : (콜론)으로 구분하여 원하는 필드만을 출력할 수 있다.
이번 예의 정확한 이해를 위하여 이 장의 앞부분에서 설명한 /etc/passwd의 자리설명 도표를 참조하기 바란다.
앞에서도 자세히 설명하였지만 /etc/passwd파일을 : (콜론)으로 구분하면 각각의 필드항목들을 간단히 설명하면 다음과 같다.
첫번째 필드 : 사용자계정명(ID)
두번째 필드 : 패스워드
자리(대부분 x로 표시되고 실제 패스워드는 /etc/shadow에
저장되어있음)
세번째 필드 : UID를
의미함.
네번째 필드 : GID를
의미함.
다섯번째 필드 : 계정코멘트(설명자)
여섯번째 필드 : 계정의 홈디렉토리
일곱번째 필드 : 해당계정이 사용하는 쉘(SHELL)
결론적으로 cut명령어를 이용하여 /etc/passwd파일의 원하는 필드항목만을 출력하고자 한다면 “cut -d : -f 필드자리 파일명”의 형식으로 사용하면 된다.
아래의 예는 현재 필자가 예로 들고있는 passwd파일을 : (콜론)으로 구분하여 첫번째 필드(ID)와 두번째 필드(패스워드자리), 세번째 필드(UID), 네번째 필드(GID)를 각각 출력한 것이다.
즉, “-d :”은 passwd파일의 각행들을 “:”기호로 분리하는 의미이며 “-f 1,2,3,4”는 “:”으로 분리된 각 행내에서 첫번째, 두번째, 세번째, 네번째 항목을 각각 의미한다.
[root@sulinux ~]#cut -d : -f 1,2,3,4 passwd root:x:0:0 bin:x:1:1 daemon:x:2:2 named:x:25:25 sshd:x:74:74 xfs:x:43:43 gdm:x:42:42 sspark:x:500:500 sulinux:x:501:501 bible:x:502:502 [root@sulinux ~]# |
즉, 위의 결과 passwd파일의 각각의 행들에서 ID와 패스워드자리(x), 그리고 UID만을 출력한 것이다.
이번에는 /etc/passwd파일의 각행에서 ID와 홈디렉토리만을 출력한 것이다.
passwd파일을 : (콜론)으로 구분하여 첫번째 필드(ID)와 여섯번째 필드(홈디렉토리)를 각각 출력하였다.
[root@sulinux ~]#cut -d : -f 1,6 passwd root:/root bin:/bin daemon:/sbin named:/var/named sshd:/var/empty/sshd xfs:/etc/X11/fs gdm:/var/gdm sspark:/home/sspark sulinux:/home/sulinux bible:/home/bible [root@sulinux ~]# |
위의 예에서 “-d :”은 passwd파일의 각행들을 “:”기호로 분리하는 의미이며 “-f 1,6”은 “:”으로 분리된 각 행내의 첫번째와 여섯번째 항목을 각각 의미한다.
즉, 위의 결과 passwd파일의 각각의 행들에서 ID와 홈디렉토리가 각각 출력된 것이다.
이번에는 /etc/shadow파일을 대상으로 cut을 실행한 예로서 shadow파일의 각 항목에서 필요한 항목들만을 출력할 수 있는 유용한 방법이다.
/etc/shadow파일에는 각 사용자들의 암호화된 패스워드정보와 함께 에이징(aging)정보가 저장되어 있다.
/etc/shadow파일을 : (콜론)으로 구분하면 첫번째 필드는 ID를 의미하고 두번째 필드는 MD5로 암호화된 실제 패스워드가 저장되어 있다.
먼저, 필자가 준비한 shadow의 내용을 cat명령어를 이용하여 확인한 것이다.
[root@sulinux ~]#cat /etc/shadow root:$1$K0PM7D83$OEjBkKLqc0lbEpJig4lIc/:15054:0:99999:7::: sspark:$1$HfXPlag4$KKobSvYUB2ust6r1o0igY/:14286:0:99999:7::: sulinux:$1$j1.Q0zcx$.gxQzaBQn6TREF0JTGvq./:14286:0:99999:7::: bible:$1$bEYLJL6l$IFvHSkvOYrsPF2laDLglp0:15049:0:99999:7::: [root@sulinux ~]# |
그리고 아래는 cut명령어를 이용하여 shadow파일의 각각의 행들에서 계정 ID와 암호화된 패스워드만을 출력하는 예이다.
[root@sulinux ~]#cut -d : -f 1,2 shadow root:$1$K0PM7D83$OEjBkKLqc0lbEpJig4lIc/ sspark:$1$HfXPlag4$KKobSvYUB2ust6r1o0igY/ sulinux:$1$j1.Q0zcx$.gxQzaBQn6TREF0JTGvq./ bible:$1$bEYLJL6l$IFvHSkvOYrsPF2laDLglp0 [root@sulinux ~]# |
이상으로 cut명령어의 설명을 모두 마친다.
앞서도 설명하였듯이 cut명령어는 텍스트파일을 특정 목적에 맞게 편집출력하기 위한 용도로 사용되며 이러한 작업은 awk명령어로도 가능하므로 cut과 함께 awk도 함께 익혀두기 바란다.
관련자료
-
이전
-
다음