SharpSSH を使用してファイルをリモート マシンにアップロードしています。
public override void WriteFile(string directoryName, string fileName, string localFilePath) {
sftp.Put(localFilePath, directoryName + "/" + fileName);
}
問題は、ファイルのパーミッションが rw-r----- であることです。これにより、受信アプリケーションがファイルを別のフォルダーに移動して処理することを防ぎます。デスクトップ (仮想マシン) にローカルにインストールされている別の UNIX マシンでこれをテストしましたが、ファイルのアクセス許可は rwxrwxrwx に設定されています。
同じユーザーを使用して WinSCP でファイルを転送すると、ファイルのアクセス許可が rwxrwxrwx に設定されます。WinSCP がこれらの過度に広範囲なアクセス許可を与えるように構成されていることがわかったので、同じことをしようと考えました。この行を追加しました。
public override void WriteFile(string directoryName, string fileName, string localFilePath) {
sftp.Put(localFilePath, directoryName + "/" + fileName);
sshExec.RunCommand(@"chmod 666 " + directoryName + "/" + fileName);
}
ただし、ファイルのアクセス許可は変更されません。コマンドを間違って実行していますか?