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