Você pode fazer isso evitando curingas em sudoers
(mas obtendo uma condição de corrida em vez disso, o que parece não ser um problema aqui), colocando os padrões em um arquivo:
grep -r -f /path/to/file/with/patterns /path/to/restricted-dir
Isso pode ser colocado em sudoers
.
Outra solução é um script de wrapper (que é colocado em sudoers
):
sudo /wrapper/script pattern1 pattern2
O script funcionaria assim:
#! /bin/bash
test $# -eq 0 && exit 0 # no arguments
index=0
pattern_args=()
while [ $# -gt 0 ]; do
pattern_args[index]="-e"
((index++))
pattern_args[index]="$1"
((index++))
shift
done
grep -r "${pattern_args[@]}" /path/to/restricted-dir