파일 및 디렉터리를 읽고 쓸 수 있을 때 파일 소유권을 얻습니다.

파일 및 디렉터리를 읽고 쓸 수 있을 때 파일 소유권을 얻습니다.

디렉토리에서 일부 파일을 찾았습니다.

drwxrws-wt 2 me      mygroup  4,0K 10.1. 12:34 .
-rw-r----- 1 someone mygroup  10G  10.1. 11:22 someonesfile

me그리고 someone보조 그룹 없이 일반 사용자가 됩니다.

계정을 사용하여 me이 파일의 소유권을 얻으려면 어떻게 해야 합니까?

이렇게 me하면:

$ chown me someonesfile
chown: doing bla bla bla: permission denied

그러나 me"변화" 파일을 새 파일로 교체하여 소유권을 얻으세요.

cp someonesfile myfile && mv -f myfile someonesfile`

그래서 내 주요 질문은 더 간단한(더 저렴하다) 루트 계정이나 기타 권한 상승을 사용하지 않고 설명된 환경에서 파일 소유권을 변경하는 방법입니다. 기본적 me으로 디렉토리 권한을 활용하여 전체 파일을 복사하지 않고도 소유권/권한을 재설정할 수 있는지 궁금합니다 .

또한 파일을 편집 vim하고 강제로 덮어쓰면 :w!파일의 소유자가 변경된다는 것을 알았습니다. 이것이 이를 수행하는 것과 동일합니까 cp && mv? 최소한 touch someonesfile권한이 거부되면 실패합니다.

답변1

예, vim원본 파일은 삭제되고 새 콘텐츠를 넣을 새 파일이 생성됩니다.

당신의 cp && mv -f길은 갈 길입니다.

귀하의 경우 디렉터리에 비트를 설정할 때 t디렉터리에 대한 쓰기 권한을 갖는 것만으로는 충분하지 않으며 파일이나 디렉터리의 소유자여야 합니다(당신처럼).

답변2

루트만이 파일의 소유자를 변경할 수 있습니다. 루트가 포함되지 않은 경우 파일을 삭제하고 해당 이름을 가진 다른 파일을 만들거나 이름을 바꾸는 것뿐입니다.

파일을 훔치는 것이 허용된다면 이는 보안 허점이 될 것입니다. 예를 들어, 사용자는 someone파일을 연 다음 해당 파일의 소유권과 권한을 확인하고( fstat열린 파일 핸들을 호출하여) 실행 중인 프로그램에서만 someone이 데이터를 생성할 수 있다고 결론을 내릴 수 있습니다. 파일을 훔칠 수 있다면 someone자신의 의지에 반하여 내용을 변경할 수 있습니다.

관련 정보