Bash检查文件夹中的所有文件是否可由www-data写入

时间:2015-03-28 09:59:38

标签: linux bash

我有一个日志文件夹,有时一些日志文件归root所有,但我需要它们归www-data所有。

我正在编写一个脚本,用于检查它们是否全部归www-data所有。=可写给该用户。

#!/bin/bash
rootfiles=$(ls -lA /tmp/logs/ | grep root | sed -e 's/\s*$//')
if [[ ! -z "$rootfiles" ]]; then
    exit 1
fi
exit 0

这样做很好,但只有当我假设其中没有包含单词root的文件时,并且所有不是root的www-data {{} 1}}。

我怎样才能让它更健壮?

2 个答案:

答案 0 :(得分:1)

您可以使用find查找:

find /tmp/logs -not -user www-data

但是,要更改所有文件的所有者,可以使用递归chown

chown -R /tmp/logs/* www-data

答案 1 :(得分:1)

您可以在-user中使用find选项:

find /tmp/logs -not -user www-data

更改所有权:

find /tmp/logs -not -user www-data -exec chown www-data {} +