Qual è il primo numero di un argomento chmod a 4 numeri (come 'chmod 4555')?

17

Quando installo un programma, mi consiglia di fare chmod 4555 . Ok, conosco i valori se uso solo tre numeri. Ad esempio

chmod 555 test-file

darà

-r-xr-xr-x

4 per scrittura, 2 per lettura e 1 per esecuzione. Ma quando faccio questo:

chmod 4555 test-file

mi dà

-r-sr-xr-x

Quindi, x è cambiato in s . Cosa significa?

    
posta Mas Bagol 03.02.2015 - 17:59

2 risposte

25

In realtà ci sono 4 set di attributi su cui puoi lavorare tramite chmod .

Special , User/Owner , Group e Others in questo ordine, quando si lavora con i chmod a quattro numeri, con quel primo numero che è bit speciale che può essere impostato.

chmod 4555 equivale al seguente:

  • Set UID bit - Esegui il file come proprietario indipendentemente da quale utente lo sta eseguendo
  • Utente / Proprietario: Read, Execute
  • Gruppo: Read, Execute
  • Altro: Read, Execute

Il s nella stringa 'human readable' per permessi indica che il SetUID bit (spiegato sotto) è impostato.

In effetti, possiamo suddividere l'argomento di quattro numeri chmod permessi in descrittori specifici come segue, e facendo il calcolo matematico per determinare quale sarebbe un 4 nella prima sezione, un 5 nella prossima sezione e così via.

Ricorda che #### è Special User/Owner Group e Others in questo ordine.

Per gli attributi Special (il primo numero in un argomento di quattro numeri chmod ):

  • Set UID - Esegui il file come proprietario indipendentemente dall'utente che lo esegue (mostra come s nella stringa di permessi leggibile dall'utente per la sezione User ) = +4 ( --s in User/Owner )
  • Set GID - Esegui il file come gruppo indipendentemente dall'utente / gruppo che lo esegue (mostrato come s nella stringa di permessi leggibile da umano per la sezione Group ) = +2 ( --s in Group )
  • Sticky Bit - EFFICACE SOLO SULLE DIRECTORIE - Se impostato, solo l'utente proprietario della directory e root possono eliminare la directory e solo il proprietario del file o root può eliminare i file al suo interno. (viene visualizzato come t nella stringa di autorizzazioni leggibili dall'utente per la sezione Others ) = +1 ( --t in Others )

Per gli attributi User/Owner , Group e Others (gli ultimi tre numeri in un argomento di quattro numeri chmod ):

  • Read = +4 ( r-- )
  • Write = +2 ( -w- )
  • Execute (per i file) o 'Inserisci in / Elenca elementi' = +1 ( --x )
risposta data Thomas Ward 03.02.2015 - 18:10
7

Si chiama SETUID bit. se è impostato da chmod 4555 test-file (nel tuo caso), allora test-file può essere eseguito da qualsiasi utente come se l'utente fosse il proprietario del file.

Quando il bit SETUID è impostato, l'ID utente effettivo ( EUID ) dell'utente che non ha il permesso di eseguire il file in altro modo (con permessi normali, ad esempio 0744 ), accetta l'EUID del proprietario del file e può eseguire il file.

    
risposta data heemayl 03.02.2015 - 18:12

Leggi altre domande sui tag