You can use some bash scripting to make for loops and have mass changes in a Linux Server. Follow the simple steps below.
Collect the data that is needed to be changed.
- Here we will use the “find” command to look for 777 directories under user “whomever.”
- find /home/whomever/public_html -type d -perm 777
- What this does is find in directory /home/whomever/public_html, any directories (-type d) that are 777 permissions (-perm 777).
- You can change this to work with whatever directories you want, permissions you want, etc.
Alright that’s neat, but kind of hard to read if you have a lot of 777 permissions in this directory. Let make them all go into a file.
- Start with the same command, but we’ll add something to make it go into a file we create.
- find /home/whomever/public_html -type d -perm 777 > badpermlist
- What this does is take our query and creates a file called “badpermlist” where all the data will be put.
Now that we have our data, we can start with some basic scripting.
Verify your data
- for each in `cat badpermlist` press -enter-
- do press -enter-
- ll -d $each press -enter-
- done | more press -enter
- This will show your data that is in the file.
- IMPORTANT: the ` ` marks are the ones that are under the ~ key, NOT the apostrophe key
Change the data
- for each in `cat badpermlist` press -enter-
- do press -enter-
- chmod 755 $each press -enter-
- done press -enter-
- Congrats, you just changed all those pesky 777 permissions to 755 like they should be.
Verify that the change took place because it is never a bad idea to check your work.
- for each in `cat badpermlist` press -enter-
- do press -enter-
- ll -d $each press -enter-
- done | more press -enter-
- Now all the data that showed up as 777 should now show as 755.
Now as you can tell, there is a lot of potential to a very simple script like this. I hope this helps breakdown some basic concepts for you and helps you on your scripting way!
Note
- Play with changing the items specified in a “for loop,” just remember what you changed so you can change it back!
- Watch that you use the ` ` (backwards apostrophes) symbols under the ~ (til-day). If you use ‘ ‘ (apostrophes) it will NOT work!