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

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

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 de leitura e gravação, mas para X é searchpara diretórios e executearquivos.

Aqui está o que eu não entendo:

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

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

Responder1

stat /bin/sumostra em um sistema:

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

Existe a representação octal 4755de 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

Onde uuu, ggge ooosã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, pois são zero para a maioria dos arquivos. Eles ainda estão lá para todos os arquivos, salvos junto com os outros.


Se realmente formos direto ao assunto, alguns sistemas de arquivos e interfaces armazenam o arquivotipoao longo dos bits de modo, nos bits ainda mais altos. O acima representa apenas 12 bits, portanto, com um campo de 16 bits, sobraram 4. Veja, por exemplo, odescrição de st_modeemstat(2).

Responder2

  1. Os três bits restantes representam os bits setuid, setgid e sticky; verNoções básicas sobre permissões e tipos de arquivo UNIXpara detalhes. Tudo isso é armazenado no inode.

  2. Um diretório é na verdade um tipo de arquivo que armazena uma lista de nomes e inodes correspondentes. O próprio nome e 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 em Ext4) e é claro que é sempre nomeado /(o que acaba sendo relativo ao seu ponto de montagem...).

informação relacionada