首页 新闻 会员 周边 捐助

.net core 在linux下上传文件没有权限

0
悬赏园豆:50 [已解决问题] 解决于 2018-07-18 11:37

using (var stream = new FileStream(filename, FileMode.Create)) {
    upFile.CopyTo(stream);
}

 

在windows下测试是没问题的。

Access to the path '/var/www/helloworld/upload/xxx.jpg' is denied.

System.UnauthorizedAccessException: Access to the path '/var/www/helloworld/upload/xxx.jpg' is denied. ---> System.IO.IOException: Permission denied
--- End of inner exception stack trace ---
at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)

microdot的主页 microdot | 初学一级 | 园豆:197
提问于:2018-07-17 21:20
< >
分享
最佳答案
0

建议检查一下运行 asp.net core 站点的账户是否对 /var/www/helloworld/upload 目录有写权限

收获园豆:45
dudu | 高人七级 |园豆:30939 | 2018-07-17 21:28

用的supervisor守护启动 dotnet xxx.dll

这是哪个账号?

microdot | 园豆:197 (初学一级) | 2018-07-17 21:34

@microdot: 如果想以 root 帐户运行,需要在 supervisor 的配置文件中添加 user=root

dudu | 园豆:30939 (高人七级) | 2018-07-17 21:48

@dudu: 用root是不是不太安全,一般是用什么账号启动,新建一个吗?还是和nginx一样用www-data?

microdot | 园豆:197 (初学一级) | 2018-07-18 09:40

@microdot: 如果不用 root ,那就新建一个账户

dudu | 园豆:30939 (高人七级) | 2018-07-18 09:49
其他回答(1)
0

chomd -777 /var/www/helloworld/upload/

收获园豆:5
czd890 | 园豆:14488 (专家六级) | 2018-07-17 22:46

上传目录不要有执行权限,独写就好

支持(0) 反对(0) czd890 | 园豆:14488 (专家六级) | 2018-07-17 22:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册