【问题标题】:SITE CHMOD command failed through ftp, can't figure out whySITE CHMOD 命令通过 ftp 失败,无法弄清楚原因
【发布时间】:2014-10-08 03:49:51
【问题描述】:

将 FTPClient 用于 .NET 2.0。

我正在连接到 vsftpd 服务器,并且能够写入文件,但我无法运行命令。我提供了下面的代码。

当我使用命令提示符登录到 ftp 服务器时,我还能够运行 QUOTE SITE chmod 命令。我得到了 200 SITE CHMOD 命令。

这是服务器上的配置设置吗?

        ftpClient.Connect();
        string ftpLoc = folder + fileName;
        using (var fileStream = File.OpenRead(localFile))
        using (Stream ostream = ftpClient.OpenWrite(ftpLoc))
        {
            try
            {
                var buffer = new byte[8 * 1024];
                int count;
                while ((count = fileStream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    ostream.Write(buffer, 0, count);
                }

                FtpReply reply;
                if (!(reply = ftpClient.Execute("SITE chmod 775 " + fileName)).Success)
                {
                    throw new FtpCommandException(reply);
                }
            }
            catch (Exception e)
            {
                logSW.WriteLine("ftp error: " + e.InnerException + " | " + e.Message);
                return e.Message;
            }
        }

【问题讨论】:

  • 你用来更改工作目录的代码是什么?

标签: c# .net ftp ftp-client


【解决方案1】:

这可能取决于您的登录方式。

来自 VSFTPD configuration manpage

chmod_enable

启用后,允许使用 SITE CHMOD 命令。 注意!这仅适用于本地用户。匿名用户永远无法使用 SITE CHMOD。

Default: YES 

【讨论】:

  • 谢谢。我的ftp技能不存在。我可以浏览到 conf 文件夹的位置,但我不知道打开文件的命令。我试过vi,我尝试输入conf文件名无济于事。
  • 你应该可以做一个“more ”或“cat ”。
  • 已修复。如果其他人遇到这个问题,我不在正确的目录中。我能够写入我当前不在的文件夹中,但我无法更改我不是文件夹中文件的权限。所以我只是更改了工作目录并且它工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
相关资源
最近更新 更多