Quais são os 3 bits finais nos bits do modo de permissão do UNIX?

3

Eu entendo que existem 12 bits de permissão, dos quais existem 3 grupos de 3 bits para cada usuário, grupo e outros, que são RWX respectivamente. RW são lidos e gravados, mas para X é search para diretórios e execute para arquivos.

Aqui está o que eu não entendo:

  1. Quais são os 3 bits de modo restantes e são todos armazenados no inode?

  2. Eu sei que o próprio diretório de arquivos é considerado um arquivo, já que todas as coisas no UNIX são arquivos (isso é verdade?), mas como os sistemas UNIX usam o ACL para representar o sistema de arquivos, o sistema de arquivos é uma lista de pares filename-inode_number. Onde um diretório de arquivos armazena seu próprio número de inode e nome de arquivo?

por winnie99 01.06.2018 / 16:44

2 respostas

4

stat /bin/su é exibido em um sistema:

Access: (4755/-rwsr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

Existe a representação octal 4755 de todos os 12 bits de modo. O número corresponde aos bits:

octal    4   7   5   5
bits   100 111 101 101
       sst uuu ggg ooo
       ug  rwx rwx rwx

Em que uuu , ggg e ooo são os bits de permissão para o usuário, grupo e outros. O grupo restante (o primeiro em ordem) contém os bits setuid ( su ), setgid ( sg ) e sticky ( t ).

Os bits setuid e sticky geralmente não são mencionados, já que são zero para a maioria dos arquivos. Eles ainda estão lá para cada arquivo, salvos junto com os outros.

Se realmente chegarmos a isso, alguns sistemas de arquivos e interfaces armazenam o arquivo tipo ao longo dos bits de modo, nos bits ainda mais altos. O acima representa apenas 12 bits, portanto, com um campo de 16 bits, restam 4 sobrescritos. Veja, por exemplo, a descrição de st_mode in stat(2) .

    
por 01.06.2018 / 17:45
2
  1. Os três bits restantes representam os bits setuid, setgid e sticky; consulte Noções básicas sobre permissões e tipos de arquivo do UNIX para obter detalhes. Estes são todos armazenados no inode.

  2. Um diretório é de fato um tipo de arquivo que armazena uma lista de nomes e inodes correspondentes. O nome e o inode de um diretório são armazenados em seu diretório pai. o diretório raiz é um caso especial, normalmente é um inode fixo no sistema de arquivos ( inode 2 no Ext4 ) e, é claro, sempre chamado / (que acaba sendo relativo ao ponto de montagem ...).

por 01.06.2018 / 17:28