Qual é o significado dos nomes das máscaras de modo de stat (2) e chmod (2)?

4

As chamadas stat têm uma série de nomes simbólicos para os vários bits em o campo de modo. Na página de manual stat (2) :

The following mask values are defined for the file mode component of
the st_mode field:

    S_ISUID     04000   set-user-ID bit
    S_ISGID     02000   set-group-ID bit (see below)
    S_ISVTX     01000   sticky bit (see below)

    S_IRWXU     00700   owner has read, write, and execute permission
    S_IRUSR     00400   owner has read permission
    S_IWUSR     00200   owner has write permission
    S_IXUSR     00100   owner has execute permission

    S_IRWXG     00070   group has read, write, and execute permission
    S_IRGRP     00040   group has read permission
    S_IWGRP     00020   group has write permission
    S_IXGRP     00010   group has execute permission

    S_IRWXO     00007   others (not in group) have read,  write,  and
                        execute permission
    S_IROTH     00004   others have read permission
    S_IWOTH     00002   others have write permission
    S_IXOTH     00001   others have execute permission

Eu posso ver que S_IRWXU é uma combinação de rwx e u (leitura, gravação e eXecute permissões para o usuário) e que S_IRUSR é combinado de R e usr (permissão de leitura para a USeR). Da mesma forma para escrever e eXecute, e para GRouP e OTHers.

A parte S provavelmente tem o nome da função stat .

Mas e a parte I , o que isso significa? É modelado após o várias macros S_ISDIR ("é um diretório")?

Qual é a parte VTX de S_ISVTX ? Eu não posso relacionar esta abreviatura para "sticky bit".

    
por Lekensteyn 21.08.2015 / 20:00

1 resposta

5

É hora da história, crianças! Stevens, "APUE", capítulo 4, seção 10 cita assim:

"O bit S_ISVTX tem um histórico interessante ... se ele foi definido ... uma cópia do texto do programa foi salva na área de troca ... isso fez com que o programa carregasse na memória mais rapidamente da próxima vez. versões posteriores do Unix se referiam a isso como o bit salvo-texto , daí a constante S_ISVTX. "

    
por 21.08.2015 / 20:05