2012-10-25 4 views
2

아파치를 실행하는 리눅스 웹 서버를 설정 중입니다. 나는 나의 웹 사이트 파일을 올려주기하고 untared. 시스템에 SSH 할 때 주 디렉토리의 파일이 모두 표시됩니다. 그러나 모든 하위 디렉토리에서 차단되었습니다. 내가 작성하는 경우 : 내가 EC2 사용자로 로그인하고Linux에서 디렉토리를 볼 수없는 이유는 무엇입니까?

-bash: cd: images: Permission denied 

:

# cd images 

그런 다음 나는 오류가 발생합니다. 나는 ec2 사용자로서 자료를 채우지 못했고 Windows 시스템에 아카이브를 만들었으므로 tar 파일에 권한이 있는지 의심 스럽다. 이상한 것은 내가이 디렉토리의 주인이라는 것입니다. 내가 "sudo를 쓰"를 수행하고 명령 CD 이미지의 모든 것이 괜찮 입력하면

drw-rw-r-- 19 ec2-user ec2-user  4096 May 4 04:09 images 

-l LS : 여기에 명령의 조각이다. 내가 소유자이고 rw 권한이있는 경우 "사용 권한이 거부되었습니다"라는 메시지가 ec2 사용자로 표시되는 이유는 무엇입니까?

답변

1

거기에 cd 수 있어야합니다 필수적인 디렉터리의 실행 비트를 그리워합니다. 당신이 당신의 물건을 압축을 푼 곳

빠른 수정이 디렉토리에 실행하는 것입니다 :

# find . -type d -exec chmod a+x "{}" \; 
+0

감사합니다. 그것은 한 지점으로 작용했습니다. 이제 ec2 사용자로서 나는 "cd images"를 할 수 있습니다. 그러나 "이미지"아래의 모든 하위 디렉토리는 차단되었습니다. 이 명령을 하위 디렉토리의 모든 레벨을 포함하도록 수정할 수 있습니까? – Thread7

+0

'find'는 모든 sub-dir을 처리해야합니다. 'find '를 실행할 수 있습니까? -type'을 실행하고 모든 하위 디렉토리를 나열하는지 확인하십시오. 또한 이름에 공백이있는 디렉토리가 있습니까? – favoretti

+1

명령에 공백이있는 문제가 있다는 것을 알고 있다면, 먼저 명령을 수정해야합니다 :'find. - 유형 d | xargs -d \\ n chmod a + x' 또는 find. 형식 d -print0 | xargs -0 chmod a + x' 또는 그냥'find. -d 형 xexs chmod a + x {} +'. – glglgl

2

당신은 실행해야합니다

# find . -type d | xargs chmod a+x 

당신이 그들에 공백이있는 디렉토리가있는 경우를 다음 사용 허가 :

chmod +x images 

도 처리해야합니다. 디렉토리에 대한 실행 권한은 "트래버스 디렉토리"권한으로 변환됩니다.

+0

재미있는 점은 검색과 리스팅을 위해서는'r' 비트가 필요하고, 그것을 사용하려면'x'가 필요하다는 것입니다. 그래서'rw-'를 사용하여 나열 될 수는 있지만 사용되지 않는 지시어를 사용하는 것은 완벽하게 유효합니다. 또는 파일 이름을 정확히 알고 있다면 파일을 사용할 수있는'--x'를 사용하는 것이 좋습니다. – glglgl

관련 문제