次のシナリオが可能かどうかを知りたいです。
私はwww-adminというユーザーであり、www-adminグループに属しています。私もsudoerです。
フォルダに作成されたすべてのファイルにグループとユーザーが/var/www/domain
含まれていることを望みます。domain
domain
私がユーザーとしてwww-admin
すべてのドメイン内でファイルを作成して編集する場合/var/www/domain
:domains。
可能ですか?
ベストアンサー1
ディレクトリを作成するプロセスの有効なグループIDに関係なく、生成されたファイルが特定のグループに属するようにディレクトリを設定できます。これはBSDセマンティクスと呼ばれ、これを有効にするにはディレクトリのSGIDビットを設定する必要があります。
chgrp domain /var/www/domain
chmod g+s /var/www/domain
これはすでに存在しているファイルとディレクトリのグループを変更しないため、/var/www/domain
手動で処理する必要があります(例:上記)-R
。chgrp
このディレクトリ内に後で作成されたすべてのサブディレクトリもSGIDを継承し、そのサブディレクトリのBSDセマンティクスを自動的に有効にします。
しかし、所有者には同じ意味がありません。
/var/www/domain
所有者とグループに対してこれを達成する必要がある場合は、ファイルを生成するコードが有効なユーザーとdomain
有効なグループで実行されていることを確認する必要がありますdomain
。sudo
これを行うには、次の方法を使用できます。
sudo -u domain -g domain your_command
domain
デフォルトのユーザーグループの場合は、domain
次のように十分です。
sudo -u domain your_command
このソリューションは所有者とグループを簡単に処理するため、BSDセマンティクスは必要ありません。
ファイルを生成するプロセスの有効なユーザーやグループを変更したくない場合(たとえば、他の多くの機能を実行する大規模サーバーであるため)、ファイルを生成する機能の一部を外部化し、そのファイルを別のプロセスとして分離して、有効なUIDとGIDをそれに応じて変更できます。あるいは、BSDセマンティクスを使用してグループにのみ依存して最終目標を達成することもできます。