O NFSv2 / 3 lida com permissões exclusivamente com base no UID e no GID. As permissões de arquivo no servidor são comparadas com os IDs de usuário e grupo no cliente. É por isso que o NFSv & lt; 4 é, por design, inseguro em ambientes em que os usuários têm acesso root às máquinas clientes; A falsificação de UID é trivial nesse caso.
Observe que o NFSv4 oferece autenticação de cliente e usuário via Kerberos5. Se a autenticação com nome de usuário e senha for necessária, é muito mais fácil recorrer ao Samba (SMB / CIFS), em vez de configurar um Kerberos, mesmo em ambientes Linux puros.
Para evitar pelo menos o escalonamento de privilégios de root, os compartilhamentos NFS são exportados por padrão com a opção root_squash
, que mapeará toda solicitação de cliente proveniente de root (uid=0, gid=0)
to anonuid
e anongid
. Esse comportamento pode ser substituído com no_root_squash
, concedendo acesso raiz à exportação.
Aqui, vemos outra desvantagem. Para funcionar corretamente, o NFS basicamente exige que você tenha o mesmo UID / GID em todas as máquinas. Os arquivos que você deseja acessar pertencem a 1026
e têm permissões 755. Seu usuário no cliente tem uid=1000
. Os GIDs não coincidem, então você só tem permissões mundiais. Portanto, não há acesso de gravação.
Para resolver isso, você pode fazer várias coisas:
-
No NAS, altere o proprietário dos arquivos para
1000
. Você talvez precise criar essa conta específica. Como isso afetará outros serviços, não sei dizer. -
Altere o UID do seu usuário local para
1026
. -
Como você é o único que acessa os arquivos no servidor, pode fazer com que o servidor finja que todas as solicitações vêm do UID adequado. Para isso, o NFS tem a opção
all_squash
. Ele informa ao servidor para mapear todas as solicitações para o usuário anônimo, especificado poranonuid,anongid
.Adicione as opções
all_squash,anonuid=1026,anongid=100
à exportação em/etc/exports
.
Seja cauteloso , pois isso fará com que qualquer pessoa monte a exportação efetivamente do proprietário desses arquivos!
Se você compartilha sua rede com pessoas e seus clientes nos quais você não confia totalmente para não causar danos em seus arquivos, você deve procurar um método de compartilhamento de arquivos que ofereça autenticação. Na minha opinião, o Samba é a maneira mais fácil de conseguir isso.