Os modos de arquivo cobrem duas noções diferentes: tipos de arquivo e permissões de arquivo. O modo de um arquivo é representado pelo valor de st_mode
no resultado de stat(2)
chamadas e ls -l
apresenta todas elas juntas; consulte Noções básicas sobre permissões e tipos de arquivo UNIX para obter detalhes.
Quando um arquivo é criado, seu tipo não pode ser alterado. Além disso, nos sistemas Linux, você não pode especificar as permissões de um link simbólico; tudo o que importa é a permissão do alvo (e efetivamente o modo completo, já que isso também determina o comportamento do symlink). Veja link para detalhes. Em links simbólicos do Mac OS X podem ter suas próprias permissões.
Por fim, git
usa um modelo simplificado, com um número limitado de modos reconhecidos:
-
040000
para um diretório -
100644
para um arquivo normal -
100755
para um arquivo executável -
120000
para um link simbólico
Você pode ver esses valores usando comandos como git cat-file -p 'master^{tree}'
; veja Pro Git para detalhes.