This article explains how to find all the files that have a specific text or pattern within them, this is the article you’ve been looking for!
So today, I was dealing with a customers server where he had tried to configure BASIC AUTH. I’d found the httpd.conf file for the specific site, but I couldn’t see which file had basic auth setup as wrong. To save me looking through hundreds of configurations (and also to save YOU from looking through hundreds of configuration files) for this specific pattern. Why not use grep to recursively search files for the pattern, and why not use -n to give the filename and line number of files which have text in that match this pattern.
I really enjoyed this oneliner, and been meaning to work to put something like this together, because this kind of issue comes up a lot, and this can save a lot of time!
grep -rnw '/' -e "PermitRootLogin" # OUTPUT looks like /usr/share/vim/vim74/syntax/sshdconfig.vim:157:syn keyword sshdconfigKeyword PermitRootLogin /usr/share/doc/openssh-5.3p1/README.platform:37:instead the PermitRootLogin setting in sshd_config is used.
The above searches recursively all files in the root filesystem ‘/’ looking for PermitRootLogin.
I wanted to find which .htaccess file was responsible so I ran;
# grep -rnw '/' -e "/path/to/.htpasswd' # OUTPUT looks like /var/www/vhosts/somesite.com/.htaccess:14:AuthUserFile /path/to/.htpasswd