O usuário do iMac não pode acessar os diretórios iniciais montados pelo NFS com o sudo

1

Acabei de reinstalar o meu iMac na minha rede doméstica e montei os diretórios pessoais do usuário por meio de um compartilhamento NFS (hospedado em um servidor Ubuntu).

O problema que tenho é que quando eu uso o sudo, recebo permissão negada para o meu próprio diretório pessoal.

Meu UID é 501 e posso usar o sudo em virtude de eu ser um membro do grupo de administradores (GID 80).

No servidor Ubuntu, configurei meu diretório home da seguinte forma:

Ubuntu# ls -ln | grep bryan
drwxrwx--- 35 501 80 4096 2012-01-27 14:09 bryan

Que traduz corretamente no mac:

iMac$ ls -l | grep bryan
drwxrwx---  35 bryan    admin   4.0K 27 Jan 14:09 bryan/

Como root também é membro do admin (GID 80), eu esperava que o sudo permitisse acesso ao meu diretório home, mas como você pode ver abaixo, este não é o caso.

iMac$ whoami
bryan
iMac$ sudo bash
bash: /Volumes/home/bryan/.bashrc: Permission denied
iMac# whoami
root
iMac# cd /Volumes/home/bryan/
bash: cd: /Volumes/home/bryan/: Permission denied

Apenas para confirmar, a seguir, a parte relevante da saída de dscacheutil -q group no meu iMac:

name: admin
password: *
gid: 80
users: root bryan 

O que posso fazer para ativar o acesso ao meu diretório pessoal no iMac ao usar o sudo?

    
por Bryan 28.01.2012 / 12:43

1 resposta

2

Quando você usa sudo , está migrando para o usuário root (uid 0) - você perde seu brian UID e o grupo admin . ( sudo id mostrará os valores exatos.)

Como as versões anteriores do NFS (v3 e anteriores) executavam todas as verificações de segurança somente no lado do cliente, há uma proteção incorporada para proteger clientes desonestos - quando o cliente diz que seu UID é 0, você não recebe permissões de root - em vez disso, o servidor NFS vê você como o usuário nobody .

Para desativar essa proteção, edite o /etc/exports do servidor para ter a opção no_root_squash , execute novamente o exportfs -ra e remonte o compartilhamento em todos os clientes.

Ao testar as permissões do NFS, é útil ter um diretório gravável pelo mundo no seu compartilhamento. Por exemplo, no Ubuntu, sudo mkdir /home/temp; sudo chmod a+rwx /home/temp . Em seguida, no OS X, você pode executar sudo touch /Volumes/home/temp/testfile e ver instantaneamente qual proprietário o arquivo recém-criado possui.

    
por 28.01.2012 / 13:17