How to make a directory permanently writable?

  • I am using LAMP stack for development and I have a problem with making /var/www permanently writable. I use this command:

    sudo chmod -R a+rwX /var/www
    

    This works, but after putting a web app and accessing it through a browser, it show a "permission denied" error. When that happens, I have to the execute the command again.

    How can I make the directory writable, permanently, without having to run the command again?

    Thanks!

    create a subfolder in `/var/www` and change permisson for that directory. That should fix the issue

    Actually you should **never ever** make web root writable. See For security reasons why should /var/www not have chmod 777?

    these are some good comments above... considering the security reasons, you should keep permission for `/var/www` to default rwxr-xr-x and you'd probably move the required files to a sub-directory in `/var/www` and make changes to your *html files accordingly for the changes you've made to the document root.

  • Numeric permissions can solve your problem.

    sudo chmod 775 'your directory'
    

    if you want to know why only 775 here's your answer

    400 read by owner
    040 read by group
    004 read by anybody
    200 write by owner
    020 write by group
    002 write by anybody
    100 execute by owner
    010 execute by group
    001 execute by anybody
    
     400
    +040
    +004
    +200
    +020
    +100
    +010
    +001
    =775
    

    It will give all permission except write by anybody.

  • I had the same problem then

    sudo chmod 777 directory
    

    solved it.

    That makes the directory writable, readable and executable by anybody. So doesn't matter what user or group owned it or used Lampp.

    However, that isn't recommended if your computer is public access.

  • Usually the command you used should change the permissions permanently.

    Try sudo chmod -R 775 /var/www/ (which basically is the same). If that doesn't work you might need to change the owner [and maybe the group] of the directory via sudo chown <user>[:<group>] /var/www/.

    Also, you might consider the 'permission denied error' could be caused by insufficient access rights in your database or elsewhere.

    But as @schkovich already mentioned you should not make the web root folder writeable.

    +Rinzwind I used 777 and am patiently waiting your visit.

    it worked for me if i use it without slashes e.g `sudo chmod -R 775 my_folder`

    @Marcel is now dead guys, @ Rinzwind ended him

    @Dheeraj Then who is this...

    @Marcel how do we know its the real you, what if @ Rinzwind tore marcel's face and wore it.

    Thanks @Marcel! Using 777 worked for me when 775 and nothing else worked! Now my folder is finally writable! (Sorry @Rinzwind).

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM