for x in $(ls -ll <path to files> | awk '{ print $3,$4 }' | tail -n +2) ; do
if [ "${x}" != "root" ] ; then
echo "Fail"
break
else
echo "Pass"
fi
done
これで、見つかったすべてのファイルに「パス」を印刷します。次のような場合は「passed」を印刷したいと思います。みんなファイルの所有者は根そして、次のような場合は「失敗」を印刷します。どのリスト内のユーザーまたはグループではありません。根。
ベストアンサー1
すべてのファイルがルートに属し、ルートグループに属していることを確認するには、 find を使用します。
find <path to files> ! -user root -or ! -group root -print
何も返されない場合、ファイルはルートに属していないか、グループルートに属しません。その後、条件を付けて「パス」または「フェイル」を印刷できます。
[[ "$(find <path to files> ! -user root -or ! -group root -print)" == "" ]] && echo "Pass" || echo "Fail"