Amministratore Linux - Gestione file / cartelle
Per introdurre le autorizzazioni quando si applicano sia alle directory che ai file in CentOS Linux, diamo un'occhiata al seguente output del comando.
[centos@centosLocal etc]$ ls -ld /etc/yum*
drwxr-xr-x. 6 root root 100 Dec 5 06:59 /etc/yum
-rw-r--r--. 1 root root 970 Nov 15 08:30 /etc/yum.conf
drwxr-xr-x. 2 root root 187 Nov 15 08:30 /etc/yum.repos.d
Note - I tre tipi di oggetti principali che vedrai sono
"-" - un trattino per file semplice
"d" - per una directory
"l" - per un collegamento simbolico
Ci concentreremo sui tre blocchi di output per ogni directory e file -
- drwxr-xr-x: root: root
- -rw-r - r--: root: root
- drwxr-xr-x: root: root
Ora analizziamolo, per capire meglio queste righe -
d | Significa che il tipo di oggetto è una directory |
rwx | Indica le autorizzazioni di directory applicate al proprietario |
rx | Indica le autorizzazioni di directory applicate al gruppo |
rx | Indica i permessi di directory applicati al mondo |
radice | La prima istanza, indica il proprietario della directory |
radice | La seconda istanza, indica il gruppo a cui vengono applicate le autorizzazioni di gruppo |
Capire la differenza tra proprietario , gruppo e mondo è importante. Non capire questo può avere grandi conseguenze sui server che ospitano servizi su Internet.
Prima di fornire un esempio del mondo reale, comprendiamo innanzitutto le autorizzazioni applicate a directory e file .
Si prega di dare un'occhiata alla seguente tabella, quindi continuare con le istruzioni.
Octal | Simbolico | Perm. | Directory |
---|---|---|---|
1 | X | Eseguire | Entra nella directory e accedi ai file |
2 | w | Scrivi | Elimina o modifica i file in una directory |
4 | r | Leggere | Elenca i file all'interno della directory |
Note- Quando i file devono essere accessibili per la lettura in una directory, è normale applicare le autorizzazioni di lettura ed esecuzione . In caso contrario, gli utenti avranno difficoltà a lavorare con i file. Lasciare la scrittura disabilitata assicurerà che i file non possano essere: rinominati, eliminati, copiati o che le autorizzazioni siano modificate.
Applicazione delle autorizzazioni a directory e file
Quando si applicano le autorizzazioni, ci sono due concetti da comprendere:
- Autorizzazioni simboliche
- Autorizzazioni ottali
In sostanza, ognuno è lo stesso ma un modo diverso di fare riferimento e assegnare i permessi ai file. Per una guida rapida, si prega di studiare e fare riferimento alla seguente tabella:
Leggere | Scrivi | Eseguire | |
---|---|---|---|
Octal | 4 | 2 | 1 |
Symbolic | r | w | X |
Quando si assegnano le autorizzazioni utilizzando il octalutilizzare un numero di 3 byte come: 760. Il numero 760 si traduce in: Owner: rwx; Gruppo: rw; Altro (o mondo) nessun permesso.
Un altro scenario: 733 si tradurrebbe in: Owner: rwx; Gruppo: wx; Altro: wx.
C'è uno svantaggio nelle autorizzazioni che utilizzano il metodo Octal. I set di autorizzazioni esistenti non possono essere modificati. È possibile solo riassegnare l'intero set di autorizzazioni di un oggetto.
Ora potresti chiederti, cosa c'è di sbagliato nel riassegnare sempre le autorizzazioni? Immagina una grande struttura di directory, ad esempio / var / www / su un server web di produzione. Vogliamo rimuovere ricorsivamente il bit w o write su tutte le directory per Altro. Quindi, costringendolo ad essere aggiunto in modo proattivo solo quando necessario per le misure di sicurezza. Se riassegniamo l'intero set di autorizzazioni, eliminiamo tutte le altre autorizzazioni personalizzate assegnate a ogni sottodirectory.
Quindi, causerà un problema sia per l'amministratore che per l'utente del sistema. Ad un certo punto, una persona (o più persone) avrebbe bisogno di riassegnare tutte le autorizzazioni personalizzate che sono state cancellate riassegnando l'intero set di autorizzazioni per ogni directory e oggetto.
In questo caso, vorremmo utilizzare il metodo simbolico per modificare i permessi -
chmod -R o-w /var/www/
Il comando precedente non "sovrascrive le autorizzazioni" ma modifica i set di autorizzazioni correnti. Quindi abituati a utilizzare le migliori pratiche
- Ottale solo per assegnare le autorizzazioni
- Simbolico per modificare i set di autorizzazioni
È importante che un amministratore CentOS sia competente con le autorizzazioni ottali e simboliche poiché le autorizzazioni sono importanti per l'integrità dei dati e dell'intero sistema operativo. Se le autorizzazioni non sono corrette, il risultato finale sarà sia dati sensibili che l'intero sistema operativo sarà compromesso.
Detto questo, diamo un'occhiata ad alcuni comandi per modificare le autorizzazioni e il proprietario / i membri dell'oggetto:
- chmod
- chown
- chgrp
- umask
chmod: Modifica i bit di autorizzazione della modalità file
Comando | Azione |
---|---|
-c | Come dettagliato, ma riporterà solo le modifiche apportate |
-v | Dettagliato, restituisce la diagnostica per ogni richiesta effettuata |
-R | Ricorsivamente applica l'operazione su file e directory |
chmod ci permetterà di cambiare i permessi di directory e file usando set di permessi ottali o simbolici . Lo useremo per modificare le nostre directory di assegnazione e caricamento.
chown: cambia il proprietario del file e il gruppo
Comando | Azione |
---|---|
-c | Come dettagliato, ma riporterà solo le modifiche apportate |
-v | Dettagliato, restituisce la diagnostica per ogni richiesta effettuata |
-R | Ricorsivamente applica l'operazione su file e directory |
chown può modificare sia la proprietà dell'utente che il gruppo di oggetti. Tuttavia, a meno che non sia necessario modificarli entrambi allo stesso tempo, l'uso di chgrp viene solitamente utilizzato per i gruppi.
chgrp: modifica la proprietà del gruppo di file o directory
Comando | Azione |
---|---|
-c | Come dettagliato, ma riporterà solo le modifiche |
-v | Dettagliato, restituisce la diagnostica per ogni richiesta effettuata |
-R | Ricorsivamente, applica le operazioni su file e directory |
chgrp cambierà il proprietario del gruppo in quello fornito.
Pratica del mondo reale
Cambiamo tutte le assegnazioni delle sottodirectory in / var / www / students / in modo che il gruppo proprietario sia il gruppo degli studenti . Quindi assegna la radice degli studenti al gruppo dei professori. Successivamente, rendere il dottor Terry Thomas il proprietario della directory degli studenti , poiché è incaricato di essere a capo di tutti gli accademici di informatica della scuola.
Come possiamo vedere, una volta creata, la directory rimane piuttosto grezza.
[root@centosLocal ~]# ls -ld /var/www/students/
drwxr-xr-x. 4 root root 40 Jan 9 22:03 /var/www/students/
[root@centosLocal ~]# ls -l /var/www/students/
total 0
drwxr-xr-x. 2 root root 6 Jan 9 22:03 assignments
drwxr-xr-x. 2 root root 6 Jan 9 22:03 uploads
[root@centosLocal ~]#
In qualità di amministratori, non vogliamo mai fornire le nostre credenziali di root a nessuno. Ma allo stesso tempo, dobbiamo consentire agli utenti di svolgere il proprio lavoro. Consentiamo quindi al Dr. Terry Thomas di assumere un maggiore controllo della struttura dei file e di limitare ciò che gli studenti possono fare.
[root@centosLocal ~]# chown -R drterryt:professors /var/www/students/
[root@centosLocal ~]# ls -ld /var/www/students/
drwxr-xr-x. 4 drterryt professors 40 Jan 9 22:03 /var/www/students/
[root@centosLocal ~]# ls -ls /var/www/students/
total 0
0 drwxr-xr-x. 2 drterryt professors 6 Jan 9 22:03 assignments
0 drwxr-xr-x. 2 drterryt professors 6 Jan 9 22:03 uploads
[root@centosLocal ~]#
Ora, ogni directory e sottodirectory ha un proprietario di drterryt e il gruppo proprietario è professors . Poiché la directory dei compiti consente agli studenti di consegnare il lavoro assegnato, togliamo la possibilità di elencare e modificare i file dal gruppo di studenti .
[root@centosLocal ~]# chgrp students /var/www/students/assignments/ && chmod
736 /var/www/students/assignments/
[root@centosLocal assignments]# ls -ld /var/www/students/assignments/
drwx-wxrw-. 2 drterryt students 44 Jan 9 23:14 /var/www/students/assignments/
[root@centosLocal assignments]#
Gli studenti possono copiare i compiti nella directory dei compiti . Ma non possono elencare il contenuto della directory, copiare sui file correnti o modificare i file nella directory delle assegnazioni . Pertanto, consente solo agli studenti di inviare i compiti completati. Il filesystem CentOS fornirà un timbro della data di quando gli incarichi vengono consegnati.
In qualità di proprietario della directory delle assegnazioni -
[drterryt@centosLocal assignments]$ whoami
drterryt
[drterryt@centosLocal assignments]$ ls -ld /var/www/students/assignment
drwx-wxrw-. 2 drterryt students 44 Jan 9 23:14 /var/www/students/assignments/
[drterryt@centosLocal assignments]$ ls -l /var/www/students/assignments/
total 4
-rw-r--r--. 1 adama students 0 Jan 9 23:14 myassign.txt
-rw-r--r--. 1 tammyr students 16 Jan 9 23:18 terryt.txt
[drterryt@centosLocal assignments]$
Possiamo vedere, il proprietario della directory può elencare file, nonché modificare e rimuovere file.
Comando umask: fornisce le modalità predefinite per i permessi di file e directory man mano che vengono creati
umask è un comando importante che fornisce le modalità predefinite per i permessi di file e directory man mano che vengono creati.
I permessi di umask usano una logica unaria e negata.
Autorizzazione | Operazione |
---|---|
0 | Leggi, scrivi, esegui |
1 | Leggere e scrivere |
2 | Leggi ed esegui |
3 | Sola lettura |
4 | Leggi ed esegui |
5 | Scrivi solo |
6 | Esegui solo |
7 | Nessun permesso |
[adama@centosLocal umask_tests]$ ls -l ./
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt
[adama@centosLocal umask_tests]$ whoami
adama
[adama@centosLocal umask_tests]$ umask
0022
[adama@centosLocal umask_tests]$
Ora, cambiamo la umask per il nostro utente corrente e creiamo un nuovo file e una nuova directory.
[adama@centosLocal umask_tests]$ umask 077
[adama@centosLocal umask_tests]$ touch mynewfile.txt
[adama@centosLocal umask_tests]$ mkdir myNewDir
[adama@centosLocal umask_tests]$ ls -l
total 0
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt
drwx------. 2 adama students 6 Jan 10 00:35 myNewDir
-rw-------. 1 adama students 0 Jan 10 00:35 mynewfile.txt
Come possiamo vedere, i file appena creati sono un po 'più restrittivi di prima.
umask per gli utenti deve essere modificata in -
- /etc/profile
- ~/bashrc
[root@centosLocal centos]# su adama
[adama@centosLocal centos]$ umask
0022
[adama@centosLocal centos]$
Generalmente, la umask predefinita in CentOS andrà bene. Quando si verificano problemi con un valore predefinito di 0022 , di solito è quando diversi reparti appartenenti a gruppi diversi devono collaborare ai progetti.
È qui che entra in gioco il ruolo di un amministratore di sistema, per bilanciare le operazioni e il design del sistema operativo CentOS.