Linuxでファイル権限を変更できるユーザー(rootを除く)は誰ですか?

Linuxでファイル権限を変更できるユーザー(rootを除く)は誰ですか?

デフォルトでは、root以外のユーザーとしてファイルを実行すると、コマンドに対してchmod「許可を拒否」というメッセージが表示されるのはいつですか、それ以外の場合はいつですか?ファイルのどの属性が権限の変更を許可または許可しないのですか?

私はそれがファイルの所有者であると仮定し、ここに尋ねます。なぜなら、私は内部の基本概念を理解しようとしているからです。

ベストアンサー1

簡単に言うと:GNU/Linux でファイルを実行するには、chmodルートまたはファイルの所有者である必要があります。

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

呼び出しプロセスの有効なUIDは一致する必要があります。ファイル所有者または、プロセスに権限が必要です(Linux:権限が必要です)。 CAP_FOWNER能力)。

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

CAP_FOWNER

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

~から事実設定(1)マニュアルページ:

特権

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

おすすめ記事