루트가 아닌 파일 소유자 변경

루트가 아닌 파일 소유자 변경

666 권한이 있는 로그 파일이 있고 해당 파일의 소유자는 Alice라고 제안합니다. 따라서 사용자 'bob'은 다음과 같이 소유자를 변경할 수 있습니다.

cp log log.temp; rm log; mv log.temp log

그렇다면 이 위험을 어떻게 해결할 수 있습니까?

답변1

위에서 Andrey가 말한 것처럼 bob은 파일이 포함된 디렉토리에 대한 권한이 있는 경우에만 귀하가 말하는 대로 수행할 수 있습니다. bob이 액세스할 수 있도록 하고 싶지만 새 파일을 생성할 수 없는 경우에는 dir 권한을 xx5로 변경하세요.

~에서UNIX 권한 이해

파일 및 폴더에 대한 액세스 권한은 사용자 관점에서 다른 의미를 갖습니다.

파일의 경우

  • 읽다: 파일 내용을 읽을 수 있는 경우
  • 쓰다:사용자 또는 프로세스가 파일에 쓸 수 있는 경우(내용 변경)
  • 실행하다:파일을 실행할 수 있는 경우

디렉토리의 경우

  • 읽다:디렉토리 목록을 얻을 수 있는 경우
  • 쓰다:사용자 또는 프로세스가 어떻게든 디렉토리 내용을 변경할 수 있는 경우: 디렉토리에서 새 파일을 생성하거나 기존 파일을 삭제하거나 파일 이름을 바꾸십시오.
  • 실행하다:사용자 또는 프로세스가 디렉터리에 액세스할 수 있으면 해당 디렉터리로 이동합니다(현재 작업 디렉터리로 만듭니다).

답변2

OP가 alice와 bob이 로그 디렉토리에 대한 쓰기 권한을 갖게 된 타당한 이유가 있다고 가정하면 대체 대답은 다음과 같습니다.

chmod og+t directorypath

문제는 사용자가 로그 파일을 읽을 수 있거나 동일한 디렉터리에 새 파일을 만들 수 있다는 것이 아니라 기존 로그 파일을 이동하고 삭제할 수 있다는 것입니다.

+t디렉토리에 있는 파일의 이동 및 삭제를 파일 소유자(루트 제외)로만 제한합니다.

이것이 /tmp dir의 작동 방식입니다.

관련 정보