소유자/사용자에게 디렉터리에 대한 쓰기 권한이 없지만 디렉터리 아래의 파일에 대한 쓰기 권한이 있다고 가정합니다. 여기 파일을 편집할 수 있나요? 그렇다면 파일을 편집할 수 없는 상황이 있는 걸까요?
답변1
예, 이 파일은 편집할 수 있습니다.
디렉터리의 경우 대상(소유자/그룹/기타) 디렉터리의 실행 권한이 제거되면 파일을 편집할 수 없습니다.
편집하다:디렉터리에 대한 권한을 변경하여 소유자가 파일을 편집할 수 없도록 하려면(동일한 사용자가 디렉터리와 파일을 소유하고 있다고 가정) 디렉터리에 대한 소유자의 실행 권한을 제거하기만 하면 됩니다. 예를 들어 소유자의 권한을 로 설정할 수 rw-
있습니다 6
.
답변2
다른 답변에서 언급했듯이 예, 파일을 편집/수정할 수 있습니다. 그리고, 잔소리의 위험이 있으니 이 점을 지적하고 말씀드리겠습니다.
...그는 [디렉토리]의 파일에 대한 [쓰기 권한]을 가지고 있습니다.
그리고 반쯤 명백한 설명을 하고, 단어의 전통적인 의미로 파일을 편집하려면 사용자는 또한 다음을 수행해야 합니다.읽다허용하다파일의 현재 내용을 얻으려면 읽기 권한이 없으면 사용자는 기존 데이터를 덮어쓰거나 마지막에 데이터를 추가(추가)할 수 있지만 맞춤법 오류 수정이나 텍스트 삽입과 같은 유용한 편집은 할 수 없습니다.
위에서 언급한 시나리오(덮어쓰기 또는 추가)를 포함하여 다양한 시나리오에 대해 논의하고 있음을 강조하기 위해 "수정"이라고 말합니다.
- 파일 데이터를 외부로 복사(예: 다른 디렉터리의 파일로)하고 어떤 방식으로든 조작한 다음 다시 복사(파일 덮어쓰기)
- 전통을 사용하다텍스트 에디터, 예를 들어
vi
, (또는 심지어16진수 편집기, 적용된다면),
특히 vi
, 이 경우 파일을 편집하는 데에는 문제가 없습니다. 나는 다른 많은 편집자들과 함께 그것을 테스트하지 않았습니다. 나는 그들 중 대부분(예: , , emacs
... pico
)도 괜찮을 것이라고 예상합니다.
하지만,
sed-i sed_command 파일 이름
sed -i
작동하기 때문에 작동하지 않습니다
- 동일한 디렉토리에 임시 파일을 생성하고,
- 지정된 파일을 실행하여 원본 파일의 텍스트를 새(임시) 파일로 복사합니다.
sed_command(s)
이 과정에서, - 원본 파일을 삭제한 후
- 임시 파일의 이름을 원래 이름으로 바꾸고
chmod
원본 파일의 원래 패턴과 일치시킵니다.
디렉터리가 쓰기 금지되어 있으면 이러한 작업이 실패합니다. (나는 다른 편집자들도 같은 방식으로 행동할 것이라고 생각/의심하지만 어떤 예도 인용할 수 없습니다.)
따라서 sed -i
이 디렉터리에 대한 쓰기 권한이 필요합니다. 물론 파일에 대한 읽기 권한도 필요합니다. 그러나 이중 반전으로 끝나는 놀라운 사실은 다음과 같습니다.
파일에 대한 쓰기 액세스가 필요하지 않습니다.. 결국, 파일을 삭제하기 위해 파일에 대한 쓰기 권한은 필요하지 않습니다. 단지 디렉토리에 대한 쓰기 권한만 있으면 됩니다.
답변3
디렉터리에 대한 쓰기 권한은 필요하지 않지만 x
실행 가능 비트는 설정되어야 합니다.
따라서 foo
파일이 있는 디렉토리를 고려하십시오 bar
. 권한이 다음으로 설정된 경우
drwx--x--x foo
-rw-rw-rw- foo/bar
예를 들어, x
이 비트가 제공되는 한 누구나 쓰기 액세스 권한을 가질 수 있습니다. r
디렉토리에 대한 읽기 액세스 도 필요하지 않습니다.