디렉토리에 파일을 생성할 때 디렉토리에 대한 올바른 권한은 무엇입니까?

디렉토리에 파일을 생성할 때 디렉토리에 대한 올바른 권한은 무엇입니까?

저는 루트가 아닌 일반 사용자로서 다음과 같은 디렉토리에 파일을 생성하려고 합니다.

touch a/b/c/d/test.log

하지만 오류가 발생합니다. 권한이 거부되었습니다.

이 디렉터리에 대한 권한을 설정 해야 한다는 것을 알고 있지만 chmod777로 만들고 싶지 않기 때문에 올바른 권한이 무엇인지 모르겠습니다.
또한 chmod각 디렉터리에 대해 다음을 설정해야 합니다.

sudo chmod ??? a
cd a
sudo chmod ??? b
cd b
sudo chmod ??? c
...

아니면 간단히 이렇게 해야 할까요?

sudo chmod ??? a/b/c/d

생성 후 읽고 써야 한다면 위의 내용을 test.log무엇으로 바꿔야 하나요 ????

답변1

최소한 디렉토리에 대한 "실행" 권한 a/과 디렉토리에 대한 "쓰기" 권한이 필요합니다 . 실행 권한을 사용하면 디렉터리를 탐색하여 다음 디렉터리로 이동할 수 있으며 중간 디렉터리에 대한 실제 쓰기 권한은 필요하지 않습니다. chmod의 재귀 옵션을 사용하여 실행 권한을 부여할 수 있습니다.a/b/a/b/c/a/b/c/d/

sudo chmod -R +x a

a/이 명령은 언급한 디렉토리뿐만 아니라 의 모든 파일과 디렉토리에 영향을 미친다는 점을 명심하십시오 .

답변2

예를 들어, 사용자 p1이 /a/b/c/d/에 파일을 생성하려고 한다고 가정합니다.

소유자와 그룹만 읽기, 쓰기 및 실행 권한을 갖고 있지만 사용자 p1은 그룹 목록 및 소유자에 없습니다.

이 시점에서 아래와 같이 다른 권한을 변경할 수 있는 2가지 옵션이 있습니다.

chmod o+rwx /path_whereyou_want_to_create_file/은 모든 사용자가 파일을 생성할 수 있도록 rwx 권한을 갖게 됨을 의미합니다.

그러나 보안을 강화하기 위해 아래와 같이 권한을 부여하여 특정 사용자 및 경로에만 읽기, 쓰기, 실행 권한을 부여할 수 있습니다.

setfacl -mu:p1:rwx /path_whereyou_want_to_create_file/

관련 정보