Innanzitutto, non esiste un "ACL Linux standard". Le autorizzazioni di file predefinite possono variare in base al sistema e alla distribuzione; la maggior parte delle distribuzioni sembrano avere le autorizzazioni predefinite di 644
o 664
, ma ciò non è inerente al kernel Linux, e il corretto umask
dipende dal sistema.
Più in generale: se i file sono di default leggibili a livello mondiale è un difetto di sicurezza o non dipende strongmente da quali minacce specifiche siete preoccupati. Se le autorizzazioni predefinite sono leggibili a livello mondiale, ciò significa che tutti gli utenti del sistema possono leggere i file non contrassegnati in modo specifico privato. Questo non è necessariamente un bug: in un ambiente multiutente, è plausibile dichiarare che gli utenti in genere condividono i file e fornire una directory ~/private/
di default per i file che non vogliono essere condivisa; le persone possono di default leggere qualsiasi cosa direttamente sotto la tua home directory, ma la condivisione sul lato opposto è più facile. C'è un compromesso, che vale spesso la pena fare.
Inoltre, le autorizzazioni predefinite su file non cambiano in base alla singola cartella. Se gli utenti vogliono mantenere alcune cose private e condividere altre cose, e non vogliono chmod
molte cose, hai per impostare permessi permessi di default. A quel punto, certe cartelle che avranno oggetti privati avranno permessi più restrittivi. Non puoi fare il contrario; se vuoi rendere assolutamente possibile che qualcuno abbia una directory Public
senza imparare chmod
, in pratica hai per implementarlo in questo modo. È davvero facile limitare l'accesso a un file oltre a ciò che è nelle sue autorizzazioni; concedere l'accesso oltre le sue autorizzazioni non è possibile (devi cambiare i permessi).
Questo perché hai torto quando dici che una directory home 0700
non protegge nulla. Il bit x
di una cartella controlla l'accesso all'interno della directory. Se un utente non dispone dell'autorizzazione di esecuzione su /example/directory/
, non può accedere a qualsiasi elemento entro /example/directory/
. Anche se sanno che /example/directory/a
è un file. Anche se hanno permessi di lettura su quel file. Anche se possiedono quel file: non puoi accedere a un file a meno che tu non abbia solo le autorizzazioni su quel file, ma anche hanno le autorizzazioni di esecuzione su tutto directory madri di quel file. L'implicazione è che puoi proteggere una sottodirectory molto più facilmente di quella che puoi fare in modo particolarmente aperto.
Nel tuo caso, la directory Documents
è 700
; probabilmente le altre directory "user-friendly" (questo è un termine terribile per questo, ma intendo cose come Documents
, Desktop
, Downloads
, Music
, ecc. - roba che è progettata per l'utente medio da usare per tenere i loro file normali) lo sono pure. A condizione di archiviare i tuoi documenti lì e non in sottodirectory personalizzate della tua directory home (o direttamente nella tua home directory), nessun altro ha accesso. La tua home directory è destinata a contenere principalmente file di configurazione che dovrebbero essere lì; la maggior parte dei file personali è destinata alla sottodirectory predefinita (protetta). Se memorizzi le cose direttamente in una home directory, sono visibili, ma non è quello che il tuo sistema operativo ti sta spingendo a fare. Se crei una nuova sottodirectory di ~
e vuoi che sia privata, imposta le sue autorizzazioni su 700
; se lo vuoi pubblico, impostalo su 755
(se vuoi che le persone possano accedere ai file se e solo se conoscono il nome, 711
). Ma l'aspettativa è che le tue cose private non vadano dritte in ~
e che i luoghi in cui i tuoi documenti vanno, sono già protetti.