unix OSError -错误号13权限被拒绝

juud5qan  于 2022-11-04  发布在  Unix
关注(0)|答案(8)|浏览(146)

我试图通过管理页面上传图像,但它一直说:

[Errno 13] Permission denied: '/path/to/my/site/media/userfolder/2014/05/26'

文件夹X1 M0 N1 X在上载时动态创建。
在Traceback中,我发现在执行以下命令期间发生错误:
在/usr/lib 64/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一些东西吗?

a64a0gku

a64a0gku1#

您需要更改目录权限,以便Web服务器进程可以更改目录。

  • 要更改目录的所有权,请使用chown
chown -R user-id:group-id /path/to/the/directory
  • 要查看哪个用户拥有Web服务器进程(相应地更改httpd),请执行以下操作:
ps aux | grep httpd | grep -v grep

ps -efl | grep httpd | grep -v grep
btxsgosb

btxsgosb2#

如果文件夹名称前有斜杠,也可能发生这种情况:

path = '/folder1/folder2'

OSError: [Errno 13] Permission denied: '/folder1'

出现了一个错误,但下面这个错误可以正常工作:

path = 'folder1/folder2'
dba5bblo

dba5bblo3#

当www.example.com文件中的maybe_download函数调用发出下载请求时,您可能会遇到问题base.py。
临时文件的权限存在冲突,我自己也无法找到更改权限的方法,但能够解决这个问题。
请执行以下操作...

  • 从链接(http://yann.lecun.com/exdb/mnist/)下载MNIST数据集的四个.gz文件
  • 然后让一个文件夹命名为MNIST_data(或者你选择在你的工作目录/ site packages文件夹中的tensorflow\examples文件夹)。
  • 直接将文件复制粘贴到文件夹中。
  • 复制文件夹的地址(它可能是(C:\Python\Python35\Lib\站点包\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))

那就都搞定了希望对你有用。

5us2dqdw

5us2dqdw4#

另一个选项是确保该文件不在计算机上的其他任何位置打开。

qhhrdooz

qhhrdooz5#

补充@falsetru的回答:在终端中运行id以获取用户id和组id
进入你面临挑战的目录/分区。打开终端,输入id,然后按回车键。这将显示你的user_id和group_id
然后键入
.
替换用户ID和组ID
最后的.表示当前分区/存储库
// chown -R 1001:1001 .(那是我的案例)

6ju8rftf

6ju8rftf6#

只需尝试:

sudo cp /source /destination
p1tboqfb

p1tboqfb7#

如果文件在后台打开,只需关闭文件即可。错误会自行消失

fdbelqdn

fdbelqdn8#

当我使用python 3操作系统包在一个目录上执行操作时,我没有足够的权限和访问权限,通过使用sudo(root)运行python文件解决了这个问题,即:

sudo python python_file_name.py

您可能还计划使用任何其他实用程序来chmod或chown该目录,这些实用程序也只有在使用sudo运行时才能工作。


# file_name.py

base_path = "./parent_dir/child_dir/"
user = os.stat(base_path).st_uid # for getting details of the current user owner of the dir
group = os.stat(base_path).st_gid # for getting details of the current group owner of the dir

print("Present owner and group of the specified path")
print("Owner:", user)
print("Group:", group)
os.chown(base_path, user, group) # change directory permissions

print("\nOwner id of the file:", os.stat(base_path).st_uid)
print("Group id of the file:", os.stat(base_path).st_gid)
os.mkdir(base_path+file_name,mode=0o666)

请使用sudo运行上述文件。

sudo python file_name.py

希望这个答案对你有用。
永远感谢stackoverflow和开发社区。所有的开发者万岁。

相关问题