모든 폴더를 "다른 사람"이 읽을 수 없도록 설정 - "쓰기" 및 "실행"과 관련된 원래 상태는 유지

모든 폴더를 "다른 사람"이 읽을 수 없도록 설정 - "쓰기" 및 "실행"과 관련된 원래 상태는 유지

TLDR: "기타" 폴더가 가독성만 떨어지도록 컴퓨터에 있는 모든 폴더의 권한을 어떻게 변경할 수 있습니까? 즉, "쓰기"와 "실행"에 관한 상태는 유지하지만, 애초에 "읽기"가 있을 경우에는 "읽기"의 가능성을 잃어버린다는 것입니다.

긴 버전: 처음으로 사용자가 SSH를 사용할 수 있는 서버를 구성하는 동안 나의 첫 번째 관심은 자신의 home/username폴더와 하위 폴더에만 액세스할 수 있는 새 사용자를 생성할 수 있는 방법을 찾는 것이었습니다.

그러나 몇 가지 참고 자료를 찾았습니다(예:이 질문/답변usr/bin) 온라인에서는 사용자가 또는 같은 일부 시스템 폴더에 액세스하고 같은 usr/lib폴더에 써야 하기 때문에 이는 아마도 좋은 생각이 아닐 것이라고 온라인에서 설명합니다. tmp물론 말이 됩니다. 그렇다면 내가 대신 달성하려고 시도한 것은 사용자가 다음을 수행할 수 있도록 하는 것입니다.사용시스템 폴더에는 무엇이 있지만 그렇지 않은 것은 무엇입니까?보다그들의 콘텐츠.

보다 구체적으로 말하자면, 이는 시스템의 모든 폴더를 "다른 사람"이 읽을 수 없도록 설정하는 동시에 쓰기 가능성 및 실행 가능성과 관련하여 원래 상태를 "다른 사람"으로 유지하는 것을 의미합니다. 예를 들어, 권한이 있는 폴더는 754이 되고 750, 756권한 이 752있는 폴더는 755가 되며 , , 또는 이 751있는 폴더는 동일하게 유지됩니다. 등등.753752751750

이렇게 하면 루트 이외의 누구도 해당 폴더와 하위 폴더 이외의 폴더 안에 무엇이 있는지 볼 수 없지만 home/username원래 허용했던 모든 시스템 폴더에서 정상적으로 실행하고 쓸 수 있습니다.

모든 폴더에 대해 어떻게 그렇게 할 수 있습니까? 이 아이디어의 가능한 결함에 대한 의견도 물론 환영합니다.

답변1

find /path/to/directory/ -type d -exec chmod o-r {} \;

작동해야합니다. 모든 폴더에 find대해 chmod. chmod그런 다음 다른 사람의 읽기 비트를 제거합니다.

답변2

커널 자체에서 열린 바이너리 개체만 실행 가능으로 표시될 수 있지만 읽을 수는 없습니다. 모든 유형의 스크립트(bash, python 등)는 실행되기 전에 먼저 읽어야 합니다. 보다:

관련 정보