Inicializado a partir do NFS Linux não tem permissão para o comando su

Inicializado a partir do NFS Linux não tem permissão para o comando su

Inicializei o Linux NFScom o sistema Android. E agora tenho que executar o comando como super uso no minicom. Mas o sistema não me permite mudar para o modo superusuário. Toda vez que digito:

shell@blaze_tablet:/ $ su   

Eu vejo:

su: permission denied

Há um parâmetro que bootargsadicionei no u-boot androidboot.selinux=disabledque achei que ajudaria. Mas isso não acontece. O problema pode estar na permissão para alguns arquivos NFS? Ou perdi algum parâmetro em bootargs?

Atualizar

O conteúdo do meu /etc/exportsarquivo

# /etc/exports: the access control list for filesystems which may be exported
#       to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
/export/rfs    *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

Responder1

Você escreveu:

resultado da execução dels -l $(type -p su)

-rwxr-xr-x root root 157400 2016-04-21 19:11 su

Aí está o seu problema. suestá faltando o bit raiz setuid. As permissões devem ficar assim:

-rwsr-xr-x 1 root root 40040 Nov 12  2015 /bin/su

Existem três possibilidades para esta situação.

  1. O suexecutável no servidor não é setuid (verifique no ls -l $(type -p su)servidor)
  2. A montagem NFS no cliente não inclui - ou exclui explicitamente - o bit setuid. Certifique-se de não ter nosuidseu mountcomando e, em caso de dúvida, adicione suidcomo uma opção explícita
  3. A segurança do Android é implementada de forma completamente diferente da segurança do Unix/Linux. Se for esse o caso, não posso ajudá-lo mais

Responder2

Normalmente isso acontece se o compartilhamento NFS não for exportado corretamente.

Por padrão, o rootusuário é mapeado para nobody. Isso significa que quando você tentar executar su(que é suid root), você tentará acessar os arquivos no servidor NFS como usuário nobody... e isso não permitirá que você leia /etc/shadowe similares.

Você não disse qual é o seu servidor NFS, mas se for o Linux normal, você precisará adicionar no_root_squashà exportação.

por exemplo

/directory client(rw,no_root_squash,async,insecure)

Agora o rootusuário acessará os arquivos como se fosse uid 0, podendo assim ler os arquivos protegidos.

informação relacionada