0

テキスト ファイルを UNIX マシンに書き込み、アプリケーションがそれを読み取る .net C# アプリケーションを作成しました。私のアプリケーションはターゲット フォルダにファイルを正常に書き込みますが、UNIX アプリケーションはファイルを読み取る権限がないというエラーをスローします。
WinSCP を使用してファイルを送信すると、権利が rwxrwxrwx であることがわかります。
私のアプリがファイルを送信するとき、権利は rw-r----- です。
これが理由だと思います。

これが私のコードです:

public override void WriteFile(string directoryName, string fileName, string text) {
     sshExec.RunCommand(@"echo """ + text + @""" > " + directoryName + "/" + fileName);
}

他のアプリケーションがファイルを読み取れるように権限を設定するにはどうすればよいですか?

4

2 に答える 2

1

これは FTP ではなく、SSH シェルの使用法です。"& chmod 777 " + directoryName + "/" + fileName のようなものをコマンドに追加する必要があります。

于 2012-11-08T17:24:49.217 に答える
-1

読み取りユーザー アカウントがファイルへの読み取りアクセス許可を持つようにファイルを作成する必要があります (つまり、読み取りアプリケーションが実行されるアカウント)。これ以上詳細を指定しないため、何が必要かを推測することしかできません。だからこれを試してみてください:

  • ファイルを作成するユーザーが所有するファイルを作成します
  • 両方のユーザーがメンバーであるグループに属するものとしてファイルを作成します。作成ユーザー アカウントと読み取りユーザー アカウント
  • 権限を持つファイルを作成しますrw-rw-r--

最良の方法は、両方のアカウントを何らかのグループのメンバーにして、作成ユーザーにそのグループをプライマリ グループとして与えることです。次に、そのユーザー アカウントumaskを必要なアクセス許可マスクの値に設定します。そうすれば、「読み取り」アプリケーションは、必要に応じてファイルを削除することもできます。実際に必要なものを十分に詳細に指定していないだけなので、これは一般的な経験則にすぎません。

于 2012-11-08T17:29:43.627 に答える