0

我编写了一个 .net C# 应用程序,它将文本文件写入 unix 机器,应用程序读取它。我的应用程序将文件很好地写入目标文件夹,但是 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 shell 的用法。您应该在您的命令中附加类似 "& chmod 777 " + directoryName + "/" + fileName 的内容。

于 2012-11-08T17:24:49.217 回答
-1

您应该创建该文件,以便阅读用户帐户对该文件具有读取权限(因此阅读应用程序在该帐户下运行)。由于您没有指定更多详细信息,因此只能猜测需要什么。所以试试这个:

  • 将文件创建为由创建文件的用户拥有
  • 将文件创建为属于两个用户都属于的组,创建和读取用户帐户
  • 创建具有权限的文件rw-rw-r--

最好的方法是让两个帐户都成为某个组的成员,并将该组作为主要组的创建用户。然后将该用户帐户umask设置为所需的权限掩码值。这样,如果需要,“阅读”应用程序也可以删除文件。当然,这只是一般的经验法则,因为您根本没有指定足够的详细信息来满足您的真正需求。

于 2012-11-08T17:29:43.627 回答