우분투 cksum 명령어 완벽 가이드: 파일 무결성 및 체크섬 검증 실습

개요

리눅스 환경에서 데이터 전송이나 백업 후 파일이 손상되거나 변조되지 않았는지 확인하는 것은 매우 중요합니다. 본 글에서는 우분투 24.04 환경에서 기본 제공되는 cksum 명령어를 활용하여 파일 체크섬을 계산하고 데이터 무결성을 검증하는 실무 방법을 단계별로 살펴봅니다.

cksum 기본 사용법 및 단일 파일 체크섬 계산

cksum 명령어 실습을 위한 전용 디렉터리를 생성하고 이동하기 위해 mkdir -p ~/cksum_demo && cd ~/cksum_demo 명령어를 실행합니다.

mkdir -p ~/cksum_demo && cd ~/cksum_demo

체크섬 계산 테스트에 사용할 샘플 텍스트 파일을 생성하기 위해 echo 'Hello Ubuntu cksum test' > original.txt 명령어를 실행합니다.

echo ‘Hello Ubuntu cksum test’ > original.txt

cksum 명령어는 지정한 파일의 체크섬 값과 바이트 단위 크기를 계산하여 파일의 무결성을 검증합니다.
출력 결과의 첫 번째 숫자는 32비트 CRC 체크섬 값이고, 두 번째 숫자는 파일의 바이트 크기(24바이트)를 나타냅니다.
⚙️ [주요 옵션]

-a, --algorithm : CRC 외에 md5, sha1, sha256 등 사용할 체크섬 알고리즘을 지정합니다.
-c, --check : 체크섬 목록이 저장된 파일을 읽어 파일들의 무결성을 일괄 검증합니다.
--untagged : 알고리즘 이름 태그 없이 체크섬 값과 파일명만 역방향 표준 형식으로 출력합니다.
--base64 : 체크섬 다이제스트를 16진수 대신 base64 형식으로 인코딩하여 출력합니다.
--raw : 체크섬 결과를 바이너리(원시 바이트) 형태로 출력합니다.

cksum original.txt

복수 파일 비교 및 파일 변조 감지 실습

동일한 내용의 복사본 파일을 준비하기 위해 cp original.txt copy.txt 명령어를 실행합니다.

cp original.txt copy.txt

파일 변조 테스트를 위해 원본 파일을 복사한 후 임의의 내용을 추가하는 cp original.txt modified.txt && echo 'unexpected change' >> modified.txt 명령어를 실행합니다.

cp original.txt modified.txt && echo ‘unexpected change’ » modified.txt

cksum original.txt copy.txt modified.txt 명령어를 실행하여 준비된 파일들의 체크섬과 바이트 크기를 동시에 비교합니다.
동일한 내용을 가진 original.txt와 copy.txt는 체크섬 값(306207352)과 크기(24)가 정확하게 일치합니다.
임의로 수정된 modified.txt는 체크섬 값(633487654)과 크기(42)가 다르게 나타나 파일의 변조 여부를 신속하게 판별할 수 있습니다.

cksum original.txt copy.txt modified.txt

파이프라인 및 표준 입력(stdin) 데이터 무결성 검증

파이프라인(|)을 통해 표준 입력으로 전달된 텍스트 데이터의 체크섬을 계산하기 위해 echo 'Streaming text data' | cksum 명령어를 실행합니다.
디스크에 별도의 파일을 생성하지 않고도 데이터 스트림의 체크섬 값(1759270211)과 바이트 크기(20)를 즉시 검증할 수 있습니다.

echo ‘Streaming text data’ | cksum

여러 파일을 아카이브로 묶은 뒤 즉시 무결성을 확인하기 위해 tar -cf demo_archive.tar original.txt copy.txt && cksum demo_archive.tar 명령어를 실행합니다.
생성된 demo_archive.tar 아카이브의 체크섬 값(2343346160)과 파일 크기(10240바이트)가 정상적으로 계산되어 출력됩니다.

tar -cf demo_archive.tar original.txt copy.txt && cksum demo_archive.tar

고급 알고리즘(SHA256, MD5) 지정 및 체크섬 파일 검증

-a sha256 옵션을 사용하여 original.txt 파일의 SHA256 해시값을 계산한 뒤, 리다이렉션(>)을 통해 original.sha256 파일로 저장합니다.

cksum -a sha256 original.txt > original.sha256

생성된 체크섬 파일의 내용을 확인하기 위해 cat original.sha256 명령어를 실행합니다.
파일 내부에 대상 파일명과 함께 64자리의 SHA256 해시 다이제스트가 표준 태그 형식으로 올바르게 기록된 것을 확인할 수 있습니다.

cat original.sha256

-c 옵션을 사용하여 체크섬 파일에 기록된 정보를 기반으로 대상 파일의 무결성을 일괄 검증하는 cksum -c original.sha256 명령어를 실행합니다.
계산된 체크섬과 저장된 값이 정확히 일치하여 original.txt: OK 메시지가 출력되며, 파일이 변조되지 않았음을 확인할 수 있습니다.

cksum -c original.sha256

지금까지 우분투 환경에서 cksum 명령어를 활용해 파일의 무결성과 체크섬을 검증하는 방법을 간단하게 살펴보았습니다.
파일 전송이나 백업 후 데이터의 변조 및 손상 여부를 빠르고 정확하게 확인해야 할 때 유용하게 활용해 보시기 바랍니다.