A maioria das pessoas não sabe, mas as permissões do Unix não são apenas User, Group e Others (rwx). Essas três tríades são as permissões típicas que permitem que usuários, grupos e outros usuários acessem arquivos & diretórios. No entanto, há também um grupo de bits que precede os bits do usuário. Esses bits são chamados de "Modos Especiais".
É mais uma notação abreviada que você não precisa defini-las explicitamente ao lidar com uma ferramenta como chmod
.
$ chmod 644
Na verdade, é equivalente a:
$ chmod 0644
Aqui está a lista de bits:
trecho do artigo da Wikipédia intitulado: chmod
Flag Octal value Purpose
---- ----------- -------
S_ISUID 04000 Set user ID on execution
S_ISGID 02000 Set group ID on execution
S_ISVTX 01000 Sticky bit
S_IRUSR, S_IREAD 00400 Read by owner
S_IWUSR, S_IWRITE 00200 Write by owner
S_IXUSR, S_IEXEC 00100 Execute/search by owner
S_IRGRP 00040 Read by group
S_IWGRP 00020 Write by group
S_IXGRP 00010 Execute/search by group
S_IROTH 00004 Read by others
S_IWOTH 00002 Write by others
S_IXOTH 00001 Execute/search by others
Sua pergunta
Então, em seu primeiro comando, você está procurando por u+s
, o que seria um pouco 04000
. Quando você usa a notação numérica, está solicitando os bits 04000
AND 02000
. Isso lhe daria arquivos com o conjunto de bits setuid ou user.
Leitura Adicional
Eu sugiro que qualquer um que queira entender melhor as permissões no Unix, leia a página da Wikipedia sobre chmod
. Ele quebra de forma muito simples e é uma excelente referência quando você esquece.