Linux でファイルの権限を変更できるのは、どのユーザー (root 以外) ですか?

Linux でファイルの権限を変更できるのは、どのユーザー (root 以外) ですか?

基本的に、非ルート ユーザーとしてchmodファイルを実行すると、そのコマンドに対して「権限が拒否されました」と表示されるのはいつですか。表示されないのはいつですか。ファイルのどのプロパティによって、権限の変更が許可され、または禁止されるのですか。

ファイルの所有者だと思いますが、基礎となる基本概念について学ぶのに少し苦労しているので、ここで質問します。

答え1

要約:GNU/Linux 上のファイルを実行する場合はchmod、root またはファイルの所有者である必要があります。

からchmod(2)(chmod システムコール) マニュアルページ:

呼び出しプロセスの実効UIDは、ファイルの所有者、またはプロセスが特権を持っている必要があります(Linux: キャップ所有者能力)。

から能力(7)マニュアルページ:

キャップ所有者

  • CAP_DAC_OVERRIDE および CAP_DAC_READ_SEARCH によってカバーされる操作を除き、通常はプロセスのファイルシステム UID がファイルの UID と一致する必要がある操作 (例: chmod(2)、utime(2)) の権限チェックをバイパスします。 [...]

からsetfacl(1)マニュアルページ:

権限

ファイルの所有者とCAP_FOWNER権限を持つプロセスには、ファイルのACLを変更する権限が与えられます。これは、ファイルモードにアクセスするために必要な権限に似ています。(現在のLinuxシステムでは、 ルートは唯一のユーザーですとともにキャップ所有者能力。)

関連情報