chown: 다른 사용자로부터 소유권을 가져옵니다.

chown: 다른 사용자로부터 소유권을 가져옵니다.

내가 가지고 있다고 가정 해 봅시다 :

  • user1111ID를 가진 사용자1111
  • user2222ID를 가진 사용자2222
  • 위 두 사용자가 속한 group3333ID를 가진 그룹3333

내가 만든다:

  • user1111, 폴더 포함a
  • user1111, 파일 로a/b
  • user2222, 파일 로a/c

폴더와 두 파일 모두 777 권한을 갖습니다.

$ stat --printf='%a %u %g %n\n' a a/b a/c
777 1111 1111 a
777 1111 3333 a/b
777 2222 3333 a/c

이것을 허용하지 않는다는 의미는 다음과 같습니다 user1111.

user1111$ chown -v 2222 a/b
chown: changing ownership of 'a/b': Operation not permitted
failed to change ownership of 'a/b' from user1111 to 2222

즉, 사용자가 이 작업을 수행하도록 허용하지 않아도 괜찮습니다.분배하다소유권은 다른 사용자에게 있습니다.

이것이 왜 허용되지 않는지 이해가 되지 않습니다.

user2222$ chown -v 2222 a/b
chown: changing ownership of 'a/b': Operation not permitted
failed to change ownership of 'a/b' from user1111 to 2222

즉, 사용자가 할 수 없는 이유가져가다다른 사용자의 소유권?

@binarysta에서 더 많은 정보를 추가하도록 편집되었습니다.

user1111$ chown -v user2222: a/b
chown: changing ownership of 'a/b': Operation not permitted
failed to change ownership of 'a/b' from user1111:group3333 to user2222:group2222

user1111$ chown -v user2222:group3333 a/b
chown: changing ownership of 'a/b': Operation not permitted
failed to change ownership of 'a/b' from user1111:group3333 to user2222:group3333

user2222$ chown -v user2222: a/b
chown: changing ownership of 'a/b': Operation not permitted
failed to change ownership of 'a/b' from user1111:group3333 to user2222:group2222

user2222$ chown -v user2222:group3333 a/b
chown: changing ownership of 'a/b': Operation not permitted
failed to change ownership of 'a/b' from user1111:group3333 to user2222:group3333

답변1

  • 루트만이 파일의 소유자를 변경할 수 있습니다. 소유자는 명령을 실행하는 root데 사용되거나 사용되지 않는 한 소유권을 이전할 수 없습니다.sudo

  • 파일 소유자는 파일이 속한 그룹을 변경할 수 있습니다(파일 소유자가 해당 그룹에 속한 경우). 파일 그룹은 root어떤 그룹으로든 변경할 수 있습니다. 소유자가 아닌 소유 그룹의 구성원은 파일의 소유 그룹을 변경할 수 없습니다.

setuid: 실행 파일에 대해 setuid 권한이 설정되면 사용자는 사용자와 일치하는 액세스 수준으로 프로그램을 실행할 수 있습니다.파일을 소유하다.

권한이 없는 사용자를 사용하여 파일의 소유권을 변경할 수 있으면 다음과 같은 여러 가지 보안 문제가 발생할 수 있습니다.

  • 사용자는 실행 가능한 스크립트의 uid를 설정한 다음 소유권을 루트로 변경할 수 있습니다. 이 경우 스크립트는 루트 권한으로 실행됩니다.
  • 소유권을 변경하면 실제로 파일을 만든 사람을 추적하는 것이 불가능해집니다.
  • 각 사용자에 대해 할당량이 정의된 경우 디스크 할당량 문제가 발생할 수 있습니다.
  • 파일 소유자만 권한/메타데이터를 변경할 수 있습니다( chmod).

답변2

root이 기능이 있는 프로세스 만 CAP_CHOWN파일 소유자를 변경할 수 있습니다(참고자료 참조 man capabilities).

그러나 ACL을 사용하여 특정 사용자나 그룹에 대한 특별한 권한을 설정할 수 있습니다(참고자료 참조 man setfacl).

NFSv4 ACL을 사용하면 소유자가 아닌 사용자나 그룹에 ACL을 변경할 수 있는 권한을 부여할 수도 있습니다(일반적으로 루트, 파일 소유자 및 프로세스로 제한됨 CAP_FOWNER). 를 참조하세요 man nfs4_acl.

관련 정보