Linux服务器查找所有者为apache的文件/文件夹的命令需求
解决Linux服务器查找指定目录下属主为apache的文件/文件夹问题
没问题,我来帮你一步步搞定这个需求!咱们分两部分来:先讲怎么查看文件的所有者、用户组和权限,再重点解决筛选目标目录中属主为apache的内容。
一、查看所有文件/文件夹的所有者、组与权限
最常用的命令就是ls加上参数,能快速列出基础信息:
- 查看当前目录下所有可见文件的详细信息:
输出里的第三列是所有者(owner),第四列是用户组(group),第一列是权限(permission)(比如ls -ldrwxr-xr-x,第一位d代表目录,后面的三组分别是所有者、组、其他用户的权限)。 - 如果要包含隐藏文件(以
.开头的文件),用:ls -la - 要是想查看更详细的文件属性(比如inode、修改时间等),可以用
stat命令:stat filename
二、找出网站/CRON相关目录中属主为apache的文件和文件夹
咱们用find命令来递归查找,这是处理这类需求最灵活的工具。
1. 针对网站目录的查找
常见的网站根目录是/var/www/,如果你的网站有自定义目录,可以替换成实际路径。
- 列出该目录下所有属主为apache的文件和文件夹(包含路径、属主、组、权限):
find /var/www/ -user apache -printf "%p | 所有者: %u | 用户组: %g | 权限(数字): %m\n" - 只找文件夹:
find /var/www/ -user apache -type d -printf "%p [目录]\n" - 只找文件:
find /var/www/ -user apache -type f -printf "%p [文件]\n"
如果不确定所有网站的DocumentRoot,可以用Apache的命令先列出所有网站根目录:
# 针对CentOS/RHEL的httpd httpd -S | grep "DocumentRoot" | awk '{print $NF}' # 针对Debian/Ubuntu的apache2 apache2ctl -S | grep "DocumentRoot" | awk '{print $NF}'
把这些路径批量传入find:
WEB_DIRS=$(httpd -S | grep "DocumentRoot" | awk '{print $NF}') find $WEB_DIRS -user apache -printf "%p\n"
2. 针对CRON相关目录的查找
常见的CRON相关目录有/var/spool/cron/(用户自定义crontab文件)、/etc/cron.d/(系统级定时任务)、/etc/cron.hourly///etc/cron.daily/等周期任务目录。
- 查找这些目录中属主为apache的内容:
find /var/spool/cron/ /etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/ -user apache -printf "%p\n"
另外,你也可以直接查看apache用户的crontab内容:
crontab -u apache -l
3. 额外实用技巧
- 把结果保存到文件方便后续查看:
find /var/www/ -user apache -type f > apache_owned_web_files.txt - 统计找到的文件/文件夹数量:
find /var/www/ -user apache | wc -l
内容的提问来源于stack exchange,提问作者Vivek Tankaria
相关产品推荐
相关产品推荐

