2016-07-03 4 views
5

Я устанавливаю Unity. Установщик Unity говорит, что он должен быть запущен как root, и это потому, что Chromium Embedded Framework должен запускаться как root. Почему Xromium Embedded Framework работает от имени root?Почему Xromium Embedded Framework работает от имени root? (Unity Installer)

Установщик Unity указывает мне here, но эта страница не упоминает права root.

Вот вывод на консоль, для потомков:

[email protected]:unity(0)\ ./unity-editor-installer-5.4.0b23+20160628.sh 
This installer must be run as root. 

И соответствующий фрагмент кода из программы установки:

# chrome-sandbox requires this: https://code.google.com/p/chromium/wiki/LinuxSUIDSandbox 
chown root "${EXTRACT_SUBDIR}/Editor/chrome-sandbox" 
chmod 4755 "${EXTRACT_SUBDIR}/Editor/chrome-sandbox" 

EDIT 15 июля: Найдено this thread. Может ли кто-нибудь помочь подтвердить, что корневое владение и SUID больше не нужны для хром-песочницы?

Я строю согласно these instructions, но я все еще спрашиваю пароль root, когда я запускаю cros_sdk.

ответ

0

Chromium Embedded Framework не должен запускаться как root. Корневые разрешения необходимы только для установки разрешений/chmod на исполняемый файл chrome-sandbox. Установщики в Linux обычно требуют прав root, в этом нет ничего странного.

+0

Большинство приложений могут быть скомпилированы и работать в качестве обычного пользователя. Установщик Unity просто извлекает Unity в подкаталог. Почему хром-песочница должна принадлежать root и имеет набор SUID? – jcarpenter2

2

Чтобы убедиться, что все используют ту же самую точную среду и инструменты для сборки с помощью Chromium, все здание выполняется внутри chroot. Это корневой является его собственным маленьким миром: он содержит свой собственный компилятор, свои инструменты (свою собственную копию Баша, свою собственную копию Судо) и т.д.

Он использует chroot, prctl и некоторые другие системные вызовы, которые могут вернуть EPERM error если процесс имеет недостаточные привилегии.

EPERM error

Поэтому установщик хочет запустить Баш скрипт, который запускается в качестве корня для установки SUID на песочнице. Они хотят, чтобы вы были как root, потому что он дал владельцу permissions владельца файла, а также владельцу UID (идентификатор пользователя) и GID (идентификатор группы). Как правило, в Unix/Linux при запуске программы она наследует права доступа от зарегистрированного пользователя.

Chromium OS Developer Guide

+1

Спасибо за информацию! Приобретение корневого доступа для ограничения разрешений - это то, что я до сих пор не понимаю. Ни в коем случае не требуется повышенных привилегий. Вместо 'chroot' можно использовать команду' fakechroot'. Функция 'prctl' может выполнять несколько разных действий, и только некоторые из них требуют доступа root. – jcarpenter2

+0

Прошу прощения, что награда не была присуждена, этот ответ хорошо изучен. – jcarpenter2