디렉토리의 경우 find-chmod를 결합하고 일반 파일의 경우 find-chmod를 결합합니다.

디렉토리의 경우 find-chmod를 결합하고 일반 파일의 경우 find-chmod를 결합합니다.

다음 명령이 있습니다.

find /var/www/html/* -type d -exec chmod 755 {} \;
find /var/www/html/* -type f -exec chmod 644 {} \;

Stephen Kitt의 답변에서 알아 냈습니다.여기다음과 같이 결합할 수 있습니다.

find /var/www/html/* -exec chmod a-x,a=rX,u+w {} \+

이러한 chmod주장은 특히 구문 측면에서 읽기가 그리 편하지 않습니다 find(저는 아직 , , 및 와 같은 조합의 nix 의미에 익숙하지 않으며 a-x이를 배울 시간과 마음의 평화가 없습니다. 앞으로는 진지하게 받아들이겠습니다.)a=rXu+w

거기에서 숫자를 사용할 수 있습니까? 그렇지 않다면 제안된 특정 명령보다 조금 길더라도 이 두 명령을 통합하는 더 편안한 방법이 있을까요?

답변1

나는 당신이 편안하다고 느끼는 것을 사용해야 한다고 말하고 싶습니다.

find /var/www/html/* -type d -exec chmod 755 {} \+
find /var/www/html/* -type f -exec chmod 644 {} \+

아주 좋아요( \+아님 \;).

이것a-x,a=rX,u+w chmod논쟁(당신은 또한 볼 수 있습니다POSIX 사양chmod) 각각:

  • 모든 사람의 실행 비트를 지우고( a-x),
  • 모든 사람의 권한을 a=다음으로 설정하세요.
    • 읽다( r),
    • 실행 파일( X) 이 디렉터리이거나 실행 파일인 경우,
  • u+w소유자에 대한 쓰기 가능 비트( )를 추가합니다 .

조건부(디렉토리나 실행 파일인 경우 실행 가능)는 숫자로 표현할 수 없습니다.

-x순차 합계의 목적은 =rX디렉터리에만 실행 비트가 설정되어 있는지 확인하는 것입니다. 실행 비트가 지워지기 때문에 X실행 비트가 설정된 파일이 아닌 디렉터리만 일치할 수 있습니다.

나는 find여기서 전혀 필요하지 않다고 생각합니다.

chmod -R a-x,a=rX,u+w /var/www/html/*

을 사용하면 동일한 변경 사항이 적용됩니다 chmod.

관련 정보