Su Unix, molto tempo fa, ho appreso di chmod
:il modo tradizionale per impostare i permessi, su Unix (e per consentire ai programmi di ottenere privilegi, usando setuid, setgid).
Di recente ho scoperto alcuni comandi più recenti, su GNU/Linux:
setfacl
estende il tradizionaleugo:rwx
bit e ilt
bit dichmod
.setcap
offre un maggiore controllo della grana rispetto aug:s
bit dichmod
.chattr
Consente alcuni altri controlli (un po' un mix) del file.
Ce ne sono altri?
Risposta accettata:
chmod
:cambia i bit della modalità file
Utilizzo (modalità ottale):
chmod <octal-mode> files...
Utilizzo (modalità simbolica):
chmod <references><operator><modes> files..
references
è una combinazione delle lettere ugoa
, che specificano l'accesso dell'utente ai files
verrà modificato:
u
l'utente che lo possiedeg
altri utenti nelfiles
's gruppoo
altri utenti non nel gruppo del file-
a
tutti gli utentiSe omesso, per impostazione predefinita sono tutti gli utenti, ma solo i permessi consentiti da
umask
vengono modificati.operator
è uno dei caratteri+-=
:+
aggiungi i bit di modalità file specificati ai bit di modalità file esistenti di ciascunfiles
-
rimuove i bit di modalità file specificati nei bit di modalità file esistenti di ognifiles
=
aggiunge i bit specificati e rimuove i bit non specificati, eccetto ilsetuid
esetgid
bit impostati per le directory, a meno che non sia esplicitamente specificato.
mode
consiste in una combinazione delle lettererwxXst
, che specificano quale bit di autorizzazione deve essere modificato:r
leggiw
scrivix
eseguire (o cercare directory)X
esegui/cerca solo se il file è una directory o ha già il bit di esecuzione impostato per alcuni utentis
setuid o setgid (a seconda deireferences
specificati )t
flag di eliminazione limitata o bit permanente
In alternativa, la
mode
può essere costituito da una delle lettereugo
, nel qual caso la modalità corrisponde ai permessi attualmente concessi al proprietario (u
), membri delfiles
's gruppo (g
) o autorizzazioni di utenti in nessuna delle categorie precedenti (o
).
I vari bit di chmod
spiegato:
- Controllo accessi (vedi anche
setfacl
)rwx
— permessi di lettura (r), scrittura (w) ed esecuzione/incrocia (x).- Leggi (r) influisce se un file può essere letto o se una directory può essere elencata.
- Scrivi (w) influisce se è possibile scrivere un file o se è possibile modificare una directory (file aggiunti, eliminati, rinominati).
- Esegui (x) influenza se un file può essere eseguito, usalo per gli script (vedi
#!
) e altri file eseguibili. - Cross (x) influisce se una directory può essere attraversata.
s
et
— sticky bit (t) e setgid (s) nelle directory- Il bit permanente riguarda solo le directory. Impedisce a chiunque, tranne il proprietario del file e il root, di eliminare i file nella directory.
- il bit setgid nelle directory farà sì che i nuovi file e directory abbiano il gruppo impostato sullo stesso gruppo e le nuove directory abbiano il bit setgid impostato (vedi anche i valori predefiniti in setfacl).
s
— setuid, setgid, su file eseguibili.- Questo può influire negativamente sulla sicurezza, se non sai cosa stai facendo.
- Quando viene eseguito un eseguibile, se uno di questi bit è impostato, l'utente/gruppo effettivo dell'eseguibile diventerà quello del file. Quindi il programma viene eseguito come quell'utente. vedi
setcap
per un modo più moderno di farlo.
chown
chgrp
:
chattr
:cambia gli attributi del file
Utilizzo:
chattr <operator><attribute> files...
operator
è uno dei caratteri +-=
:
* +
aggiunge gli attributi selezionati agli attributes
esistenti dei files
* -
rimuove gli attributes
selezionati * =
sovrascrive l'insieme corrente di attributi che i file hanno con gli attributes
specificati .
attribute
è una combinazione delle lettere acdeijstuADST
, che corrispondono agli attributi:
a
aggiungi soloc
compressod
nessun dumpe
formato dell'estensionei
immutabilej
inserimento nel diario dei datis
cancellazione sicurat
nessuna coda fusau
non cancellabileA
nessunatime
aggiornamentiD
aggiornamenti sincroni della directoryS
aggiornamenti sincroniT
in cima alla gerarchia delle directory
setfattr
:cambia gli attributi dei file estesi
Utilizzo (imposta attributo):
setfattr -n <name> -v <value> files...
Utilizzo (rimuovere):
setfattr -x <name> files...
name
è il nome dell'attributo esteso da impostare o rimuovere
value
è il nuovo valore dell'attributo esteso
setfacl
:cambia le liste di controllo dell'accesso ai file
Utilizzo:
setfacl <option> [default:][<target>:][<param>][:<perms>] files...
option
deve includere uno dei seguenti:
--set
imposta l'ACL di un file o di una directory, sostituendo l'ACL precedente-m
|--modify
modificare l'ACL di un file o di una directory-
-x
|--remove
rimuovere le voci ACL di un file o di una directorytarget
è una delle lettereugmo
(o il modulo più lungo mostrato di seguito): -
u
,users
autorizzazione di un utente nominato identificato daparam
, il valore predefinito è il proprietario del fileuid
se omesso g
,group
autorizzazione di un gruppo denominato identificato daparam
, per impostazione predefinita il gruppo proprietariouid
se omessom
,mask
maschera dei diritti effettivi-
o
,other
autorizzazioni di altriperms
è una combinazione delle lettererwxX
, che corrispondono alle autorizzazioni: -
r
leggi w
scrivix
eseguire-
X
esegui solo se il file è una directory o ha già il permesso di esecuzione per alcuni utentiIn alternativa,
perms
può essere una cifra ottale (–
7
) indicando l'insieme dei permessi.
setcap
:modifica le capacità dei file
Utilizzo:
setcap <capability-clause> file
Una capability-clause
consiste in un elenco di nomi di capacità separati da virgole seguiti da un elenco di coppie di flag operatore.
Gli operatori disponibili sono =
, +
e -
. I flag disponibili sono e
, i
e p
che corrispondono a Efficace , Ereditabile e Autorizzato set di capacità.
Il =
l'operatore aumenterà i set di capacità specificati e ripristinerà gli altri. Se non vengono forniti flag insieme a =
operatore, tutti i set di capacità verranno ripristinati. Il +
e -
gli operatori aumenteranno o diminuiranno rispettivamente uno o più set di capacità specificati.
chcon
:cambia il contesto di sicurezza di SELinux del file
Utilizzo:
chcon [-u <user>] [-r <role>] [-t <type>] files...
utente è l'utente SELinux, come user_u
, system_u
o root
.
ruolo è il ruolo di SELinux (sempre object_r
per i file)
tipo è il tipo di soggetto SELinux
chsmack
:modifica gli attributi estesi SMACK
Utilizzo:
chsmack -a <value> file
value
è l'etichetta SMACK da impostare per SMACK64
attributo file esteso
setrichacl:modifica l'elenco di controllo di accesso avanzato.
richacls sono una funzionalità che aggiungerà ACL più avanzati.
Attualmente un lavoro in corso, quindi non posso dirvi molto su di loro. Non li ho usati.