基本的に、非ルート ユーザーとして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システムでは、 ルートは唯一のユーザーですとともにキャップ所有者能力。)