RHEL의 기본 명령이 아닌 SUID 시스템 실행 파일을 찾기 위한 명령을 함께 작성하려고 합니다.
이를 위해 로컬 파일 시스템 목록을 가져와(df --local -P) grep으로 파이프하여 헤더를 제거한 다음(grep -v ^Filesystem) awk를 사용하여 열 6을 가져온 다음 검색을 실행했습니다. 해당 폴더에 SUID 시스템 실행 파일이 있는지 확인하세요(awk '{ find $6 -xdev -type f -perm -4000 -print }).
내가 겪고 있는 문제는 find 명령에 -print를 사용할 때 구문 오류가 발생하지만 이를 무시하면 출력이 없다는 것입니다. 무슨 일이 일어나고 있는지, 결함을 해결하는 방법을 실제로 이해하고 있는지 잘 모르겠습니다. 여기가 내가 도움이 필요한 곳이다 :-).
이 작업이 완료되면 다음 단계는 미리 정의된 실행 파일 배열을 가져오고(SUID는 기본적으로 설정되어야 한다는 것을 알고 있습니다) 출력에서 제거하는 것입니다.
df --local -P | grep -v ^Filesystem | awk '{ find $6 -xdev -type f -perm -4000 -print }'
awk: { find $6 -xdev -type f -perm -4000 -print }
awk: ^ syntax error
답변1
find
awk
함수 가 아닌 실행 파일입니다 . S, awk에서 실행 파일을 호출하려면 이 system()
함수를 사용해야 합니다.
cmd | awk '{system("find " $6 " -xdev -type f -perm -4000 -print")}'