LINUX.ORG.RU
решено ФорумMobile

Как установить пароль для root на «рутированном» устройстве?

 , ,


0

1

Здравствуйте.
Столкнулся с проблемой и перед тем как копать дальше, решил сначала спросить.
Имеется ASUS K010 TF103C с полученными root-правами.
Емулятор терминала - Terminal Emulator for Android. При попытке установить пароль для root командой passwd root, получил сообщение, что такой команды нет.
На одном очень популярном форуме по мобильным устройствам получил информацию, что якобы стандартная для Unix система безопасности в Android отсутствует (?!) и систему безопасности в Android можно строить ТОЛЬКО с помощью сторонних программ.
Эта невероятная новость вызывает сомнения, тем более, что в BusyBox, например, присутствует команда passwd (но с ним еще не разобрался).
Вопрос: действительно ли в Android невозможно установить пароль для администратора системы (root) или это ограничения конкретного эмулятора терминала?
В каком эмуляторе работают все команды?
Заранее благодарю за ответы!

или это ограничения конкретного эмулятора терминала?

Терминал - это всего лишь оболочка, из которой запускается остальной софт.

В каком эмуляторе работают все команды?

В любом. Если ты запилишь рабочий софт

Valkeru ★★★★
()

Действительно на Android все иначе. Если хочешь иметь возможность ограничивать root-доступ, то используй Superuser. Либо напиши свою замену команде su, которая будет спрашивать пароль.

Еще советую посмотреть Xposed Framework и XPrivacy. XPrivacy может ограничить выполнение shell-команд и загрузку библиотек (на самом деле не только это).

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 1)
Ответ на: комментарий от Valkeru

В любом. Если ты запилишь рабочий софт

Логично. Но почему не сработала команда passwd root? Команду давал из-под рута (после su).
По-поводу BusyBox. Я ожидал увидеть после установки оболочку с приглашением к вводу команд, но не увидел. Сейчас подумал: может он просто добавляет команды в систему, которыми можно пользоваться из любого терминала? (ерунда какая-то) (только осваиваю этот Android)

san-sanych
() автор топика
Ответ на: комментарий от Black_Roland

Еще советую посмотреть Xposed Framework и XPrivacy.

Посмотрю. Но это уже использование стороннего софта, перед которым система ничем не защищена.
То же и насчет Superuser (использую SuperSU).

san-sanych
() автор топика
Ответ на: комментарий от san-sanych

busybox это легковесная замена gnu coreutils. busybox создан специально для встраиваемых систем, где важно экономить ресурсы. Busybox это действительно просто набор команд, это не эмулятор терминала. Список доступных команд можно посмотреть в википедии.

Так же как и на большом брате (компе) эмулятор терминала это отдельная сущность и его нужно ставить отдельно. Я использую ConnectBot — вообще он для работы по SSH, но локальный терминал тоже может.

passwd не будет работать. Android не использует /etc/passwd и /etc/shadow. Совсем не использует.

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 1)
Ответ на: комментарий от Black_Roland

Либо напиши свою замену команде su, которая будет спрашивать пароль.

Насчет «написать» - это не ко мне. :)

san-sanych
() автор топика
Ответ на: комментарий от san-sanych

Посмотрю. Но это уже использование стороннего софта, перед которым система ничем не защищена.

passwd, su и sudo на компе тоже можно назвать сторонним софтом :) Твой комп от этого софта тоже ничем не защищен, их можно подменить вирусом, там могут быть закладки.

Superuser (использую SuperSU).

Если тебя беспокоит, что сторонний софт недостаточно надежен, то замени его хотя бы opensource софтом. Принято считать что открытый софт безопаснее, потому что каждый может увидеть исходники и бэкдоры не пройдут. Superuser, Xposed Framework и XPrivacy это все открытый софт. А вот SuperSU — нет.

Black_Roland ★★★★
()
Ответ на: комментарий от Black_Roland

Android не использует /etc/passwd и /etc/shadow. Совсем не использует.

Это п....ц! Просто вырвана система безопасности из системы. Интересно как они это объясняют?

san-sanych
() автор топика
Ответ на: комментарий от san-sanych

Насчет «написать» - это не ко мне. :)

Поэтому ставь Superuser :) У меня у самого Lenovo K900. Почему-то писали что Superuser глючит на x86 девайсах и собирали прошивки с SuperSU. Я рискнул — поставил Superuser, Superuser любезно предложил мне поставить свой /system/xbin/su, в SuperSU я разрешил это сделать :) Все отлично поставилось, Superuser мне даже больше нравится — он простой, красивый и удобный. Кстати потом я свою прошивку с Superuser собрал — остальные пользователи подтвердили что все работает :)

Black_Roland ★★★★
()
Ответ на: комментарий от san-sanych

Это п....ц! Просто вырвана система безопасности из системы. Интересно как они это объясняют?

У пользователя вообще не должно быть root доступа.

Но система безопасности не совсем вырвана. Каждая Android-программа запускается от имени своего пользователя (можешь в top или ps посмотреть). Даже если программа может выполнять shell-команды, то только от своего пользователя: нет доступа к другим программам и каталогам кроме своей директории в /data/app. Это если говорить про shell-команды, доступ к камере и пр. осуществляется иначе (через API) и там действуют свои ограничения.

Не знаю как сейчас, но обещали сделать поддержку SELinux, вроде даже сделали, для «системного» софта, типа dnsmasq.

Короче с безопасностью полный порядок, не беспокойся :)

А вот по поводу root это уже другой вопрос. Если ты сделал root-доступ, то это уже твои проблемы, root доступ не предусмотрен по умолчанию. Для того чтобы как-то ограничить использование root-доступа программами созданы проги типа Superuser и SuperSU.

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 4)
Ответ на: комментарий от Black_Roland

Superuser, Xposed Framework и XPrivacy

Спасибо, буду смотреть.

Android не использует /etc/passwd и /etc/shadow

Зачем в BusyBox команда passwd?

san-sanych
() автор топика

Вообще разграничение прав по пользователям мне кажется уже лет 20 как устарело. Но если еще бывают ПК и серверы, где требуется наличие нескольких пользователей, то на телефонах это бессмысленно. У телефона/планшета не может быть несколько пользователей, такие вещи принадлежат кому-то одному. Один планшет может конечно использоваться всей семьей, но разграничение прав там нафиг не нужно. Чайнику же не требуется определять круг лиц, которые могут наливать воду или включать его в розетку :)

Black_Roland ★★★★
()
Ответ на: комментарий от san-sanych

По-поводу BusyBox

Сейчас подумал: может он просто добавляет команды в систему, которыми можно пользоваться из любого терминала?

Ииии это правильный ответ!

ерунда какая-то

Нет, не ерунда.

Valkeru ★★★★
()
Ответ на: комментарий от Black_Roland

Black_Roland, спасибо за разъяснения!
Буду ковырять перечисленные выше проги.

san-sanych
() автор топика
Ответ на: комментарий от Valkeru

Ииии это правильный ответ!

Понятно :) Спасибо, буду ковырять. Что-то зачастило слово «ковырять» :)

san-sanych
() автор топика
Ответ на: комментарий от san-sanych

Зачем в BusyBox команда passwd?

Busybox создавался не для Android, Android тогда еще не было. Например Busybox ставят на роутеры, там разграничение прав вполне традиционное: с /etc/passwd и прочими атрибутами. Busybox ставится в initramfs — маленький linux, используемый для инициализации всего что не может загрузить GRUB.

Busybox можно собрать с любым набором утилит. Хочешь включай passwd, а хочешь не включай. Тот кто собирал твой Busybox для Android очень ленив и просто собрал все что было. Просто passwd не будет работать.

Black_Roland ★★★★
()

Кстати у меня passwd пишет applet not found :)

Я как-то собирал dropbear себе на телефон. Это SSH-сервер. Так вот он нормально не собирается без патчей, отключающих проверку пользователей и паролей. Это была какая-то новая версия Dopbear и я вообще отключил авторизацию по паролям (оставил только ключи), указал всегда использовать root и /system/xbin/sh. Dropbear не может узнать какие в системе есть пользователи, какие у них пароли и какие терминалы, т.к. нет /etc/passwd и /etc/shadow. Dropbear еще использует какие-то системные вызовы, которые тоже приходится выпиливать, т.к. традиционных пользователей тоже нет.

Black_Roland ★★★★
()
Ответ на: комментарий от Black_Roland

Busybox создавался не для Android

Я так и подумал.

Блог завести что ли :)

Почему бы и нет. Работы прибавится.
Еще раз спасибо, Black_Roland и Valkeru.
Информации получил даже больше, чем рассчитывал.

san-sanych
() автор топика
Ответ на: комментарий от mopsa

Можно посмотреть прошивку?

На предмет..? Вроде вопрос исчерпан? Или нет?

san-sanych
() автор топика
Ответ на: комментарий от mopsa

Вот эта вроде:

K900_ROW_1_S_2_009_0131 - system.img.gz - автор Black_Roland , в прошивку добавлен только ROOT. Установка: Обновление раздела /system/. Самый простой способ установить ROOT.

Точно не помню уже, вроде я потом еще себе собирал новую версию. Посмотри еще тут мои прошивки: https://yadi.sk/d/L1mRZKjwca9KV Но они все старые, я расстроился, что обновлений больше не будет, и забил на это все :(

Если есть root (SuperSU например), то поставь F-droid, через него поставь Superuser, запусти его и он сам предложит себя поставить. Нужно только в SuperSU последний раз подтведить root-доступ и после перезагрузки у тебя будет Superuser :) Только перед этим скопируй /system/xbin/su в /system/xbin/su2 какой-нибудь, чтобы root не потерять.

Кстати, какую сам прошивку используешь? Хочу обновиться, но не знаю что поставить. Не люблю я кривые прошивки, собранные не понятно кем, потому свою чистую и собирал. Недавно «рекавери» ставил, так в итоге ничего не заработало, так еще и телефон через час зависал, и dropbear перестал запускаться. Ну хоть выпилил легко, быстро нашел: потому что этот рекавери запускается так же как у меня dropbear запускался :)

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 1)

Годный параноик, наш. Это, осторожнее ходи, везде смотрят, мы с тобой брат! Они еще слушают! :)

everest2014
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.