5

私がやっていること:

  • 電話でネイティブに使用するために GNU emacs を作成しました。
  • 私は電話で emacs をデーモン モードで実行しているので、いつでも emacsclient に接続して、通常のファイルの操作やプロセスの実行などを続けています。
  • 電話の端末からログインすると、現在ユーザーは 10157 で、すべてが機能します。

    $ ID

    uid=10157(10157) gid=10157(10157) グループ=10157(10157),1015(1015),1023(1023),1028(1028),3003(3003)

  • PC から電話に ssh 経由で接続すると (電話で DigiSSHd を使用します)、通常のユーザー 10282 としてログインし、すべてが機能します。

    $ ID

    uid=10282 gid=10282 グループ=1015(1015),1023(1023),1028(1028),3003(3003)

Emacs は正常に動作します。ただし、この方法では、emacsclient を介してユーザー 10157 で実行されている emacs プロセスに接続できません。ユーザー10157の下でemacsを開きました。

したがって: $ su - 10157

わかりました。emacs などは実行できますが、Web にはアクセスできません。

$ ping -c1 google.com
You must have internet permissions to use ping.  Aborting.
$ id

uid=10157(10157) gid=10157(10157) groups=10157(10157)

したがって、私は他のグループに加えて、インターネット アクセスに必要なグループ 3003 にも属していません。

このグループ情報が削除されるのはなぜですか? また、これを修正するにはどうすればよいですか?

4

4 に答える 4

0

アクセス許可は、 経由で継承できる環境変数ではありませんsu -

さらに、gid はハードコードされており、インストール後に各 APP uid との関連付けを変更することはできません。

10157はDigiSSHdアプリケーションの uid である必要があるため、 AndroidManifest.xmlを変更して適切な権限を必要とするように変更した後、再構築を試みることができます。

ここここ で役立つものを見つけることができます。

同じことがBusyBoxでも機能するはずです(こちらを参照)。

ただし、そのようなアプリケーションを介して NETWORK アクセスを有効にすると、セキュリティ ホールが開く可能性があります。

于 2013-04-09T16:04:38.730 に答える
0

これはあまりにも明白に思えるので、おそらくここで何かが欠けていますが、あなたのemacsプログラムを「sudo -u 10157」にしてみませんか?

それでもネットにアクセスでき、emacs は動作します。または私は何か重要なことを逃しましたか?

于 2013-04-05T09:31:19.957 に答える