ホーム>source

質問:

次のようなことができますか?

ウィズウィズ

フォルダは作成できますが、ファイルは作成できませんか?明示的にsudoを呼び出すか、paramikoに何かを設定する必要がありますか?ファイルを許可されたスペースにコピーして、chowningする必要がありますか?キーを使用したり self.sftp.put(sourceFilePath, final_destination, use_sudo=True) をいじったりせずにparamikko sudoerを与える方法はありますか ?何が欠けていますか?

コード:

<前>ウィズウィズ

トレースバック:

<前>ウィズウィズ

私が見た他の投稿:

  • http://www.lag.net/paramiko/docs/paramiko.SFTPClient-class.html#put
  • paramiko 1.7.6を使用すると「Permission Denied」エラーが発生する理由を理解しようとしています
  • PAramikoを使用してSFTPに「Put」
  • IOError:[Errno 13]権限が拒否されました:
  • IOError:[Errno 13]権限が拒否されました
  • なぜIOError:[Errno 13]権限が拒否されましたか?
  • Python-IOError:[Errno 13]権限が拒否されました:
  • shutil.copyfileを使用すると、Python IOError:[Errno 13]権限が拒否されます:
  • https://github.com/fabric/fabric/issues/257
  • https://github.com/fabric/fabric/issues/828
  • https://github.com/fabric/fabric/issues/257
  • http://code.activestate.com/recipes/576810-copy-files-over-ssh-using-paramiko/
  • paramikoでsudoを実行する方法は? (Python)

一部の投稿は古いものですが、paramikoに実装されていないことを示しているようです。ファブリックにはバージョンが実装されていますが、依存関係を追加するかどうかはわかりません。

<前>ウィズウィズ ssh.exec_command("sudo mv")
あなたの答え
  • 解決した方法 # 1

    1)/ home/user/Desktopから/ var/wwwにフォルダーを移動するCronタスク

    2)rootとしてログインします。 (明らかなセキュリティ問題)

    sudo passwd root を実行した後  ホストサーバーで、ルートを使用して/ var/wwwにファイルを転送できるようになりました。

    また、www-dataにユーザーを追加し、ファイルとディレクトリを再帰的に変更しましたが、rootパスワードを設定するとうまくいったと思います。

    編集は上記を行わないでください: 権限や所有権を変更する

    Linuxの場合:sshで実行できる場合:

    ウィズウィズ

    誰がディレクトリを所有し、r/w権限を持っているかを確認します。

    <前>ウィズウィズ

    次に、使用方法を調べます。

    ウィズウィズ

    ウィズウィズ

    ウィズウィズ

    ウィズウィズ

    ウィズウィズ

    ユーザーに読み取り/書き込み権限を付与します。

    これは次の方法で実行できます。

    ディレクトリの所有者を変更する

    ディレクトリのグループにユーザーを追加する

    新しいグループを作成し、ディレクトリ上のグループを変更する

    所有者を変更する

    所有者、グループ、またはパブリックの読み取り/書き込み権限を変更します。

    見る:

    https://askubuntu.com/questions/6723/change-folder-permissions-and-ownership

    https://askubuntu.com/questions/19898/whats-the-simplest-way-to-edit-and-add-files-to-var-www

  • 解決した方法 # 2

    Windowsで「アクセス権が拒否されました」というエラーが表示されました。私のコードはこのように見えました-

    <前>ウィズウィズ

    次に、以下のように変更しました-

    <前>ウィズウィズ

    そして、ファイルを正常にアップロードすることができました。

  • 解決した方法 # 3

    pysftpを使用してファイルをput()すると、非常によく似たトレースバックで同じエラーが発生しました。そのsftpディレクトリに既に存在するファイルと同じファイル名のファイルをput()しようとしていることがわかりました。 put()の前にファイル名を変更すると、これが修正されました。

    ls -ld /path/to/location

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ r markdown - 以下に示す目次を取得するために使用されるRMarkdownテーマ/スタイルはどれですか?