NFS
AndroidシステムからLinuxを起動しました。今に入る必要がありますminicom
。ただし、システムからスーパーユーザーモードに切り替えることはできません。私が入力するたびに:
shell@blaze_tablet:/ $ su
わかります:
su: permission denied
bootargs
androidboot.selinux=disabled
役に立つと思われるパラメータをu-bootに追加しました。しかしそれは真実ではない。一部のファイルに対する権限に問題がある可能性がありますか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 ルートビットがありません。権限は次のとおりです。
-rwsr-xr-x 1 root root 40040 Nov 12 2015 /bin/su
この状況には3つの可能性があります。
- サーバーの実行可能ファイルが
su
setuidではありません(ls -l $(type -p su)
サーバーで確認)。 - クライアントの NFS マウントには setuid ビットが含まれるか、明示的に除外されません。
nosuid
コマンドがないことを確認してください。疑わしい場合は、明示的なオプションとしてmount
追加してください。suid
- AndroidセキュリティはUnix / Linuxセキュリティとはまったく異なる方法で実装されています。このような場合は、もはや助けることができません。
答え2
通常、これはNFS共有が正しくエクスポートされていない場合に発生します。
デフォルトでは、ユーザーはroot
にマップされますnobody
。つまり、実行しようとするとsu
( suid ルートなど)、NFSサーバー上のファイルにユーザーとしてアクセスしようとしますnobody
。/etc/shadow
NFSサーバーが何であるかは明らかではありませんが、通常のLinuxサーバーの場合は、エクスポートにno_root_squash
追加する必要があります。
例えば
/directory client(rw,no_root_squash,async,insecure)
これでroot
、ユーザーはuid 0でファイルにアクセスできるため、保護されたファイルを読み取ることができます。