O exemplo na sua pergunta parece com a saída ls -l , não com a saída lsattr . Na saída ls -l , o primeiro campo é o modo , que é o tipo (regular, diretório, link simbólico ...) e permissões.
O S bit nessa posição significa setuid , mas sem permissão de execução para o usuário. Aqui, dado que nenhum usuário / grupo / outro tem permissões de execução, isso faz pouco sentido. O l significa que o bit setgid está definido mas não é executado. Para um arquivo normal, isso significa um arquivo com bloqueio obrigatório ativado.
Mais provável aqui, o arquivo foi criado com permissões erradas, como chmod 6000 em vez de chmod 600 .
Agora, o bit "sync" S ao qual você está se referindo é para a saída de lsattr .
Se você usar chattr +S file no Linux, a saída lsattr file será semelhante a:
--S----------e-- file
Para encontrar os arquivos com esse sinalizador:
Se os nomes dos arquivos não contiverem caracteres de nova linha, você poderá fazer:
find . ! -type l -exec lsattr -d {} + | sed -n 's/^[^ ]*S[^ ]* //p'
Observe que a posição de S na linha ou o comprimento da parte ------- não têm garantia de ser a mesma de uma versão de e2fsprogs para a próxima.
Se você não pode garantir que os nomes de arquivo não contenham caracteres de nova linha, você poderá fazê-lo:
(find .//. ! -type l -exec lsattr -d {} +; echo //) |
sed -ne '/\/\//!{H;d;}' -e 'x; s|^[^ ]*S[^ ]* .//.|./|p'
(o início de cada nome de arquivo será identificado por .// ).