Linux에서 파일 권한을 변경할 수 있는 사용자(루트 제외)는 누구입니까?

Linux에서 파일 권한을 변경할 수 있는 사용자(루트 제외)는 누구입니까?

기본적으로 루트가 아닌 사용자로서 chmod파일을 실행할 때 해당 명령에 대해 "권한 거부"가 발생하는 경우는 언제이며, 그렇지 않은 경우는 언제입니까? 파일의 어떤 속성이 파일의 권한 변경을 허용하거나 금지합니까?

나는 기본 개념에 대해 배우기 위해 약간의 노력을 기울이고 있기 때문에 파일 소유자라고 가정합니다.

답변1

요약:GNU/Linux에서 파일을 실행하려면 chmod루트이거나 파일의 소유자여야 합니다.

로부터chmod(2)(chmod 시스템 호출) 매뉴얼 페이지:

호출 프로세스의 유효 UID는 다음과 일치해야 합니다.파일의 소유자또는 프로세스에 권한이 있어야 합니다(Linux: CAP_FOWNER능력).

로부터기능(7)매뉴얼 페이지:

CAP_FOWNER

  • CAP_DAC_OVERRIDE 및 CAP_DAC_READ_SEARCH에서 다루는 작업을 제외하고 일반적으로 파일의 UID(예: chmod(2), utime(2))와 일치하기 위해 프로세스의 파일 시스템 UID가 필요한 작업에 대한 권한 검사를 우회합니다. [...]

로부터setfacl(1)매뉴얼 페이지:

권한

CAP_FOWNER를 수행할 수 있는 파일 소유자 및 프로세스에는 파일의 ACL을 수정할 수 있는 권한이 부여됩니다. 이는 파일 모드에 접근하는 데 필요한 권한과 유사합니다. (현재 Linux 시스템에서는 루트가 유일한 사용자입니다와 더불어CAP_FOWNER능력.)

관련 정보