web-dev-qa-db-ja.com

WinSCPでファイルを `/ var / www`にコピーするにはどうすればよいですか?

Webファイルをec2 UbuntuインスタンスのApacheの/var/wwwに配置しようとすると、権限がないことを示すエラーが表示されます。

Permission denied.
Error code: 3
Error message from server: Permission denied
Request code: 3

これを行う許可を自分に与えるにはどうすればよいですか、またはWinSCPを使用して/var/wwwにファイルをコピーする最良の方法は何ですか?

11
andrew

WinSCPでも同じエラーが発生しました。 1つの解決策は、chownを使用して「/ www /」フォルダーの所有権を変更することです。そうすることで、「root」が所有者になる代わりに、ログインに使用するユーザーを所有者にすることができます。 UbuntuではなくAmazon Linuxのインスタンスを使用していますが、このコマンドでうまくいきました。

Sudo chown -R -v ec2-user /var/www/

ユーザー「ec2-user」は、ログインに使用したユーザーです。

潜在的に役立つリンク

  • alestic.com :EC2の公式UbuntuイメージでSudo、ssh、rsyncを使用
  • Apache.com :コマンドリスト
15
chrisfargen

WinSCPを介してログインするユーザーの書き込み権限を有効にします。これを行うには2つの方法があります。

1つ目の方法は、フォルダへのアクセス許可を変更して、だれでもフォルダに書き込めるようにすることです。これは最高のセキュリティではありません。

chmod 777 /var/www


2つ目の方法は、ディレクトリを所有するグループにユーザーを追加し、グループにディレクトリへの書き込み権限を設定することです。

ディレクトリの所有者を確認します。

ls -l /var | grep www

次のようなものが表示されます。drwxr-x --- 9 www-data www-data 4096 2009年7月14日www注意すべき重要なことは、ルートとルートの2つの名前です。この場合、ディレクトリの所有者はwww-dataであり、ディレクトリのグループはwww-dataです。したがって、ユーザーをグループwww-dataに追加します。

usermod -G www-data user

次に、グループに書き込み権限を追加します。

chmod 770 /var/www

ls -l /var | grep www

戻り値:drwxrwx --- 9 www-data www-data 4096 2009年7月14日www

これにより、ディレクトリへの書き込みが可能になりますが、すべてのユーザーに書き込み権限を与えることはできません。

9
Chris Ting

ec2では、これでうまくいきます。ユーザー「ec2-user」でPuTTYを介してボックスにログインし、コマンドを使用します。

Sudo root
chmod 777 <NAME_OF_FOLDER>

注:これにより、すべてのユーザーに書き込みアクセスが許可されます。

これで、WinScpを使用して書き込むことができるはずです。

1
blue-sky

次のチュートリアルは私にとってうまくいき、役立つスクリーンショットを提供します。 Sudoアクセス許可を持つ通常のユーザーとしてログインするには、いくつかのWinSCPオプションを微調整する必要がありました: http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user -from.html

セッション/ファイルプロトコルをSCPに設定し、ホスト/インスタンスIP、ポート-通常22、および通常のユーザー名を入力します。ログインで必要な場合は、パスワード資格情報を入力します。 Advanced/SSH/Authenticationにユーザーの対応する秘密鍵ファイルを追加します。

Advanced/SSH/Authentication/attempt "keyboard interactive" authenticationのチェックを外すと、Advanced/Environment/SCP Shell/Shell/Shell:Sudo su-非所有者ユーザーとしてWebサーバーディレクトリにアクセスするためのSudoパーミッションを提供できます。


更新:2017年8月3日

WinSCPログは、問題のトラブルシューティングに役立ちます。

winscp.net/eng/docs/logging:

[WinSCP]ロギングは、[設定]ダイアログの[ロギング]ページから有効にできます。/logおよび/ xmllogパラメータをそれぞれ使用して、コマンドラインからロギングを有効にすることもできます。これは、スクリプトで特に役立ちます。 .NETアセンブリでは、Session.SessionLogPath1を使用してセッションロギングが有効になります。

WinSCP接続エラーによっては、一部のサーバーインストールで、(Ubunto、CentOS、その他のLinux-Server)/ etc/sudoersファイルにディレクティブを追加して、指定したユーザーのTTYを必要としない場合があります。 /etc/sudoers.d/にファイルを作成する(Amazon Command Line InterfaceまたはPuTTYなどのツールを使用する)ことは、/ etc/sudoersを編集するよりも優れたオプションです。/etc/sudoersの一部のバージョンでは、これが推奨されています。

このファイルは、ルートとして「visudo」コマンドを使用して編集する必要があります。このファイルを直接変更するのではなく、/ etc/sudoers.d /にローカルコンテンツを追加することを検討してください。 sudoersファイルの作成方法の詳細については、manページを参照してください。

コマンドラインを介してsudoersファイルを(ルートとして)編集する場合、構文エラーがないかファイルを解析するため、「visudo」コマンドを使用してファイルを開く必要があります。 /etc/sudoers.d/ファイルは通常rootが所有し、最小限の権限でchmodされています。デフォルトの/ etc/sudoersファイルは、インストール時に自動的に推奨chmod権限が付与されているため、参照することができます。例:0440 r--r -----。

superuser.com/a/869145:

visudo -f /etc/sudoers.d/somefilename

Defaults:username !requiretty 

便利なリンク:

  • Stackoverflow:stackoverflow.com/questions/25688850/cloud-init-how-to-add-default-user-to-sudoers-d
    • www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos

WinSCPフォーラム:-winscp.net/forum/viewtopic.php?t=3046-winscp.net/forum/viewtopic.php?t=2109

WinSCPドキュメント: https://winscp.net/eng/docs/faq_s

SCPプロトコルを使用すると、[サイトの詳細設定]ダイアログの[SCP /シェル]ページで、次のコマンドをカスタムシェルとして指定できます。

Sudo -s

[...]

WinSCPは端末エミュレーションを実装できないため、sudoersオプションrequirettyをオフにする必要があることに注意してください。

Ubuntu Apacheの手順/ etc/sudoersは、/ etc/sudoersを直接編集するのではなく、/ etc/sudoers.dにディレクティブを追加することを推奨しています。インストールによっては、/ etc/sudoers.d/cloud-initにディレクティブを追加しても機能する場合があります。

インスタンスのドキュメントに記載されている手順に従ってSudo権限を持つSSHテストユーザーを作成すると、ユーザーがインスタンス設定を推奨し、他のユーザーに影響を与えることなくサーバーのsudoerファイルへの更新を実行および削除できることを確認できます。

1
1keown

ユーザーに書き込み権限を与える必要があります。stat /var/wwwを使用して以前の権限を覚えておいてください。

その後、Sudo chmod 666 /var/wwwを使用して変更し、後で必要に応じて元に戻すことができます。

詳細については、インターネット上の他のファイル許可マニュアルとともにman chmodおよびman Sudoを参照してください...

0
Tamara Wijsman