Il filesystem root
Mounting
Tipi di Filesystem
File passwd e group
Sono file che possono essere rispettivamente trovati in /etc/passwd
e /etc/group
, sono file di testo con codifica 8 bit, con una struttura specifica conosciuta dai programmi che interagiscono con questi file.
Sono organizzati per righe, ovvero sequenze di caratteri terminati dal carattere line feed LF (0x0A); dove ogni riga contiene capi separati da :
.
Nell file passwd ogni riga rappresenta un user con questa struttura:
username:password:uid:gid:gecos:homedir:shell
oss: al posto di password ci sarà una
x
, l’hash della vera password è salvato nel file protettoshadow
.
Nel file group clxjkjskjbld
File
Ogni file nel filesystem è rappresentato da una struttura dati inode ed è univocamente identificato da un inode number.
Attributi di struttura dati inode
- Type:
- User ID:
- Group ID:
- Mode:
- Size:
- Timestamps:
- Link count:
- Data pointers:
Tabella inod
Come visualizzare le informazioni di un inode
abbiamo due comandi possibili ls
e stat
ls
-i
: ritorna il numero del inode-l
: mostra varie informazioni diritti, user, group, date, size, time.
la sezione dimensione mostra lo spazzio occupato da un file dlfhsakldjfh
stat
Permessi di accesso
I permessi di accesso indicano chi può fare cosa.
- Utente proprietario: solitamente chi crea il file/directory
- Gruppo proprietario: gruppo primario dell’utente proprietario (specificato in
/etc/passwd
)
Il proprietario definisce i permessi di accesso ovvero chi può leggere, scrivere, eseguire un file/directory.
Permessi accesso a File
Permessi di acesso a Directory
Permessi Speciali
Esistono altri tre tipi di permessi detti speciali che possono essere utilizzate sia su file
che directory
:
sticky bit (t)
Applicato su directory corregge il comportamento di
w+x
, obligando l’utente ad avere i permessi di scrittura sul file per cancellarlo.Infatti senza sticky bit se l’utente ha permesso
w+r
sulla directory ma non sui file della directory, può comunque cancellare i file.oss: sticky bit è inutile sui file.
setuid bit (s)
Si utilizza solo per i file eseguibili, quando vengono eseguiti, i privilegi con cui opera il corrispondente processo non sono quelli dell’utente che esegue il file, bensi quelli dell’utente proprietario del file.
Quindi, se il proprietario e’ root, viene eseguito con i privilegi di root, indipendentemente da chi lo ha eseguito
setgid bit (s)
Analogo di
setuid
ma con i gruppi. I privilegi sono quelli del gruppo del file eseguibile.
Può essere applicato anche ad una directory, e allora ogni file creato li dentro ha il gruppo della directory, anziché quello primario di chi crea i files.
il setuid rimpiazza la x nella terna user con una s il setgit rimpiazza la x nella terna group con una s il sticky rimpiazza la x nella terna other con una t
Comando chmod
https://www.freecodecamp.org/italian/news/permessi-sui-file-in-linux-come-usare-il-comando-chmod/
chmod è un comando che ti consente di cambiare i permessi (modalità) per un file o directory.
Con sintassi: chmod <Operazioni> <Nome File/Directory>
Modalità simbolica
Una lettera tra ugo
per indicare la terna che vogliamo modificare, dove:
u
indiauser
g
indicagroup
o
indicaother
Una (o più) lettere tra rxwst
per indicare ili permesso che vogliamo modificare, dove:
r
indicaread
x
indicaexecute
w
indicawrite
s
indicasetuid
(se utilizzato su user) osetgid
(se utilizzato su group)t
indicasticky
Un operatore tra -, + o = dove:
- - indica la rimozione di un permesso
- + indica l’aggiunta o la sovrascrittura di un permesso
- = modifica i permessi di un intera tripla