chownがグループを変更できる場合、chgrpを作成するのはなぜですか?

chownがグループを変更できる場合、chgrpを作成するのはなぜですか?

したがって、chownファイルおよび/またはディレクトリの所有者とグループを変更できます。ただし、一部はchgrpグループを変更します。なぜchgrp作られたのですか?これは重複しませんか?

答え1

chownグループは最初に設定できません。後で一部の実装ではとして追加され、chown user.group一部の実装ではとして追加されましたchown user:group標準化(強調):

4.3 BSD仕様方法所有者とグループこの POSIX.1-2008 ボリュームには、次の理由が含まれています。

場合によっては、chgrpおよびchown(ユーザーIDのみ変更)ユーティリティを使用して目的の終了条件を達成できません。 (現在の所有者が目的のグループのメンバーではなく、目的の所有者が現在のグループのメンバーではない場合、所有者とグループの両方が変更されないと、chown()関数が失敗する可能性があります。)

独立して変更できますが、両方を同時に変更すると両方のユーティリティを呼び出す必要があるため、パフォーマンスが100%低下します。

今でも:

  • chown :group単にグループを変更することは、移植可能または標準ではありません。
  • chown user:ユーザーデータベースにデフォルトグループを割り当てることもuser標準ではありません。

答え2

ファイルのユーザー所有者*を変更するには、root権限が必要です。

一般ユーザーは、ファイルのグループ所有者を自分が属する別のグループに変更できます。

おそらく、これらの特権的な観点から見ると、特にSudo以前の時代には別々に保つことが合理的かもしれません。chown「管理者」グループで実行できるのと同様に、setuid「管理者」グループのメンバーがファイルのユーザー所有者を変更できるようにします。

* ugoとの整合性を維持するために、「ユーザー所有者」、「グループ所有者」、および「その他」を使用します。 「o」と「owner」を混同するのは一般的な間違いです。

関連情報