리눅스/리눅스 응용

명령어 'find / -type f -perm -4000 -exec ls -l {} \;'

Linuxpia 2024. 12. 31. 23:26
반응형

find / -type f -perm -4000 -exec ls -l {} \;

명령어에서 사용된 -exec ls -l {} \;는 find 명령어의 검색 결과에 추가 작업을 수행할 때 사용되는 옵션입니다. 각 부분을 상세히 설명하겠습니다.


명령어 구조


find / -type f -perm -4000 -exec ls -l {} \;

1. find / -type f -perm -4000


find: 파일 및 디렉터리 검색 명령어

/: 루트 디렉터리부터 검색 시작

-type f: 일반 파일만 검색

-perm -4000: Set-UID 비트(4000)를 포함하는 파일 검색

2. -exec


설명: 검색된 각 파일에 대해 지정된 명령어를 실행합니다.

기능: 검색 결과에 대해 후속 조치를 적용할 수 있습니다.

예시: 검색된 파일의 권한, 소유자, 크기 등을 확인하거나 삭제, 이동 등의 추가 작업 수행 가능.

3. ls -l


설명: 검색된 파일의 **상세 정보(권한, 소유자, 그룹, 크기, 수정 날짜 등)**를 출력합니다.

예시 출력:


-rwsr-xr-x 1 root root 14512 Dec 22 10:00 /usr/bin/passwd

의미:


rwsr-xr-x: Set-UID 비트가 설정된 권한 표시(s로 표기).

root root: 소유자 및 그룹 정보.

/usr/bin/passwd: 검색된 파일 경로.

4. {}


설명: 검색된 각 파일의 경로가 이 위치에 삽입됩니다.

예시: /usr/bin/passwd가 검색되었다면 실제 명령어는 다음과 같이 실행됩니다.

ls -l /usr/bin/passwd

5. \;


설명: -exec 명령의 종료를 나타냅니다.

필수 이유: 명령어가 끝나는 위치를 명시해야 find가 정상적으로 동작합니다.

주의점: ;는 쉘에서 특수문자이므로 이스케이프(escape) 처리(\;)가 필요합니다.


응용 예제

1. 파일 크기와 권한 정보 확인


find /usr -type f -perm -4000 -exec ls -lh {} \;

-lh: 파일 크기를 사람이 읽기 쉬운 형식으로 출력(MB, GB 단위).

2. Set-UID 파일 소유자 변경


find / -type f -perm -4000 -exec chown root:root {} \;

검색된 파일의 소유자를 root로 변경.

3. Set-UID 제거


find / -type f -perm -4000 -exec chmod u-s {} \;

검색된 파일의 Set-UID 비트를 제거.


정리


-exec 옵션은 find 명령어와 함께 검색된 파일에 대해 명령어를 실행할 수 있는 강력한 도구입니다.

ls -l {}: 검색된 파일의 상세 정보를 확인.

\;: 명령어 종료를 명시.
추가적인 작업(소유권 변경, 권한 수정 등)을 자동화할 수 있어 시스템 관리에 유용하게 활용됩니다.