setguid
Ci sono 2 forze qui al lavoro. Il primo è il bit setgid che è abilitato per la cartella, folder
.
drwxr-s---. user group folder
Questo è il s
pacchetto di personaggi all'inizio di questa riga. Sono così raggruppati:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
I r-s
mezzi che i file o le directory creati all'interno di questa cartella verrà assegnato al gruppo impostato automaticamente al gruppo group
.
Questo è ciò che ha causato i file foo.txt
e bar.txt
creato in questo modo:
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
permessi e umask
Le autorizzazioni che stai vedendo sono un'altra questione. Questi sono regolati dalle impostazioni per il tuo umask
. Puoi vedere a cosa sei umask
impostato con il comando umask
:
$ umask
0002
NOTA: questi bit sono anche chiamati bit "mode".
È una maschera, quindi disabiliterà tutti i bit relativi alle autorizzazioni abilitate. In questo esempio l'unico bit che desidero è le autorizzazioni di scrittura per gli altri.
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
La rappresentazione dei "bit" in questo comando è in forma decimale. Quindi un 2 equivale a 010 in forma binaria, che è il bit di scrittura. Un 4 (100) significherebbe che si desidera disabilitare la lettura. Un 7 (111) significa che vuoi leggere / scrivere / eseguire tutto disabilitato. Costruendolo da qui:
$ umask 007
Disabiliterebbe i bit di lettura / scrittura / esecuzione per altri utenti.
E allora i tuoi file?
Bene umask
governa le autorizzazioni che verranno impostate quando viene creato un nuovo file. Quindi se avessimo il seguente umask
set:
$ umask 007
E abbiamo iniziato a toccare nuovi file, li vedremmo creati così:
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
Se l'abbiamo cambiato in qualcos'altro, dì questo:
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Tuttavia, non avrà alcun impatto sui file che abbiamo già creato. Vedere qui:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Allora cosa sta succedendo con il browser dei file?
Il umask
è quello che io avevo chiamato un ambiente "soft". Non è assolutamente assoluto e può essere bypassato abbastanza facilmente in Unix in diversi modi. Molti degli strumenti utilizzano switch che consentono di specificare le autorizzazioni come parte del loro funzionamento.
Prendi mkdir
ad esempio:
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
Con l' -m
interruttore possiamo ignorare umask
. Il touch
comando non ha questa funzione, quindi devi essere creativo. Vedi le domande e risposte U&L intitolate: È possibile creare file con autorizzazioni impostate nella riga di comando? proprio per tali metodi.
Altri modi? Sostituisci umask
. Molto probabilmente il browser dei file sta eseguendo questa operazione o semplicemente ignorando completamente umask
e stabilendo il file utilizzando qualsiasi autorizzazione sia configurata per fare come.