2016-07-03 17 views
5

Sto installando Unity. Il programma di installazione di Unity dice che deve essere eseguito come root, e questo perché Chromium Embedded Framework deve essere eseguito come root. Perché Chromium Embedded Framework deve essere eseguito come root?Perché Chromium Embedded Framework deve essere eseguito come root? (Unity Installer)

Il programma di installazione di Unity mi indica here, ma quella pagina non menziona le autorizzazioni di root.

Ecco l'uscita della console, per i posteri:

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

E il frammento di codice in questione dal programma di installazione:

# 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 luglio: Trovato this thread. Qualcuno può aiutare a confermare che la proprietà di root e SUID non sono più necessari su chrome-sandbox?

Sto costruendo secondo these instructions ma mi viene ancora richiesta la password di root quando eseguo cros_sdk.

risposta

0

Non è necessario eseguire Chromium Embedded Framework come utente root. Le autorizzazioni di root sono necessarie solo per impostare permessi/chmod sull'eseguibile chrome-sandbox. Gli installer su Linux di solito richiedono permessi di root, non c'è niente di strano in questo.

+0

maggior parte delle applicazioni possono essere compilati e gestiti come un normale utente. Il programma di installazione di Unity estrae Unity in una sottodirectory. Perché chrome-sandbox deve essere di proprietà di root e avere SUID impostato? – jcarpenter2

2

Per assicurarsi che tutti utilizzino lo stesso ambiente e gli stessi strumenti per creare con Chromium, tutto lo sviluppo avviene all'interno di uno chroot. Questo chroot è il suo piccolo mondo: contiene un proprio compilatore, i propri strumenti (la propria copia di bash, la propria copia del sudo), ecc

Esso utilizza chroot, prctl e pochi altri chiamate di sistema che può riportare EPERM error se il processo ha privilegi insufficienti.

EPERM error

Pertanto il programma di installazione vuole eseguire uno script bash che viene eseguito come root per l'impostazione SUID sulla sandbox. Vogliono te come root perché dà il proprietario del file permissions così come il proprietario UID (User ID) e GID (Group ID). Generalmente in Unix/Linux quando viene eseguito un programma, esso eredita le autorizzazioni di accesso dell'utente connesso.

Chromium OS Developer Guide

+1

Grazie per le informazioni! L'acquisizione dell'accesso root, al fine di limitare le autorizzazioni, è ciò che ancora non capisco. In nessun caso devono essere richiesti privilegi elevati. Il comando 'fakechroot' può essere usato al posto di' chroot'. La funzione 'prctl' può fare diverse cose, e solo alcune richiedono l'accesso come root. – jcarpenter2

+0

Mi scuso per il fatto che il premio non è stato assegnato, questa risposta è ben studiata. – jcarpenter2

Problemi correlati