コマンドがすべてを一覧表示するシェルスクリプトを生成しようとしています。読み取りと実行可能ユーザーが誰であるか、ユーザーがどこにいるかに関係なく、私または現在のユーザーが許可するファイルです。したがって、後で権限を変更しても、変更は反映され続けます。
これが私が今まで持っているものです:
user=`id -un`
group=`id -gn`
IFS='
'
for file in `ls -al /home/cg/root`; do
perm=$(echo $file | awk '{print $1}')
fileowner=$(echo $file | awk '{print $3}')
filegroup=$(echo $file | awk '{print $4}')
ownerreadbit=${perm:1:2}
ownerexecbit=${perm:3:4}
groupreadbit=${perm:4:5}
groupexecbit=${perm:6:7}
worldreadbit=${perm:7:8}
worldexecbit=${perm:9:10}
if ["$user"=="$fileowner" && "$ownerreadbit"=="r" && "$ownerexecbit"=="x"]; then
echo $file
elif ["$group"=="$filegroup" && "$groupreadbit"=="r" &&" $groupexecbit"=="x"]; then
echo $file
elif ["$worldreadbit"=="r" && "$worldexecbit"=="x"]; then
echo $file
fi
done
ベストアンサー1
GNUfind
コマンドを使用しないのはなぜですか?
find /home/cg/root -readable -executable
または、ファイルのリストのみをリストしてください。
find /home/cg/root -readable -executable -type f