Come utente inesperto di Linux, impari a conoscere i permessi e la proprietà associati al file e alle directory. I sistemi operativi simili a Linux/Unix consentono di impostare una combinazione di autorizzazioni a nove bit per impedire ad altri utenti di accedere a file/directory non necessari. Simili a questi sono permessi speciali per i file eseguibili noti come set UID, set GID e bit appiccicosi.
La comprensione delle autorizzazioni speciali può essere un po' opprimente per gli aspiranti amministratori Linux. Qui imparerai un po' di background sui normali permessi dei file e spiegherai come differiscono dai permessi speciali. Dimostriamo anche la funzionalità SetID, GetID e sticky bit con esempi per una comprensione completa.
Autorizzazioni file Linux regolari
Linux usa il comando chmod assegnare/modificare la lettura (r=4), scrivere (w=2), ed eseguire (x=1) permessi su file e cartelle. Vale a dire, i nove bit menzionati sopra si applicano alle tre categorie principali di gruppi di autorizzazioni. I primi tre sono per l'utente che possiede il file, il secondo set è per il gruppo assegnato al file/directory e gli ultimi tre rappresentano tutti gli altri utenti.
Ad esempio, un file normale mostrerà tutti i tipi di autorizzazioni per tutte le categorie di utenti come -rwxrwxrwx. Mentre - in sostituzione di lettere rappresentano l'assenza di tale autorizzazione. Ora chmod Il comando utilizza numeri e lettere per modificare le autorizzazioni come segue:
sudo chmod 755 file #per rwxr-xr-x
sudo chmod 644 file #for rw-r--r--
sudo chmod a-w file #for r-xr-xr-x
sudo chmod a+x file #for --x--x--x
Permessi speciali per i file Linux
Il setuid bit rappresenta il permesso su un file eseguibile che può essere eseguito da altri utenti con l'autorizzazione del proprietario. Ad esempio, quando l'utente max esegue il comando vi come utente John, avrai i permessi di lettura/scrittura di John.
Per identificare i file con setuid, utilizzare il pulsante ls comando e cerca il S bit al posto del bit eseguibile X, come segue.
Imposta bit UID
Il setuid bit rappresenta il permesso su un file eseguibile che può essere eseguito da altri utenti con l'autorizzazione del proprietario. Ad esempio, quando l'utente max esegue il comando vi come radice, avrà i permessi di lettura/scrittura del radice. Per identificare i file con setuid, utilizzare il pulsante ls comando e cerca il S bit al posto del bit di esecuzione X, come segue:
ls -la /etc/passwd
-rwsr-xr-x 1 radice radice 88464 14 dic 12:46 passwd
Alcuni altri esempi sono:
ls -la /bin/gpasswd
-rwsr-xr-x 1 radice radice 88464 14 luglio 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 radice radice 67816 21 luglio 2020 su
ls -la /newgrp
-rwsr-xr-x 1 radice radice 44784 14 luglio 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 radice radice 166056 19 gennaio 2021 sudo
Per impostare il bit setuid per i file eseguibili, utilizzare il comando chmod come segue:
chmod u+s /etc/passwd
Per rimuovere l'autorizzazione per eseguire i file da utenti o proprietari non root:
chmod u-s /etc/passwd
Imposta bit GID
Come discusso, il bit set uid controlla l'accesso ai file per altri utenti, mentre il bit setgid (GID) crea directory collaborative. Ciò significa che qualsiasi file creato all'interno di quella directory è accessibile al gruppo della directory. Pertanto, consente a tutti i membri del gruppo di eseguire file eseguibili senza i privilegi del proprietario e li protegge da altri utenti.
Segui questi passaggi per creare una directory collaborativa nel tuo sistema Linux:
Crea un gruppo usando il gruppoaggiungi comando con ID gruppo 415 per la collaborazione:
groupadd -g 415 amministratori
Usa il comando usermod per aggiungere Johnal gruppo per l'accesso/l'esecuzione dei file.
usermod -aG admins john
Utilizzare il mkdir comando per creare una directory:
mkdir /tmp/collaborative_dir
Utilizzare il chgrp comando per assegnare la directory al amministratori gruppo:
chgrp admins /tmp/collaborative_dir
Utilizzare il chmod comando per modificare l'autorizzazione della directory in 2775. Il bit 2 accende il set gid, 7 per assegnare rwx completo all'utente e al gruppo, mentre 5 (r-w) per gli altri.
chmod 2775 /tmp/dir_collaborative
Infine, cambia il tuo account utente in John e creare un file nella directory collaborativa per controllare i permessi dei file.
su - giovanni
tocca /tmp/collaborative_dir/file.txt
Il comando su potrebbe darti un errore di autenticazione. In questo caso, digita sudo su comando per passare alla radice e rieseguire su - giovanni per cambiare l'account utente
Ora elenca i permessi per controllare i bit GID impostati per la directory e il file appena creato.
ls -ld /tmp/dir_collaborative /tmp/dir_collaborative/file.txt
In uno scenario tipico, a un file creato da john verrà assegnato un gruppo john. Poiché crei il file all'interno di una directory di bit GID impostata, assegna i permessi al amministratori gruppo, in modo che chiunque appartenga al gruppo, come l'utente Chris, avrà accesso ad esso.Imparentato: Come creare nuovi file su Linux usando il tocco
Pezzi appiccicosi
A differenza dei bit SID e GID, i bit permanenti differiscono nella funzionalità in quanto proteggono file e directory dalla ridenominazione e dall'eliminazione da parte di altri utenti. L'autorizzazione regolare del file consente a qualsiasi utente con accesso in scrittura di eliminare o rinominare il file. Considerando che con lo sticky bit impostato, non è possibile a meno che tu non sia l'utente root o il proprietario del file.
Lo scenario ideale per l'utilizzo di bit appiccicosi è la directory accessibile a tutti gli utenti per la creazione di file. Ad esempio, usa il ls -ld comando per controllare il \tmp permessi di directory, come segue:
Puoi notare che il bit appiccicoso T sostituisce il bit di esecuzione X. Segui le istruzioni fornite per creare una directory di eliminazione limitata:
Ora crea un'altra directory nel /tmp cartella:
mkdir /tmp/new_dir
Cambia i permessi del file in 1777 per impostare lo sticky bit (T) e accesso completo alla directory:
chmod 1777 /tmp/new_dir
Ora copia qualsiasi file dal /etc cartella in /tmp/new_dir e cambia i suoi permessi in 666:
cp /etc/ /tmp/new_dir
chmod 666 /tmp/new_dir/servizi
Elenca la directory e tutto il suo contenuto per visualizzare i permessi:
ls -ld /tmp/nuova_dir /tmp/nuova_dir/servizi
Puoi notare lo sticky bit invece del bit di esecuzione, il che significa che solo il root o l'utente john possono eliminare il file, poiché il file si trova all'interno della directory dello sticky bit.
Comprensione dei permessi speciali dei file in Linux
L'articolo mostra come impostare questi bit per migliorare la collaborazione su file e directory condivisi e proteggerli da accesso, esecuzione ed eliminazione non autorizzati. Anche se non crei file/directory con questi bit, la comprensione dei permessi speciali sui file è utile in molte situazioni, specialmente nella risoluzione dei problemi o come amministratore di sistema. Considerando che, l'uso imprudente di questi bit può causare varie vulnerabilità di sicurezza.
Vuoi conservare i permessi dei file durante la copia dei file su Linux? Ecco come farlo usando cp e rsync.
Leggi Avanti
- Linux
- Gestione dei file
- Linux
Rumaisa è una scrittrice freelance al MUO. Ha percorso una lunga strada da matematico a appassionato di sicurezza delle informazioni e sta lavorando come analista SOC. I suoi interessi includono la lettura e la scrittura di nuove tecnologie, distribuzioni Linux e tutto ciò che riguarda la sicurezza delle informazioni.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti