.net 通过ftp执行SITE CHMOD命令失败,无法找出原因

jhdbpxl9  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(443)

使用用于.NET 2.0的FTPClient。
我连接到一个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;
            }
        }
bejyjqdl

bejyjqdl1#

这可能取决于您的登录方式。
来自VSFTPD configuration manpage
chmod_enable命令
启用时,允许使用SITE CHMOD命令。注意!这仅适用于本地用户。匿名用户永远无法使用SITE CHMOD。

Default: YES

相关问题