web-dev-qa-db-ja.com

WinSCPを使用して所有権を自動的に変更しますか?

ファイルのアップロード後に予期しないファイルのアクセス許可に関する問題についていくつかのスレッドを見ました。私は運が悪かったので彼らの解決策を試しました、私は自分のやり方で問題を提起しなければなりません。

Debian6でNginxをnobody:nogroupとして実行します。ルートWebフォルダー/usr/share/nginx/htmlnobody:nogroupに変更しました。現在、WinSCPを使用してファイルをマシンにアップロードしていますが、rootアカウントを使用しています。新しいディレクトリを作成したり、新しいファイルを更新したりすると、所有権はroot:rootになります。私はLinuxの世界に不慣れです。現在、サーバーに何かをアップロードした後、シェルを開いてwwwrootの所有権を変更しています。

ファイルをrootとしてアップロードし、ファイルとディレクトリをnobody:nogroupに保つためのベストプラクティスは何ですか?誰もアカウントにしないパスワードを設定し、このアカウントを使用してファイルをアップロードしますか?

5
stanleyxu2005

アップロードディレクトリchgrp nogroup UPLOAD_DIRのグループを変更してグループIDを設定することができますchmod g+s UPLOAD_DIR-このディレクトリに作成されたファイルにはグループnogroupがあります。 umask 002を使用してデフォルトの権限を設定でき(おそらくWinSCPセッションを開始するとき?)、すべてのファイルにグループのrw権限が与えられます。所有者は引き続きrootになりますが、Nginxプロセスはnogroupメンバーシップを介してファイルを管理できる必要があります。

4
brablc

新しいファイルの自動解決策を知りません。ただし、所有権を手動で変更し続ける必要がある場合は、さまざまなWinSCP機能を利用して作業を楽にすることができます。

WinSCPでは、GUIで 所有権の変更 が許可されます(ただし、OpenSSHサーバーを使用する場合は、数値のGID/UIDを使用する必要があります)。

または、WinSCP自体からchownコマンドを実行して、個別のシェル端末を開かないようにすることもできます。 WinSCPで カスタムコマンドchown nobody:nogroup .を設定して、これを高速化することもできます。

コマンドにキーボードショートカットを割り当てて、これをさらに簡単にすることもできます。

enter image description here

ファイルを更新する場合は、転送設定を無効にしてください一時ファイル名に転送これにより、転送ごとに新しいファイルが効果的に作成されます(デフォルトでは100 KiBを超えるファイルの場合)のみ)。無効にすると、WinSCPは既存のファイルのみを更新するため、所有権は保持されます。
https://winscp.net/eng/docs/resume#automatic
https://winscp.net/eng/docs/ui_pref_resume

4
Martin Prikryl