我写了一个.net C#应用程序,它将文本文件写入unix机器,应用程序在其中读取它。我的应用程序将文件写入目标文件夹,但是unix应用程序抛出一个错误,说它没有读取文件的权限。
当我使用WinSCP发送文件时,我可以看到权利是rwxrwxrwx
当我的应用程序发送文件时,权限是rw-r -----。
我认为这就是原因。
这是我的代码:
public override void WriteFile(string directoryName, string fileName, string text) {
sshExec.RunCommand(@"echo """ + text + @""" > " + directoryName + "/" + fileName);
}
如何设置权限以便其他应用程序可以读取文件?
答案 0 :(得分:1)
这不是FTP,这是SSH shell的用法。 你应该在你的命令中添加类似“& chmod 777”+ directoryName +“/”+ fileName的内容。
答案 1 :(得分:-1)
您应该创建文件,使读取用户帐户具有该文件的读取权限(因此读取应用程序运行的帐户)。由于您没有指定任何更多细节,因此您只能猜测所需的内容。所以试试这个:
rw-rw-r--
最好的方法是使两个帐户都成为某个组的成员,并将创建用户组作为主要组。然后将该用户帐户umask
设置为所需的权限掩码值。这样,“阅读”应用程序也可以删除文件(如果需要)。
因为这只是一般的经验法则,因为你根本没有详细说明你真正需要的细节。