Файлы System/bin Android 12. Справочник.


  Все     Команда     Скрипт     Служба     Приложение  

run-as
Запустить команду от имени пользователя

Тип файла: команда
  Рус  
usage:  run-as <package-name> [--user <uid>] <command> [<args>]

The purpose of this program is to run a command as a specific  application user-id.

 Typical usage is:
   run-as <package-name> <command> <args>

  The 'run-as' binary is setuid, but will check the following:

  • - that it is invoked from the 'shell' or 'root' user (abort otherwise)

  • - that '<package-name>' is the name of an installed and debuggable package

  • - that the package's data directory is well-formed (see package.c) If so, it will cd to the package's data directory, drop to the application's user id / group id then run the command there. This can be useful for a number of different things on production devices:

  • - Allow application developers to look at their own applicative data during development.

  • - Run the 'gdbserver' binary executable to allow native debugging
  •    

    Комментарии
    Эта программа работает как root с правами set-uid на рабочих устройствах Android.

    Будьте очень осторожны при его изменении, чтобы избежать серьезных проблем с безопасностью. Имейте в виду следующее:
    - Эта программа должна работать только для пользователей «root» или «shell».
    - Избегайте чего-либо более сложного, чем простые системные вызовы, пока uid/gid не будет сброшен до обычного пользователя или пока вы не выйдете.
    Это позволяет избежать зависимости от переменных среды, свойств системы и других внешних факторов, которые могут непредсказуемым образом повлиять на библиотеку C.
    - По возможности не доверяйте пользовательскому вводу и/или файловой системе.


    Цель этой программы — запустить команду от имени пользователя определенного приложения. Типичное использование:

    run-as <имя-пакета> <команда> <аргументы>

    Двоичный файл run-as имеет setuid, но будет проверять следующее:

    - что он вызывается от пользователя «shell» или «root» (в противном случае прервать)
    - что '<package-name>' - это имя установленного и отлаживаемого пакета
    - что каталог данных пакета правильно сформирован (см. package.c)

    Если это так, он перейдет в каталог данных пакета, перейдет в каталог приложения.
    идентификатор пользователя / идентификатор группы, затем запустите команду там.

    Это может быть полезно для ряда различных вещей на производственных устройствах:

    - Разрешить разработчикам приложений просматривать свои собственные аппликационные данные во время разработки.

    - Запустите двоичный исполняемый файл gdbserver, чтобы разрешить встроенную отладку.