O que faz o número após as permissões de arquivos do Unix / Linux como “-rw-rw-r--. 1 ”significa na saída“ ls -l ”

9

Algum pode explicar -rw-rw-r--. 1 e fornecer algumas informações "detalhadas" no comando ls -lart.

Especificamente, o que significa o número 1 após as permissões de arquivo?  Por que isso muda ou porque é diferente para arquivos diferentes?

    
por VAR121 21.09.2012 / 11:56

2 respostas

12

Alguns exemplos:

-rwxrw-r-- 1 é um arquivo com privilégios de leitura, gravação e execução para o proprietário. O grupo leu e escreveu e outros apenas leram. Não há links para esses dados.

drwxr-xr-x 10 é um diretório com 8 arquivos. Os 2 extras são . e .. . Somente o proprietário pode criar arquivos nesse diretório, outros podem acessar quais arquivos estão no diretório e ler o conteúdo desses arquivos, se os privilégios permitirem.

-r-------- 2 é um arquivo que somente o proprietário pode ler, mas não pode executar ou modificar. Ele tem um link, o que significa que há outra referência de arquivo no disco em algum lugar que acessa os mesmos dados. Portanto, o "conteúdo do arquivo" real no disco tem 2 "arquivos" referenciando-o. Esses links geralmente são criados usando ln sem fornecer -s .

Então:

  • O caractere 1 é o tipo de nó: geralmente - ou d indicando o arquivo ou diretório.
  • Os caracteres 2, 3, 4 indicam r ead, w rite e e x ecute para o proprietário.
  • Os caracteres 5, 6, 7 fazem o mesmo para o grupo.
  • Os caracteres 8, 9, 10 fazem o mesmo para os outros.
  • O número de caracteres de permissão subsequentes indica o número de links, se o nó for um arquivo, e o número de "sub-nós", se o nó for um diretório.

Veja o capítulo O formato longo de man ls .

    
por 21.09.2012 / 12:05
1

[max @ localhost ~] $ ll

total 4

drwxrwxr-x 2 max max 4096 25 de setembro 17:11 zzz

Aqui 2 significa o número de contagens de links

agora vou criar 3 diretórios dentro do zzz

agora o valor muda para 5

[max@localhost ~]$ cd zzz
[max@localhost zzz]$ mkdir a b c
drwxrwxr-x 5 max max 4096 Sep 25 17:16 .
drwx------ 5 max max 4096 Sep 25 17:12 ..
drwxrwxr-x 2 max max 4096 Sep 25 17:16 a
drwxrwxr-x 2 max max 4096 Sep 25 17:16 b
drwxrwxr-x 2 max max 4096 Sep 25 17:16 c

[max @ localhost zzz] $ cd

[max @ localhost ~] $ ll

total 4

drwxrwxr-x 5 max max 4096 25 de setembro 17:16 zzz

Isso porque agora existem 5 diretórios dentro do zzz 3 são a b c e 2 são diretórios ocultos . ..

se eu criar um arquivo, nada acontecerá para vincular a contagem

[max@localhost zzz]$ touch 1 2 3
[max@localhost zzz]$ ls -al
total 20
drwxrwxr-x 5 max max 4096 Sep 25 17:26 .   ------> current directory link count
drwx------ 5 max max 4096 Sep 25 17:12 ..  ------> parent directory link count
-rw-rw-r-- 1 max max    0 Sep 25 17:26 1
-rw-rw-r-- 1 max max    0 Sep 25 17:26 2
-rw-rw-r-- 1 max max    0 Sep 25 17:26 3
drwxrwxr-x 2 max max 4096 Sep 25 17:16 a
drwxrwxr-x 2 max max 4096 Sep 25 17:16 b
drwxrwxr-x 2 max max 4096 Sep 25 17:16 c
[max@localhost zzz]$ cd
[max@localhost ~]$ ll
total 4
drwxrwxr-x 5 max max 4096 Sep 25 17:26 zzz

mas se eu excluir qualquer diretório, a contagem de links mudará

[max@localhost zzz]$ rmdir b c
[max@localhost zzz]$ cd
[max@localhost ~]$ ll
total 4
drwxrwxr-x 3 max max 4096 Sep 25 17:28 zzz
    
por 25.09.2012 / 14:10