In che modo il mio browser Internet è in grado di scrivere file nel mio file "Download" se le autorizzazioni predefinite non consentono di "scrivere"?


14

Sul terminale, ho usato questo comando:

stat Downloads

Ha dichiarato che le autorizzazioni per la mia cartella dei download erano "drwxr-xr-x"

Questo non significherebbe che solo l'amministratore e il proprietario sarebbero in grado di modificare la cartella? In che modo il browser scarica qualcosa e lo inserisce nella cartella se non dispone dell'autorizzazione o Ubuntu rileva che hai autorizzato il browser a farlo?


4
Sospetto che se dovessi entrare ls -ld Downloads , scopriresti di essere, infatti, il proprietario della cartella Download. Quindi, quando esegui il tuo browser, sei tu, come proprietario della directory, che stai tentando di inserire qualcosa in quella directory.
Charles Green

Risposte:


20

I programmi vengono eseguiti con i privilegi dell'utente che li ha invocati.
Pertanto, all'avvio del browser, il processo del browser dispone dei diritti necessari per leggere, modificare ed eseguire i file.

E poiché sei il proprietario della cartella Download, il tuo account utente dispone (di solito per impostazione predefinita) di rdiritti ead / write / e xecute completi . Pertanto anche il tuo browser li ha.

Per chiarire l' output stat(d rwx r-x r-x) :

  • La prima lettera (qui:) ddescrive il tipo di oggetto del file system che si sta esaminando. dsignifica che stai mostrando le autorizzazioni di una directory. Se stai esaminando un file, otterrai -invece un . Ci sono anche altre possibilità, come lper un link. Inoltre ci sono (secondo il commento di @ Atsby) bper i dispositivi a blocchi, cper i dispositivi a caratteri, pper le pipe e probabilmente anche di più ...
    Vedi * per la nota sui permessi delle directory!
  • Le prime tre lettere rwxindicano le autorizzazioni del proprietario . Una lettera indica che viene concesso il rispettivo tipo di accesso, un "-" significa negato. -> accesso completo
  • Le seconde tre lettere r-xrappresentano le autorizzazioni degli utenti che sono membri del gruppo del proprietario . È lo stesso formato "rwx" di cui sopra. -> solo autorizzazioni di lettura ed esecuzione, nessuna scrittura
  • Le ultime tre lettere r-xrappresentano le autorizzazioni di tutti gli altri utenti che non sono il proprietario stesso e non sono membri del gruppo di proprietari. Sempre lo stesso formato "rwx". -> anche solo autorizzazioni di lettura ed esecuzione, nessuna scrittura

* Autorizzazioni directory: si
noti che le autorizzazioni directory hanno significati diversi rispetto alle autorizzazioni file. Per le directory ...
accesso in lettura (r) significa elencare i file ( lscomando) ,
accesso in scrittura (w) significa cambiare il contenuto della directory (creare, eliminare, rinominare i file) ed
eseguire l'accesso (x) significa entrare nella directory ( cdcomando o apertura con il file manager)


Autorizzazioni di esecuzione avanzate:

A volte si trova un S, s, To tdove ci si aspetterebbe una x.

Esistono autorizzazioni SUID (Imposta ID utente) e SGID (Imposta ID gruppo) che sostituiscono le normali xse il file deve essere sempre eseguito con le autorizzazioni del proprietario (SUID) o del gruppo proprietario (SGID). Per SUID, le xautorizzazioni utente (primo blocco) vengono sostituite, per SGID vengono sostituite xle autorizzazioni di gruppo (secondo blocco). Una lettera maiuscola Sindica un -(permesso negato) mentre un piccolo sequivale a x(permesso concesso).

Se il xterzo blocco (autorizzazioni altrui) viene sostituito da un T/ t, significa che è impostato "Sticky Bit" . Al giorno d'oggi, viene principalmente utilizzato per impedire l'eliminazione del file da parte di utenti non proprietari che dispongono di autorizzazioni di scrittura. Ancora una volta, una lettera maiuscola Tequivale a -(nessuna autorizzazione di esecuzione per gli altri) senza "Sticky Bit", mentre una piccola tindica l'accesso di esecuzione concesso ( x) per gli altri.


Notazione ottale:

Le autorizzazioni possono anche essere rappresentate da 3-4 cifre (valori 0-8), che si chiama notazione ottale.
Normalmente hai 3 cifre o 4 cifre con la prima cifra impostata su 0 (es. 755O 0755).

  • La prima cifra (che può essere omessa se è 0) rappresenta i flag di autorizzazione avanzata. Valori flag: SUID = 4, SGID = 2, Sticky = 1.
  • La seconda cifra rappresenta lo stato dei flag di autorizzazione del proprietario (rwx; primo blocco di autorizzazioni nella formattazione della stringa). Valori flag: r = 4, w = 2, x = 1.
  • La terza cifra rappresenta lo stato dei flag di autorizzazione del gruppo proprietario (rwx; secondo blocco di autorizzazioni nella formattazione della stringa). Valori flag: r = 4, w = 2, x = 1.
  • La quarta cifra rappresenta lo stato di tutti gli altri flag di autorizzazione (rwx; terzo blocco di autorizzazioni nella formattazione delle stringhe). Valori flag: r = 4, w = 2, x = 1.

Per calcolare il valore della cifra, basta sommare i valori dei flag di tutti i flag impostati. Esempi: rwx = 4 + 2 + 1 = 7, rx = 4 + 0 + 1 = 5


Fonte e riferimenti aggiuntivi:
http://www.zzee.com/solutions/linux-permissions.shtml
http://www.informit.com/articles/article.aspx?p=1822622&seqNum=6
Per ulteriori dettagli, visitare questi collegamenti , in particolare per quanto riguarda le autorizzazioni avanzate.


1
+1, da directoryproposito!
kos

@kos Grazie, aggiungerò questo. Quali sarebbero le altre possibilità invece di una "d" in questo posto?
Byte Commander

Nessuna, se non è una directory è davvero un file, quindi hai sempre uno do-
kos

3
@kos ci sono altre possibilità, ad esempio lper un soft link, bper un dispositivo a blocchi, cper un dispositivo a caratteri, pper una pipe ... quelli sono solo quelli che conosco, probabilmente ce ne sono altri
Atsby

@Atsby Hai ragione, stavo parlando di lsquando effettivamente ha usato OPstat
kos
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.