少数のユーザー (20 ~ 30 人) が使用する Linux ワークステーションを構成しています。これらのユーザーは少数のグループ (5 ~ 10) に属し、各ユーザーは少なくとも 1 つのグループに属し、複数のグループに属する可能性もあります。ワークステーションには、特定のグループのメンバーのみが書き込み可能なファイルがあります。各ファイルは 1 つのグループのメンバーのみが書き込み可能なので、標準の Linux 権限で問題なく動作するはずです。質問が 2 つあります。
すでに存在するファイルの所有者は誰でしょうか?root
グループに対応するダミー ユーザーのセットを作成するか、どちらかを考えていました。私が見逃している、より良い選択肢はありますか? これは特別な状況ではないと思われるので、標準的な規則があることを期待していました。
2 番目の質問は、ファイルをどこに保存するかです。ダミー ユーザーを作成すれば、 にサブディレクトリを作成できます/home/
。ルートがファイルを所有している場合は/srv/groups/
、 または `/share/ を使用しますか? また、規則はありますか?
答え1
すでに存在するファイルの所有者は誰でしょうか? 私は、root にするか、グループに対応するダミー ユーザーのセットを作成するかを考えていました。
ファイルをルートとして所有したまま、共通グループに所属させておくと、ファイルがマスクされた 0002 (つまり、グループ書き込み可能) であると仮定すると、グループに一致するユーザーを作成し、グループ内のユーザーがそのユーザーとしてログインできる場合、誤って所有権が変更されるのを防ぐという点で少し有利になります。事故ここで、グループ内の悪意のあるユーザーは、いずれにしてもファイルを削除できるため、注意が必要です。ただし、ファイルがルート(または他のユーザー)によって所有されている場合は、それはグループではない)の場合、グループ内の誰かがファイルに書き込む(つまり削除する)ことはできますが、権限を再所有したり変更したりすることができず、グループの他のメンバーがそれ以降ファイルにアクセスできなくなります。
グループを使用し、所有者を固定しない (つまり、ファイルは誰でも所有できますが、グループ権限を持つ適切なグループに属している必要があります) と、ユーザーがファイルを作成する場合に利点があります (以下を参照)。
グループに一致させるためだけに新しいユーザーを作成すると、実際に解決するよりも多くの潜在的な問題が発生する可能性があります。グループ権限の使用が機能する場合は、それを使い続けてください。スーパーユーザー用の小さなコマンドを作成することもできます。
#!/bin/sh
chown -R root:groupx $1
chmod -R g+w $1
そしてそれを使用しますfoo /some/directory
。これにより、ツリー内のすべてが所有されroot
、グループが設定されgroupx
、グループが書き込み可能になります。
root
所有者としてrootを使用してから追加すると、潜在的な問題が発生する可能性があります。設定されたファイルにビットを追加できますが、所有者だけがそれを実行できると思います。本当に心配な場合は、ダミー ユーザーを作成します (ただし、グループに一致するユーザーではありません)。権限がなく、誰も使用できないユーザーを作成します。
ユーザーが新しいファイルを作成すると、デフォルトでそのユーザーが所有することになるという問題がもう 1 つあります。ユーザーはそれを正しいグループに変更して、他のユーザーがファイルにアクセスできるようにすることはできますが、所有者を変更することはできません。そのため、またユーザーが忘れてしまう可能性があるため、foo /some/directory
定期的に、または適切なタイミングで実行することをお勧めします (たとえば、誰もログインしていないときなど。所有権の変更は、ファイルを開いているソフトウェアに影響を与える可能性があるため)。
最後の段落を考慮すると、次のように言うことができます。所有者は全く関係ない、グループのみが重要です。その場合、foo
コマンドは次のように使用する必要があります。
chgrp -R groupx $1
の代わりにchown
。
ファイルをどこに置けばいいですか
がユーザーではなくグループであっても、を作成すること/home/groupx
はまったく問題groupx
ありません。唯一の潜在的な問題は、同じ名前のユーザーを作成した場合ですが、いずれにしてもそれは望ましくありません。そこにファイルを置き、foo /home/groupx
。
ユーザーがファイルを作成できないようにするには、ディレクトリを 755 に設定します。ユーザーは、自分のグループが所有するファイルを引き続き変更できます。
答え2
通常、このような状況では、ファイルの所有者は最後に保存したユーザー (または、新しいバージョンを作成するのではなく、既存のファイルを変更するプログラムで編集されている場合は、ファイルを作成したユーザー) になります。 初期ファイルのセットを作成する場合は、自分のアカウントに所有権を残しておきます。ただし、自分が属していないグループにデータをシードする場合は、ルートでもかまいません。 しかし、これは大した問題ではありません。
システムの一部 ( /usr
、/var
、/bin
、/sbin
、/lib
)/etc
でもユーザーのホーム ディレクトリ ( /home
) でもないデータについては、広く受け入れられている慣例はありません。 の下に他のディレクトリを作成したり/home
、他の場所に配置したりできます。 は、/srv
原則としてサーバーが使用するデータ用ですが、システム管理者は、そこに何でも自由に配置できます。 は、/net/MACHINENAME
マシンが相互にファイル システムをエクスポートするネットワーク上の「MACHINENAME に保存されるさまざまなデータ」用の一般的な選択肢です。