Загруженный с NFS Linux не имеет разрешения на команду su

Загруженный с NFS Linux не имеет разрешения на команду su

Я загрузил Linux NFSс Android system. И теперь мне нужно выполнить команду как super use в minicom. Но система не позволяет мне перейти в режим суперпользователя. Каждый раз, когда я набираю:

shell@blaze_tablet:/ $ su   

Я понимаю:

su: permission denied

Есть параметр, который bootargsя добавил в u-boot androidboot.selinux=disabled, который, как я думал, поможет. Но он не помогает. Может ли проблема быть в разрешении на некоторые файлы на NFS? Или я пропустил какой-то параметр в bootargs?

Обновлять

Содержание моего /etc/exportsфайла

# /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)

решение1

Вы написали:

результат исполненияls -l $(type -p su)

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

Вот в чем проблема. suотсутствует бит setuid root. Права доступа должны выглядеть так:

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

В этой ситуации возможны три варианта.

  1. Исполняемый файл suна сервере не имеет setuid (проверьте на ls -l $(type -p su)сервере)
  2. nosuidNFS-монтирование на клиенте не включает - или явно исключает - бит setuid. Убедитесь, что в вашей команде нет mount, и если сомневаетесь, добавьте suidкак явную опцию
  3. Безопасность Android реализована совершенно иначе, чем безопасность Unix/Linux. Если это так, то я не могу вам помочь дальше

решение2

Обычно это происходит, если общий ресурс NFS экспортирован неправильно.

По умолчанию rootпользователь сопоставлен с nobody. Это означает, что когда вы попытаетесь запустить su(что является suid root), то вы попытаетесь получить доступ к файлам на сервере NFS как пользователь nobody... и это не позволит вам читать /etc/shadowи т. п.

Вы не указали, какой у вас NFS-сервер, но если это обычный Linux-сервер, то вам нужно добавить его no_root_squashв экспорт.

например

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

Теперь rootпользователь будет иметь доступ к файлам, как если бы его идентификатор был равен 0, и, таким образом, сможет читать защищенные файлы.

Связанный контент