2

私は現在、組織の8つの異なるサイトを管理しており、それらすべてのコンテンツの管理に役立つ中央管理Webサイトを構築しています。

現在、管理Webサイトにファイルアップローダーがあり、ZIPファイルをサーバーにアップロードできます。次に、このスクリプトはパッケージを解凍し、ファイルをサーバーのさまざまな部分に移動します。

問題は、ブラウザーを介してファイルをアップロードすると、(ユーザーとグループの両方の)apacheに所有権が割り当てられることです。これにより、FTPを使用してファイルを上書きしようとすると問題が発生します。

アップロード/移動したらすぐに、アップロードされたファイルの所有者を変更しようとしました。PHPのネイティブの「chown」関数とexec関数を使用してLinuxコマンドのchownを実行しましたが、どちらも失敗します(PHPのネイティブのchownが表示されます) 「操作は許可されていません」エラー)

だから私の質問:1)私はこれについて間違った方法で行っていますか?(ファイルの所有権に関する知識は限られています)2)ファイルの所有権を変更すべきでない理由はありますか?3)回避策はありますか?

さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。

どうもありがとう

フィル

ブラウザ経由でアップロードされたファイルの現在のファイルの詳細:

[file].php      permissions: adfr (0644)    Owner: Apache    Group: Apache

FTP経由でアップロードされたファイルのファイルの詳細:

[file].php      permissions: adfr (0644)    Owner: [ftp login name]   Group: psacln
4

1 に答える 1

1

私はあなたがしていることと非常によく似た何かをしますが、私はftpを使用せず、scp、partsshを使用します。これを使用すると、次のようなことができます。

$> scp -rp /var/www/html/somedir/* 192.168.1.100:/var/www/html/somedir/.

このように、pフラグを使用して、ファイルをコピーし、アクセス許可、所有権、日付スタンプを保持するようにコマンドに指示します。rフラグは、必要に応じてサブディレクトリと再帰コピーを作成します。

他のコマンドと同じように、スクリプトに数行のscpを配置して自動化できますが、パスワードを回避するには、サーバー間でsshで生成された証明書を使用します。

于 2012-08-27T18:54:30.263 に答える