ファイル作成時にユーザーとグループの所有権を変更する

ファイル作成時にユーザーとグループの所有権を変更する

問題があります。非常に古いシステム(UNIX)を新しいシステムに接続したいです。以前のシステムはscpハードコードされたユーザーとしてログインし、oldsystemaccess新しいサーバーのwebrootサブディレクトリにファイルをコピーしました/var/www/newserver/test/import。新しいシステムはApacheの高度な設定なしでUbuntu 18 LAMPスタックを実行しており、www-data同じグループにあるかのように実行されます。

新しいサーバーでこのユーザーをグループoldsystemaccessに追加し、ディレクトリの権限をに変更しました。この変更後、ファイルは新しいシステムに正常にコピーされました。www-datasudo usermod -aG www-data oldsystemaccessrwxrwxr-xsudo chmod 775 /var/www/newserver/test/import

今私が解決しようとしている実際の問題は、oldsystemaccess私のPHPスクリプトがファイルを所有している場合、ファイルを正しく読み取ったり処理したりすることができず、古いサーバーからファイルをコピーする方法を変更できないため、次の場合に実行できないことです。ファイルがコピーされます。その他のコマンド。ディレクトリに作成されたファイルを作成したユーザーとグループが所有するようにimport変更する方法を探しています。www-data

crontab1分ごとに実行される項目を追加しましたが、chown -R www-data:www-data /var/www/newserver/test/importこれが本当に悪い解決策のようです。umask似ていますが、ファイルの所有権があるものを探しています。

ベストアンサー1

一部のシステムでは(FreeBSDなどの場合)ウィキペディア)、setuidディレクトリのビットは私が望む動作を持つようになります(協会)。しかし、私が実行しているUbuntuのデフォルトの動作ではないため、私が経験している問題の解決策は次のとおりです。

このグループは、新しいファイルを所有するようにこのsetgidビットを設定するために使用されます。chmodwww-data

sudo chmod 2775 /var/www/newserver/test/import

明らかに、ファイルをコピーしたスクリプトには、権限のあるファイルが生成されるようにする一連の権限がありましたが、umask質問するときにこれを見落としました。007rwxrwx---

ディレクトリ内のファイルの書き込み許可ビットを設定する必要がある場合は、ACLを設定して、そのファイルを所有するグループが自動的にファイルを書き込むことができます。

sudo setfacl -d -m group:www-data:rwx /var/www/newserver/import

おすすめ記事