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


20

Quando installo un programma, mi consiglia di farlo chmod 4555. Ok, conosco i valori se uso solo tre numeri. Per 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, xcambiato in s. Cosa significa?


1
anche spiegato qui: askubuntu.com/a/550947/72216 ("about the s-flag")
Jacob Vlijm,

@JacobVlijm ha anche spiegato più in dettaglio con gli altri bit "speciali", di seguito
Thomas Ward

Risposte:


29

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

Special, User/Owner, Group, E Othersin questo ordine, quando si lavora con le chmods quattro numeri, con quel primo numero essendo bit speciali che possono essere impostati.

chmod 4555 equivale a quanto segue:

  • Set UID bit: esegue il file come proprietario indipendentemente dall'utente che lo sta eseguendo
  • Utente / Proprietario: Read, Execute
  • Gruppo: Read, Execute
  • Altri: Read, Execute

La sstringa nella tua "lettura leggibile" per le autorizzazioni indica che il SetUIDbit (spiegato di seguito) è impostato.


In effetti, possiamo suddividere l' chmodargomento delle autorizzazioni a quattro numeri in descrittori specifici come segue e fare i calcoli per determinare quale sarebbe un 4nella prima sezione, un 5nella sezione successiva e così via.

Tieni presente che ####è Special User/Owner Groupe Othersin questo ordine.

Per gli Specialattributi (il primo numero in un chmodargomento di quattro numeri ):

  • Set UID- Esegui il file come proprietario indipendentemente dall'utente che lo esegue (mostra come snella stringa delle autorizzazioni leggibili dall'uomo per la Usersezione) = +4 ( --ssotto User/Owner)
  • Set GID- Esegui il file come gruppo indipendentemente dall'utente / gruppo che lo esegue (mostra come snella stringa delle autorizzazioni leggibili dall'uomo per la Groupsezione) = +2 ( --ssotto Group)
  • Sticky Bit- EFFICACE SOLO SULLE DIRECTORIES - Se impostato, solo l'utente proprietario della directory e rootpuò eliminare la directory e solo il proprietario del file o rootpuò eliminare i file al suo interno. (mostra come tnella stringa delle autorizzazioni leggibili dall'uomo per la Otherssezione) = +1 ( --tsotto Others)

Per User/Owner, Groupe Othersgli attributi (le ultime tre cifre in un quattro-numero di chmodargomento):

  • Read= +4 ( r--)
  • Write= +2 ( -w-)
  • Execute(per i file) o "Enter Into / List Items" (per le directory) = +1 ( --x)

7

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

Quando il SETUIDbit è impostato, l'ID utente effettivo ( EUID) dell'utente che non dispone dell'autorizzazione per eseguire il file altrimenti (mediante autorizzazioni normali, ad esempio 0744), prende l'EUID del proprietario del file e può eseguire il file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.