web-dev-qa-db-ja.com

ベストプラクティスUID == GID?

教育用にRHLinuxボックスをセットアップしています。過去には、facultystudentsの2つのグループがありました。すべての学生アカウントは、プライマリグループstudents、インストラクターfacultyに割り当てられました。

私は読んでいました Nemethetal。UnixandLinux System Admin(4th ed) そして彼らは各アカウントのプライマリグループがユーザーIDと同じであるべきだと勧めています。

どちらが望ましいですか?

  • ユーザーIDと同じプライマリグループ(例:uid == gid)で学生アカウントを設定し、それらをstudentsグループに追加しますか?

  • または、過去に行ったように、最初にすべての学生をstudentsグループに追加する必要がありますか?

これらは意味的に同じですか?

特にセキュリティの面で。いくつかのサンプルコード/ファイルグループをすべての学生が読めるようにする予定ですが、学生がお互いのディレクトリを簡単に覗き見するのは明らかに避けたいと思います。

3
Levon

生徒がお互いのファイルにアクセスできないようにする場合は、次の2つのオプションがあります。

  1. ユーザーごとのGID(UID == GID)を使用し、デフォルトのumaskを0750に設定します。
  2. デフォルトのumaskを0700に設定します。

最初のオプションは実装が速く、物事を壊す可能性がはるかに低くなります。ただし、SELinuxのようなものを使用せずに、他の人が自分のファイルに意図的にアクセスすることを許可しないようにする実用的な方法はないことに注意してください。

4

多くのディストリビューションは、新しいユーザーアカウントとともにプライマリグループを自動的に作成します。デフォルトでは、次に使用可能なIDが使用されます。これは通常、自動GIDが割り当てられたグループ、または独自のプライマリのないUIDが以前に作成されていない限り、新しいユーザーのUIDがそのGIDと等しくなることを意味します。グループ。

したがって、多くのマルチユーザーマシンでは、UIDがユーザーのGIDと一致しない可能性があるため、UID == GIDと言うのは誤った呼び方です。

通常、すべてのユーザーアカウントは共通のグループ(通常はusers(100))のメンバーでもあるため、各アカウントに独自のプライマリグループがあるシステムでは、パラダイムから別のパラダイムにオンザフライで切り替えることができます。沿って chown -R :users .フォルダ内のファイル。

3
sleblanc

それは主に個人的な好みの問題です。

私は数年前に同じ質問をし、その問題についていくつかの調査をしました。
私が判断できた限りでは、どちらの方法にも大きなメリットはありません。最近のほとんどの主要なLinuxディストリビューションは、デフォルトでUID = GIDメソッドになっているようです。他のいくつかのUnixシステムはまだ他の方法論を好みます。 UMASKを適切に使用している限り、それは実際には問題ではないようです。 (750はGID = UIDの標準ですが、複数のユーザーがGIDを共有する場合は700が推奨されます。)

どちらか一方を想定しているソフトウェアもあるかもしれませんが、GID = UIDを好むソフトウェアの場合ごとに、逆にそれを必要とする別のソフトウェアを見つけることができます。そして、chownとchgrpをクリエイティブに使用することで、いつでも物事を機能させることができます。

一部の組織では、共有ネットワークリソースの設定方法が原因で、共有GIDが優先される場合があります。 (NFSアクセス許可またはUnixアクセス許可をSMB ACLにマップする方法)

だから私はフローに行きます:あなたの組織で規定されているもの(そのようなルールがある場合)または選択したディストリビューションのデフォルトのものを使用してください(使用されているディストリビューションに基づいて特定のシステムを想定するアプリケーションの問題を最小限に抑えるため)。

2
Tonny