다음 명령이 있습니다.
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=rX
u+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
.