Today I learned is a series where I share a short summary of one thing I learned during the day. The idea is to show what resources I used and give my own short explanation to things.
I was working with a CMS system in Docker Node Alpine environment. At some point, when installing the CMS, I got an error stating that my user doesn't have permissions to run mkdir in /extensions
Why? I had changed my default user in Docker container from root to myotherusername for security reasons.
By doing that, I also lost many of the permissions to manipulate the filesystem.
101 of permissions in Linux
You should know that in Linux, files/directories can have three types of permissions:
- READ(r)
- WRITE(w)
- EXECUTE(x).
Also, there are three parties you can set the file permissions for:
- owner(creator by default)
- user groups
- others
You can run ls -la to see that info.
It will display the following data about your current directory:
- a list of files and directories
- their permissions
- owners
- owner groups
In my case, I was interested in /extensions folder.

drwxr--r-- refers to the permissions that were applied to the directory.
We can see that:
- it's was directory
- owner(root) couldread,write,execute
- group(users who were in the rootgroup) couldread
- others could read
As my current user was myotherusername, not root, I didn't have permissions to create directory inside /extensions folder. 
Solution? chown
With chown, you can modify the owner of a file or directory.
While being root user, I had to run this command:

And boom - myotherusername became the owner of the folder and got the permissions to read, write and execute in /extensions folder.
Btw, the -R here means recursively.
As I used Dockerfile to build my image, I actually added the command to be run inside the Dockerfile:

And that's was it!
If you're more interested in the topic, I also recommend you to read about chmod command which is used to manipulate specific permissions for owner/groups/others.
Also, if you have any feedback / suggestions, please write in the comments.
 
 
              


 
    
Top comments (0)