방금 개발 머신을 업그레이드하고 개발 중이던 웹사이트를 옮겼습니다. 그런데 권한이 제대로 전달되지 않는 것 같습니다. 개발 시스템은 모든 폴더와 하위 폴더가 755로 설정되고 모든 하위 폴더의 모든 파일과 파일이 644로 설정된 Apache를 실행하는 Linux 시스템입니다.
대신 다음 명령을 실행해야 합니다.
수정 755
수정 644
각 파일과 폴더를 개별적으로 수행하지 않고도 이 작업을 수행할 수 있는 더 빠른 방법이 있습니까?
답변1
파일의 경우:
find -type f -exec chmod 0644 {} \;
디렉토리의 경우:
find -type d -exec chmod 0755 {} \;
답변2
모든 사람이 이 파일을 읽을 수 없는 것이 문제인 경우:
chmod -R a+rX /var/www
(대문자 사용에 유의하세요 X
. 이는 최소한 한 명의 사용자가 실행할 수 있는 디렉터리와 파일만 실행할 수 있음을 의미합니다.)
소유자가 아닌 사용자가 파일을 쓸 수 있다는 것이 문제인 경우:
chmod -R go-w /var/www
문제는 파일이 실행 가능하고 실행 파일을 갖고 싶지 않다는 것입니다. chmod -R a-x
디렉토리는 실행 가능한 상태로 유지되어야 하기 때문에 그렇게 하지 않습니다(디렉토리의 실행 권한은 해당 파일에 액세스할 수 있는지 여부를 제어합니다). . 좀 더 분별력을 가질 필요가 있습니다. zsh에서는 하위 디렉터리로 회귀하는 구문을 chmod a-x /var/www/**/*(.)
사용하여 실행할 수 있습니다 .**/
.
글로벌 예선일반 파일만 일치합니다. 모든 쉘에서 다음을 사용할 수 있습니다 find
.
find /var/www -type f -exec chmod a-x {} +