OSError - 错误13 权限被拒绝
我在管理员页面上传图片时遇到问题,总是提示:
[Errno 13] Permission denied: '/path/to/my/site/media/userfolder/2014/05/26'
文件夹 userfolder/2014/05/26
是在上传时动态创建的。
在错误追踪中,我发现错误发生在这条命令上:
在 /usr/lib64/python2.6/os.py 的第157行,调用了
mkdir(name, mode)
这意味着,它无法创建任何文件夹,因为没有权限去做这件事。
我的服务器上运行的是OpenSuse操作系统。在httpd.conf文件中,我有这个:
<Directory /path/to/my/site/media>
Order allow,deny
Allow from all
</Directory>
我需要修改权限(chmod)或者更改所有者(chown)吗?
9 个回答
1
补充一下@falsetru的回答:在终端里输入id可以获取你的用户ID和组ID。
首先,进入你遇到问题的文件夹或分区。打开终端,输入id,然后按回车。这时会显示你的用户ID和组ID。
接着输入
chown -R 用户ID:组ID .
把用户ID和组ID替换成你刚才查到的值。
.
表示当前的文件夹或分区。
// 例如:chown -R 1001:1001 .(这是我的情况)
1
另一个选择是确保这个文件在你电脑上的其他地方没有被打开。
1
你可能在使用base.py文件中的maybe_download函数时遇到了下载请求的问题。
这个问题是因为临时文件的权限发生了冲突,我自己也没找到改变权限的方法,但我找到了一种解决办法。
你可以按照以下步骤操作...
- 从这个链接下载四个MNIST数据集的.gz文件( http://yann.lecun.com/exdb/mnist/ )
- 然后在你的工作目录或tensorflow\examples文件夹中创建一个名为MNIST_data的文件夹(你也可以选择其他名字)。
- 直接把下载的文件复制粘贴到这个文件夹里。
- 复制这个文件夹的地址(它可能是 ( C:\Python\Python35\Lib\site-packages\tensorflow\examples\tutorials\mnist\MNIST_data ))。
- 把地址中的“\”换成“/”,因为“\”在这里是用作转义字符的,换成“/”才能正确访问文件夹。
- 最后,如果你在跟着教程,你的调用函数应该是 ( mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) );把"MNIST_data/"这个参数改成你的文件夹地址。比如在我的情况下应该是 ( mnist = input_data.read_data_sets("C:/Python/Python35/Lib/site-packages/tensorflow/examples/tutorials/mnist/MNIST_data", one_hot=True) )
这样就完成了。希望这对你有帮助。
24
如果你在文件夹名字前面加了一个斜杠,也可能会出现这个问题:
path = '/folder1/folder2'
OSError: [Errno 13] Permission denied: '/folder1'
这样会报错,但下面这个就没问题:
path = 'folder1/folder2'
48
你需要更改目录的权限,这样网络服务器的程序才能访问这个目录。
要更改目录的拥有者,可以使用
chown
命令:chown -R user-id:group-id /path/to/the/directory
要查看哪个用户拥有网络服务器的程序(根据需要更改
httpd
):ps aux | grep httpd | grep -v grep
或者
ps -efl | grep httpd | grep -v grep