Perché il mio / usr / local / bin è accessibile solo dall'utente root? Quali sono i diritti per risolverlo?

0

Recentemente ho voluto utilizzare pod per aggiornare il percorso di un framework.

Cocoapods è installato e può essere trovato qui:

/usr/local/bin/

Ma sorpresa! È impostato su root only access:

ls -l /usr/local
drwx------   504    wheel  bin/
drwxr-xr-x@  john   staff  include/
drwxr-xr-x@  john   staff  lib/
drwxr-xr-x   root   wheel  share/

Quindi non posso usare pod perché in ogni caso:

  • pod install realm

    heeeyy dude, you can't access pod cause you are not root .!.

  • sudo pod installa il regno

    heeeyy dude, you can’t use pod as a root! .!.

Ritengo che questa cartella non debba essere impostata come "root only" perché:

  • È nel percorso env dell'usr
  • gem installa pod in esso?
  • link in pratica dice:

    '/usr/local' is widely regarded as a good place in which to keep self-compiled or third-party programs.

So che Linux non è un BSD ma, comunque, non sembra molto diverso no o.O

Finalmente ecco le mie domande:

  • Ho cercato e non ci sono utenti con l'uid 504, questo è sospetto?

(L'ho controllato con "" dscacheutil -q user | grep 504 "")

  • Quali sono i diritti e il proprietario sulla cartella?

  • C'è qualcuno che ha avuto lo stesso problema?

  • Qualche idea sul perché questo è successo?

posta itMaxence 28.10.2016 - 01:03
fonte

3 risposte

1

L'impostazione predefinita per / usr / local è mostrata qui

~ $ ls -ld /usr/local
drwxr-xr-x@ 3 root  wheel  102  5 Aug 20:01 /usr/local 

questo significa che file e directorries in / usr / local possono essere creati solo dall'utente root, ad es. il mio / usr / local ha

~ $ ls -l /usr/local
total 0
drwxr-xr-x  12 root  wheel  408 11 Sep 12:11 bin

Quindi la tua directory condivisa sembra normale ma gli altri hanno modifiche dispari

include e lib sembrano aver cambiato i permessi di / usr / local in modo da poter scrivere su di esso e quindi creare queste due directory (l'impostazione più comune come quella è l'installazione di Homebrew) (dobbiamo vedere cosa mostra ls -ld /usr/local .

Come per bin ci devono essere state diverse cose. Per prima cosa deve essere stato aggiunto un nuovo utente in un determinato momento, gli utenti normali (creati tramite la GUI delle Preferenze di Sistema partono da 501), ad es. Sono il secondo utente e quindi il mio id è 502 e quindi la directory è stata creata o chowned per quell'utente - oppure la directory è stata creata altrove e quindi spostata come root su dove si trova.
Separatamente le autorizzazioni della directory sono state modificate da chmod 700

Quindi l'impostazione corretta è secondo / usr / local / share a meno che tu non stia usando Homebrew nella sua installazione predefinita e quindi dovrebbero essere come / usr / local / include

    
risposta data 28.10.2016 - 02:03
fonte
1

La cartella / usr è protetta da System Integrity Protection (SIP) e di proprietà di root, come tutti i suoi contenuti, con la sola eccezione di / usr / local (e delle sue sottodirectory).

L'utente root è uid 0, non 504. Le serie 500 dovrebbero essere account creati dall'utente o dall'app. / usr / local / bin sul mio sistema è di proprietà del mio nome utente "tubedogg" nel gruppo "admin" e ha drwxrwxr-x come autorizzazioni.

    
risposta data 28.10.2016 - 01:26
fonte
-1

Il /usr/local/ stesso è di proprietà di root wheel per me. Ma tutte le cartelle che potresti utilizzare come pod utente bin include etc lib opt share var sono di proprietà del mio utente e gruppo di amministratori.

Per cambiare la proprietà di una cartella e i file in essa contenuti: sudo chown -R john:staff /usr/local/bin chmod -R 755 /usr/local/bin

    
risposta data 28.10.2016 - 01:43
fonte

Leggi altre domande sui tag