Ho scoperto che gli elenchi di controllo degli accessi POSIX consentono a te, come amministratore di sistema, di proteggere i tuoi utenti dal peggio della loro stessa ignoranza, sovrascrivendo le normali autorizzazioni del file system di altri gruppi di utenti, senza molta possibilità di violare qualcosa di cruciale .
Possono essere particolarmente utili se per esempio (fi) avevi bisogno delle home directory per essere accessibili in tutto il mondo perché il contenuto web deve essere accessibile per apache ~/public_html/
. (Anche se con gli ACL puoi ora fare il contrario, rimuovere l'accesso per tutti e usare un ACL specifico specifico per l'utente apache.)
Sì, un utente esperto può rimuoverli / sovrascriverli di nuovo, sono abbastanza rari da essere improbabili e quegli utenti che in genere non sono quelli che possono essere convenientemente chmod -R 777 ~/
, giusto?
Devi montare il filesystem con l' acl
opzione mount:
mount -o remount,acl /home
In molte distribuzioni il valore predefinito è creare gruppi di utenti, ogni utente ha il proprio gruppo primario e ho impostato tutti gli utenti in un gruppo secondario con il nome privo di fantasia di users
.
Utilizzando ACL è ora banale impedire ad altri utenti di accedere alle home directory:
Prima:
chmod 0777 /home/user*
ls -l /home/user*
drwxrwxrwx. 2 user1 user1 4096 Jul 11 15:40 user1
drwxrwxrwx. 2 user2 user2 4096 Jul 11 15:24 user2
Ora imposta le autorizzazioni di directory effettive per i membri del users
gruppo su 0
nessuna lettura, scrittura o accesso:
setfacl setfacl -m g:users:0 /home/user*
ls -l
drwxrwxrwx+ 2 user1 user1 4096 Jul 11 15:40 user1
drwxrwxrwx+ 2 user2 user2 4096 Jul 11 15:24 user2
Il +
segno indica la presenza di impostazioni ACL lì. E getfacl
può confermare che:
getfacl /home/user1
getfacl: Removing leading '/' from absolute path names
# file: home/user1
# owner: user1
# group: user1
user::rwx
group::rwx
group:users:---
mask::rwx
other::rwx
Lo group:users:---
spettacolo quel gruppo effettivamente non ha diritto di accesso, nonostante le normali autorizzazioni per gli altriother::rwx
E test come utente1:
[user1@access ~]$ ls -la /home/user2
ls: cannot open directory /home/user2: Permission denied
Una seconda soluzione comune sui sistemi condivisi è quella di avere le case home montate su automounter su richiesta e un server dedicato all'accesso alla shell. Questo è tutt'altro che infallibile, ma in genere solo una manciata di utenti verrà loggata contemporaneamente, il che significa che solo le home directory di quegli utenti sono visibili e accessibili.
chmod files 0777
siano strettamente necessarie, vale a dire affrontare la causa principale del problema, piuttosto che il sintomo che, così facendo, chiunque può leggere i file di qualcun altro. Molte volte la raccomandazione di consentire tutti gli accessi è semplicemente un modo economico per evitare le chiamate di supporto o la mancanza di abilità tecnica nel riuscire a impostare correttamente le autorizzazioni. In quasi nessun caso ho dovuto impostare file0777
o concedere alle applicazioni l'accesso root completo quando richiesto. L'educazione degli utenti e / o dei venditori aiuta enormemente qui.