Usuário padrão não pode acessar o diretório com propriedade e mod 777, mas o root pode

0

Eu tenho o estranho problema de um diretório ser visível e visível pelo root, mas não por usuários comuns (mesmo um sudoer). Eu corro o comando ls -alF no diretório que contém a pasta em questão, e eu tiro isso do usuário root (e por sudo ls -alF ):

...
drwxrwxrwx+   1 root root 12288 Mar 22 22:13 os/
...

Também descubro o mesmo comando executado por um usuário não raiz:

...
d?????????   ? ?    ?        ?            ? os/
...

Vou verificar as ACLs do diretório em questão usando getfacl os e recebo isso:

# file: os
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx

Este é o ponto de montagem de uma partição NTFS montada com o ntfs-3g com a seguinte entrada / etc / fstab (foi montada usando-a):

UUID=<uuid>  /os  ntfs-3g  hide_hid_files,hide_dot_files,windows_names,no_def_opts,big_writes  0  0
    
por Isiah Meadows 24.06.2014 / 02:31

1 resposta

1

Como resolvi meu problema, adicionei permissions às minhas opções, tornando minha entrada / etc / fstab assim:

UUID=<uuid>  /os  ntfs-3g  hide_hid_files,hide_dot_files,windows_names,no_def_opts,big_writes,permissions  0  0

Para aqueles de vocês que estão curiosos, aqui está o meu raciocínio. A opção permissions usa o controle de acesso padrão, enquanto a opção acl permite que as ACLs POSIX sejam configuradas (o Windows não tem idéia do que são). O primeiro é melhor porque ele não leva em conta as ACLs do Windows, o que pode levar a problemas de incompatibilidade com permissões, em comparação com os POSIX. Algumas compilações não têm a opção acl , mas pelo menos aquelas que vêm com binários do Ubuntu.

Se você deseja compatibilidade máxima com o Windows e o Linux sem muito risco de problemas, convém usar as seguintes opções:

  • permissions - permite um melhor tratamento de permissões compartilhado entre o Windows e o Linux. Ele é listado como uma opção padrão, mas é substituído por padrão por acl quando não é passado. Portanto, mantendo a compatibilidade com outras construções, é mais seguro passar isso explicitamente.
  • windows_names - garante que os nomes de arquivos / pastas estejam limitados ao que o Windows suporta nativamente. Por exemplo: o Windows não pode suportar o caractere : porque ele significa fluxos de dados nomeados e o caractere / é o uso padrão para opções de linha de comando no Windows.
  • big_writes - faz com que as gravações não precisem ser divididas em seções de 4kB, permitindo que os aplicativos gravem em uma etapa inteira. Embora não seja definido por padrão, isso é praticamente sempre melhor em termos de desempenho.

Se eu perdi alguma coisa, isso está marcado como um wiki da comunidade .

    
por 24.06.2014 / 04:46