Não sei se entendi o que você quer, mas, com base no meu melhor palpite,
find (starting_directory) -type f -perm -755 ! -perm 755 ! -perm /6000
parece fazer isso. -perm /mode
significa
"Qualquer um dos bits de permissão modo está definido para o arquivo."
Portanto, -perm /6000
deve corresponder apenas aos arquivos que são SUID ou SGID (ou ambos),
e ! -perm /6000
deve excluir esses arquivos.
BTW, suponho que -type -f
na sua pergunta seja um erro de digitação,
desde que você acertou ( -type f
, sem o segundo -
)
no seu segundo exemplo.
P.S. Ainda não faz o que você quer,
mas você pode ter o seu segundo exemplo para fazer alguma coisa
(ou seja, liste alguns arquivos e não diga paths must precede expression
)
simplesmente mudando para
find . -type f \( -perm -2755 ! -perm 2755 -o -perm -4755 ! -perm 4755 \)
isto é, separe os \(
e \)
dos argumentos adjacentes (com espaços).