FAT Mountoption allow_utime explicou

2

Eu estou tentando descobrir o que o seguinte Mountoption para (v) o FAT faz exatamente (no Linux):

allow_utime=### -- This option controls the permission check of mtime/atime.

              20 - If current process is in group of file's group ID,
                   you can change timestamp.
               2 - Other users can change timestamp.

             The default is set from 'dmask' option. (If the directory is
             writable, utime(2) is also allowed. I.e. ~dmask & 022)

             Normally utime(2) checks current process is owner of
             the file, or it has CAP_FOWNER capability.  But FAT
             filesystem doesn't have uid/gid on disk, so normal
             check is too unflexible. With this option you can
             relax it.

[source]

Pergunta : O que isso (acima) significa?

Tentando investigar, eu acabei com o código C que não me ajuda muito, então nem isso nem man 2 utime (como mencionado) me ajuda muito no momento. Eu adoraria usar a fonte

De utime : A chamada de sistema utime () altera os tempos de acesso e modificação do inode especificado por nome de arquivo para os campos de tempo actime e modtime , respectivamente.

Eu li isso como: Ativar para alterar os carimbos de data e hora. Kudos Super Extra para você que pode dar um exemplo real de como usar este Mountoption ( allow_utim )

    
por erch 25.09.2014 / 18:51

1 resposta

2

Em um sistema de arquivos que suporta atributos de arquivos normais do Unix, cada arquivo tem um usuário designado como proprietário. Somente o proprietário de um arquivo pode alterar seus timestamps com utime . Outros usuários não podem alterar os timestamps, mesmo que tenham permissão de gravação.

Sistemas de arquivos FAT não registram nada como um dono. O driver do sistema de arquivos FAT finge que um usuário em particular é o proprietário de cada arquivo: o usuário que está fazendo a montagem ou o usuário fornecido pelo parâmetro uid . Usando as regras normais, somente esse usuário pode alterar os timestamps. Os arquivos também têm um grupo proprietário, determinado pelo parâmetro gid .

O sistema de arquivos FAT não registra as permissões do arquivo Unix, então o driver as cria. Ele atribui permissões com base nos parâmetros umask , fmask e dmask , portanto, todos os diretórios e todos os arquivos regulares têm as mesmas permissões.

Quando outros usuários que não o proprietário tiverem acesso de gravação ao sistema de arquivos, faria sentido que eles tivessem permissão não apenas para modificar arquivos e diretórios regulares, mas também metadados de arquivos. Os principais metadados de interesse em um sistema de arquivos FAT são os registros de data e hora nos arquivos. Normalmente, apenas o usuário proprietário pode modificar registros de data e hora. Ao passar a opção allow_utime mount, você pode permitir que outros usuários alterem os timestamps também. Por exemplo, para permitir que o grupo foo modifique qualquer coisa no sistema de arquivos e permita que outras pessoas leiam, mas não escrevam, você passaria os parâmetros

gid=foo,umask=002,allow_utime=20

(este é realmente o valor padrão para allow_utime baseado no umask).

    
por 26.09.2014 / 02:55