강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

텍스트파일의 필요한 부분만을 뽑아낼 수 있는 cut활용법4편: /etc/passwd파일과 /etc/shadow파일에서 필요한 항목만을 출력하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

텍스트파일의 필요한 부분만을 뽑아낼 수 있는 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도 함께 익혀두기 바란다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,854 개
  • 현재 접속자 :  136 명