우리는 다음과 같은 hp-ux 구성을 사용합니다:
HP-UX dxp10hxw B.11.23 U 9000/800 1446354274 unlimited-user license
그리고 다음과 같이 간단한 find 명령을 실행해 보세요.
find . ! -type l -perm -0020 -exec ls -l {} \;
그러면 그룹 쓰기 권한이 있는 현재 디렉터리의 모든 파일/폴더 목록이 생성됩니다. 그러나 그룹 쓰기 권한이 없는 파일도 나열됩니다.
우리는 위 명령의 변형을 조사하고 시도했습니다. 예를 들면 다음과 같습니다.
find . ! -type l -perm -g+w -exec ls -l {} \;
find . ! -type l -perm -g=w -exec ls -l {} \;
하지만 아무것도 작동하지 않는 것 같습니다. 인터넷 검색을 시도했지만 hp-ux에 대한 Google 결과가 많지 않았습니다. hp-ux 포럼에서 찾을 수 있는 가장 가까운 것은 다음과 같습니다.http://community.hpe.com/t5/System-Administration/commnd-to-find-All-world-writable-files-in-hpux-11-0-system/td-p/3260440그러나 거기에 언급된 조언도 도움이 되지 않습니다.
우리는 한 번에 하나의 파일을 찾으려고 노력합니다. 예를 들어 권한이 711인 temp.txt 파일이 있고 위 명령을 실행하면 결과에 나타납니다. 그런 다음 현재 디렉터리의 모든 파일 대신 해당 파일만 검색하도록 명령을 수정하고 다음 명령을 실행합니다.
find ./temp.txt ! -type l -perm -g+w -exec ls -l {} \;
결과가 생성되지 않았습니다. 그런 다음 폴더에 작은 파일 세트를 제공하려고 시도하면 출력으로 수신된 파일 목록이 정확하지만 폴더의 파일 수가 증가하면 결과가 다시 부정확해집니다. 따라서 적어도 우리는 검색에서 많은 수의 파일(약 600개 파일)에 대한 충돌이 발생한다는 것을 알고 있습니다. 도와주세요!
답변1
주문하다
find . ! -type l -perm -0020 -exec ls -l {} \;
예폐쇄. 그러나 -d
명령에 옵션을 추가 하면 ls
목록을 표시하는 대신 작동합니다.콘텐츠목차.
주어진 명령은 하위 디렉터리에서 반복됩니다. 질문에는 파일(및 폴더...)만 언급됩니다. 당신이 말하고 싶은 것은
find . -type f -perm -0020 -exec ls -l {} \;
디렉터리를 완전히 무시합니다. 주어진 명령은 그룹 쓰기 가능 권한도 가진 디렉토리를 나열합니다.
답변2
find . ! -type l -perm -g=w -exec ls -lLd {} \;
위 명령은 약 6000개의 파일이 있는 /tmp
HP-UX 11.11 서버에서 작동합니다 . 문제는 파일 수에서 발생하지 않습니다. 600개의 파일은 물리적 메모리 양이 매우 적지 않은 한 바다의 한 방울에 불과합니다.