I am trying to upload image through admin page, but it keeps saying:
[Errno 13] Permission denied: '/path/to/my/site/media/userfolder/2014/05/26'
the folders userfolder/2014/05/26
are created dynamically while uploading.
In Traceback, i found that the error is occuring during this command:
In /usr/lib64/python2.6/os.py Line 157. while calling
mkdir(name, mode)
meaning, it cannot create any folder as it doesnot have the permission to do this
I have OpenSuse as OS in Server. In httpd.conf, i have this:
<Directory /path/to/my/site/media>Order allow,denyAllow from all</Directory>
Do I have to chmod or chown something?
Best Answer
You need to change the directory permission so that web server process can change the directory.
To change ownership of the directory, use
chown
:chown -R user-id:group-id /path/to/the/directory
To see which user own the web server process (change
httpd
accordingly):ps aux | grep httpd | grep -v grep
OR
ps -efl | grep httpd | grep -v grep
An OSError with Errno 13 Permission denied typically occurs when a user does not have the necessary permissions to perform a certain action in a Python program. This error message indicates that the operating system denied access to a file or directory because the user running the program does not have the required permissions.
There are several reasons why this error may occur. One possibility is that the user does not have the necessary read or write permissions for the file or directory in question. This can happen if the file or directory is owned by another user or if the permissions have not been set correctly.
To solve this issue, you can try changing the permissions of the file or directory using the chmod command in the terminal. Alternatively, you can run the Python program with elevated privileges, such as running it as an administrator or using the sudo command.
Another possible solution is to check if the file or directory is being used by another process. If so, you may need to close the file or terminate the process before attempting to access it again.
In conclusion, the OSError with Errno 13 Permission denied is a common error in Python programming that occurs when the user does not have the necessary permissions to access a file or directory. By understanding the causes and following the appropriate solutions, you can resolve this issue and continue with your Python programming tasks.
This may also happen if you have a slash before the folder name:
path = '/folder1/folder2'OSError: [Errno 13] Permission denied: '/folder1'
comes up with an error but this one works fine:
path = 'folder1/folder2'
Probably you are facing problem when a download request is made by the maybe_download function call in base.py file.
There is a conflict in the permissions of the temporary files and I myself couldn't work out a way to change the permissions, but was able to work around the problem.
Do the following...
- Download the four .gz files of the MNIST data set from the link ( http://yann.lecun.com/exdb/mnist/ )
- Then make a folder names MNIST_data (or your choice in your working directory/ site packages folder in the tensorflow\examples folder).
- Directly copy paste the files into the folder.
- Copy the address of the folder (it probably will be ( C:\Python\Python35\Lib\site-packages\tensorflow\examples\tutorials\mnist\MNIST_data ))
- Change the "\" to "/" as "\" is used for escape characters, to access the folder locations.
- Lastly, if you are following the tutorials, your call function would be ( mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) ) ;change the "MNIST_data/" parameter to your folder location. As in my case would be ( mnist = input_data.read_data_sets("C:/Python/Python35/Lib/site-packages/tensorflow/examples/tutorials/mnist/MNIST_data", one_hot=True) )
Then it's all done.Hope it works for you.
Another option is to ensure the file is not open anywhere else on your machine.
supplementing @falsetru's answer : run id in the terminal to get your user_id and group_id
Go the directory/partition where you are facing the challenge.Open terminal, type id then press enter.This will show you your user_id and group_id
then type
chown -R user-id:group-id .
Replace user-id and group-id
.
at the end indicates current partition / repository
// chown -R 1001:1001 . (that was my case)
Simply try:
sudo cp /source /destination
Just close the file in case it is opened in the background. The error disappears by itself
The solution that worked out for me here when I was using python 3 os package for performing operations on a directory where I didn't have sufficient permissions and access to got resolved by running the python file with sudo (root) i.e.:
sudo python python_file_name.py
Any other utility that you might also plan on using to chmod or chown that directory would also only work when you run it with sudo.
# file_name.pybase_path = "./parent_dir/child_dir/"user = os.stat(base_path).st_uid # for getting details of the current user owner of the dirgroup = os.stat(base_path).st_gid # for getting details of the current group owner of the dirprint("Present owner and group of the specified path")print("Owner:", user)print("Group:", group)os.chown(base_path, user, group) # change directory permissionsprint("\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)
run the above file with sudo.
sudo python file_name.py
Hope this answer works out for you.
Forever indebted to stackoverflow and the dev community. All hail the devs.