lsof 명령어 활용법은 무엇인가요?
💡 요약 정리
- lsof는 시스템에서 열린 파일, 네트워크 포트 등에 접근 중인 프로세스를 확인하는 유용한 도구입니다.
- 보안상 일반 사용자 접근을 막기 위해 해당 파일의 권한은 700 또는 100으로 변경하는 것이 좋습니다.
- 다양한 옵션(-a, -b, -i 등)을 통해 원하는 정보만 필터링하여 출력할 수 있습니다.
- 예시 명령어들을 통해 실전 사용법까지 익힐 수 있습니다.
1. lsof 란?
- lsof란 list open files 명령어로써, 열려진 파일들을 보는 명령어입니다.
- 시스템에서 동작하고 있는 모든 프로세스에 의해서 열려진 파일들에 대한 정보를 보여주는 시스템 관리 명령어입니다.
- 일반유저의 접근을 허용하지 않도록 퍼미션을 700이나 100으로 변경하는 것이 보안상 좋습니다.
2. lsof 명령어 옵션
-
-a: 다양한 옵션에서 기본적으로 OR 연산을 사용하는데, 이 옵션을 통해 AND 연산 수행이 가능합니다.
-
-b: lsof 명령어가 커널의 함수들로 인해 블록되는 것을 방지. 스크립트 실행 시 유용합니다.
-
-c: 특정 명령어나 프로그램이 참조하고 있는 파일 목록 출력 예)
lsof -c httpd -
-d: 지정한 파일 기술자 범위(N-M) 또는 개별(N,M...)을 출력합니다.
-
+d: 지정한 디렉토리 또는 내부 파일들을 사용하는 정보를 출력합니다.
-
-F: 출력 결과에서 원하는 필드만 출력. 기본값은 –Fp (PID).
-
-g: 특정 GPID(Group PID) 프로세스 출력.
-
-i: 네트워크 소켓 정보 출력 (IP, 포트 등 필터링 가능)
- 4, 6: IPv4, IPv6 필터링
@hostname,@ip address: 호스트 또는 IP 주소 필터링:service port: 서비스명 또는 포트 번호 필터링
-
-N: NFS 파일 정보 출력
-
-G: 여러 GPID 정보 출력
-
-l: 로그인 사용자 대신 UID 출력
-
-n: 호스트이름 대신 IP 주소 출력
-
-P: 서비스 이름 대신 포트 번호 출력
-
-r: 출력 주기를 설정하여 지속적인 모니터링 수행 (기본 주기: 15초)
-
-u: 특정 사용자 ID 또는 UID로 파일 출력. 제외하려면
^사용자사용 -
-i: 특정 호스트(IP)에 대한 접속 출력
3. lsof 명령어 활용 예시
- 특정 파일을 엑세스하고 있는 프로세스 확인
[root@localhost /root]# lsof /var/log/messages
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
syslogd 1671 root 1w REG 8,3 89431108 2392131 /var/log/messages
ossec-log 4932 root 5r REG 8,3 89431108 2392131 /var/log/messages
- 특정 디렉토리 내 파일을 사용하는 프로세스 목록
[root@localhost /root]# lsof +D /var/log
...
하위디렉토리에 있는 파일까지 검색할 경우
+D옵션 사용
- 인터넷 연결 소켓을 사용하는 프로세스 확인
[root@localhost /root]# lsof -i 4
...
[root@localhost /root]# lsof -i 6
...
- 특정 프로세스(PID)가 사용 중인 자원 확인
[root@localhost /root]# ps -ef | grep vsftpd
...
[root@localhost /root]# lsof -p 1804
...
- 특정 데몬이 사용하는 파일 및 프로세스 확인
[root@localhost /root]# lsof -c syslogd
...
- 특정 사용자가 사용하는 자원 확인
[root@localhost /root]# lsof -u kky
...
- 외부 IP와의 접속 상태 확인
[root@localhost /root]# lsof -i@123.x.x.x
...
- 본인의 IP에 접속 중인 상태 확인
[root@localhost /root]# lsof -i@10.x.x.x
...
- 특정 포트에 연결된 접속 확인
[root@localhost /root]# lsof -i@10.x.x.x:22
...