저는 루트가 아닌 일반 사용자로서 다음과 같은 디렉토리에 파일을 생성하려고 합니다.
touch a/b/c/d/test.log
하지만 오류가 발생합니다. 권한이 거부되었습니다.
이 디렉터리에 대한 권한을 설정 해야 한다는 것을 알고 있지만 chmod
777로 만들고 싶지 않기 때문에 올바른 권한이 무엇인지 모르겠습니다.
또한 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/