중첩된 폴더의 권한은 어떻게 작동하나요?

중첩된 폴더의 권한은 어떻게 작동하나요?

1) 중첩된 디렉터리 권한이 어떻게 작동하는지 잘 모르겠습니다.

다음과 같은 디렉터리/파일 및 권한이 있다고 가정합니다.

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

퍼블릭은 정말 퍼블릭인가요?

2) Private을 정말 비공개로 만들고 싶다면 'chmod 700'을 할 때 -R을 사용해도 상관없나요?

3) Ubuntu는 기본적으로 단어로 읽을 수 있는 홈 폴더를 사용하고 이를 수정하기를 거부한다는 내용을 읽었습니다. 하지만 'ls -lh'를 실행하면 drwx------(700 맞죠?)라는 결과가 나옵니다. 그래서 그것은 무엇입니까? 홈 폴더에 대한 마음이 바뀌었나요?

참고: 저는 Ubuntu 12 VM을 사용하고 있습니다.

답변1

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

의 소유자가 아닌 사용자는 ~/Private/이러한 ~/Private/Group권한으로 공용 폴더에 들어갈 수 없습니다.

Unix/Linux에서는 사용자가 디렉터리를 탐색(변경)할 수 있도록 하려면 실행 비트를 추가해야 합니다. 하지만 읽기 액세스 권한을 부여할 필요는 없습니다. 그러니 대신 이것을 시도해 보세요. 그러나 사용자는 그룹 및 공용 디렉토리가 존재한다는 것을 알아야 하며, ls읽기 액세스 권한을 부여받지 않는 한 해당 디렉토리가 존재하는지 확인할 수 있는 방법이 없다는 점을 명심하십시오 .

~/Private/ 711
~/Private/Group 771
~/Private/Group/Public 777

'chmod 700'을 수행할 때 -R을 사용하는지 여부가 중요합니까?

해당 명령을 실행하면 대상 디렉터리 아래 디렉터리에 있는 모든 파일의 권한이 변경됩니다. 권한이 다른 파일이 있으면 파일이 손실됩니다. 나는 또한 많은 일반 파일에 실행 비트를 추가할 것이라고 생각하는데, 이는 일반적으로 바람직하지 않습니다.

대신 이와 같은 명령을 사용할 수도 있습니다. 이렇게 하면 파일에 대한 권한은 변경되지 않고 디렉터리 및 하위 디렉터리에 대한 권한만 변경됩니다.

find {directory_path} -type d -print0 | xargs --null -n 1 chmod 0700

파일만 변경하는 유사한 명령은 다음과 같습니다.

find {directory_path} -type f -print0 | xargs --null -n 1 chmod 0600

관련 정보