
모든 사람이 계층 구조와 내부의 모든 파일을 볼 수 있지만 읽고 쓸 수는 없도록 폴더에 어떤 권한을 적용해야 합니까? 폴더에는 내부에 파일이 포함된 다른 여러 폴더가 있을 수 있습니다.
답변1
디렉토리 나열은 실행 가능 비트를 사용하므로 읽기가 실제로 디렉토리에 전혀 영향을 미치지 않는다고 생각합니다. 파일을 읽거나 쓰지 못하게 하려면 각 개별 파일에 대한 권한을 설정해야 합니다. 다음 명령은 이 모든 작업을 수행하며 이 작업을 시작하려는 폴더에서 실행합니다.
find . -type d | xargs chmod o=rx
find . -type f | xargs chmod o=
find
재귀적으로 파일( -type f
)과 디렉터리( -type d
)를 찾고 해당 이름을 인쇄합니다(다른 지정된 작업 없음). 이는 xargs
파이프에서 읽은 파일로 인수를 실행하는 로 파이프됩니다. 다른 사람( , 즉 귀하나 파일을 소유한 그룹의 다른 사람이 아님을 의미함) chmod
에 대한 권한을 폴더에 대해서는 정확히( ) 읽기/목록( )으로 변경하고 일반 파일에 대해서는 아무것도 변경하지 않습니다.o
=
rx
Grumbel이 의견에서 지적했듯이 이것은 선량한 이름에서만 작동합니다. 모두 얻으려면 그의 솔루션을 사용하십시오.
find . -type d -print0 | xargs -0 chmod o=rx
find . -type f -print0 | xargs -0 chmod o=
또는 find의 내장 -exec
:
find . -type d -exec chmod o=rx '{}' ';'
find . -type f -exec chmod o= \{\} \;
첫 번째 줄처럼 중괄호와 세미콜론을 인용하거나 두 번째 줄처럼 이스케이프 처리할 수 있습니다. 별도의 인수에 있어야 합니다. 또한 -exec
각 파일에 대해 chmod를 한 번 실행하는 반면 xargs는 가능한 한 적은 명령으로 실행합니다(최대 명령줄 길이를 기준으로). 이것이 내가 일반적으로 xargs를 선호하는 이유입니다.
답변2
sudo chown -R username:root "/directory you want"
-R
모든 하위 디렉터리와 파일에 대한 재귀를 나타냅니다.
사용자 이름 - 현재 사용자
읽기/쓰기/실행 권한에 도움이 됩니다.