C#-通过FTP写入文件-如何设置权限?

C#-通过FTP写入文件-如何设置权限?,c#,unix,ftp,C#,Unix,Ftp,我编写了一个.NETC#应用程序,它将文本文件写入unix机器,然后由应用程序读取。我的应用程序可以将文件写入目标文件夹,但unix应用程序会抛出一个错误,表示它没有读取文件的权限 当我使用WinSCP发送文件时,我可以看到权限是rwxrwx。 当我的应用程序发送文件时,权限为rw-r 我想这就是原因 这是我的密码: public override void WriteFile(string directoryName, string fileName, string text) {

我编写了一个.NETC#应用程序,它将文本文件写入unix机器,然后由应用程序读取。我的应用程序可以将文件写入目标文件夹,但unix应用程序会抛出一个错误,表示它没有读取文件的权限
当我使用WinSCP发送文件时,我可以看到权限是rwxrwx。
当我的应用程序发送文件时,权限为rw-r
我想这就是原因

这是我的密码:

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

如何设置权限以便其他应用程序可以读取文件?

这不是FTP,这是SSH外壳的用法。
您应该在命令中附加类似“&chmod 777”+目录名+“/”+文件名的内容。

您应该创建文件,以便读取用户帐户具有对该文件的读取权限(以便读取应用程序在该帐户下运行)。因为您没有指定更多的细节,所以只能猜测需要什么。因此,请尝试一下:

  • 将文件创建为创建文件的用户所拥有
  • 将文件创建为属于两个用户都是其成员的组、创建和读取用户帐户
  • 使用权限创建文件
    rw-rw-r--
最好的方法是使两个帐户都成为某个组的成员,并将该组的创建用户作为主组。然后将用户帐户
umask
设置为所需的权限掩码值。这样,“读取”应用程序也可以在需要时删除该文件。
当然,这只是一个一般的经验法则,因为您只是没有详细说明您真正需要什么

如果它是一个只能读取(不执行)的文件,那么
rwxrwxrwx
是完全错误的。你甚至没有说你使用什么协议在应用程序中创建文件…是的,但这是Yoav使用WinSCP接收的。他可以简单地更改命令来设置其他权限。完全正确地观察到,这是他当前的WinSCP设置所得到的。我要说的是,这样做不是个好主意。我们都知道为什么。那么,为什么要向他解释在他自己的申请中犯同样的错误呢?我们的目标不应该是让事情“以某种方式”运行,而是理解您实际在做什么。谢谢,我将使用chmod 666(或者chmod 6是否足够?)。chmod 6将为“其他”提供读/写访问权限。要仅向所有者授予访问权限,您应该使用chmod 600谁是所有者?编写该文件的应用程序?我想给另一个应用程序读取并从文件夹中删除文件的权限。