Permessi di file Linux: una guida strategica per gli amministratori di Windows

Se sei riuscito a gestire Windows per un po’ di tempo, probabilmente hai esperienza con la gestione degli account utente, il file system NTFS e l’impostazione dei permessi. In tal caso, preparati per un mondo diverso con i permessi dei file Linux! In Linux, il file system è un animale diverso che devi imparare per essere un amministratore Linux competente.

Questa è la Parte II della nostra serie in quattro parti su come imparare Linux dalla prospettiva di un amministratore Windows! Assicurati di leggere la Parte I se non l’hai già fatto.

Lavorare con il File System

Prima di tutto, vediamo come Linux memorizza e gestisce i file tramite il file system.

Nota: Tutti gli esempi utilizzeranno OpenSUSE Linux.

Niente Più Lettere di Unità

A differenza di Windows, i dispositivi rimovibili e altri dispositivi non ottengono automaticamente una lettera di unità e si aprono al riavvio. In Windows, ogni unità viene montata come una lettera di unità: C:\, D:\, ecc. Come funzionano le lettere di unità in Linux? Non ce ne sono!

In Linux, c’è una cartella chiamata la cartella root. Questa cartella si trova nella radice del file system o semplicemente /. La barra obliqua è la prima barra obliqua prima che ogni altro file nel sistema provenga. Questa barra obliqua è in un certo senso come la base C:\, anche se solo se le altre lettere di unità solo esistessero come una sottocartella di C:\.

La cartella root è dove si trovano i file di sistema principali. Tutto il resto, inclusi altri dispositivi, sono una sottocartella di questa cartella centrale.

Linux sfuma la linea tra cartelle e filesystem. La directory Linux /home è la radice di tutti i “profil” degli utenti, simile alla cartella C:\Users in Windows. In questo caso, /home è una directory. Tuttavia, le “directory” in Linux non devono necessariamente essere effettivamente delle directory. Possono anche essere partizioni di archiviazione o addirittura un disco rigido separato. Questo concetto è analogo ai punti di mount di Windows.

Puoi saperne di più sulle cartelle radice in questo articolo.

Utenti e Cartelle Home

Se stai usando OpenSUSE, potresti notare una cartella Home sul tuo desktop come mostrato di seguito. Questa cartella è la versione Linux della cartella C:\users\<username> o “profilo”. La cartella degli “utenti” di Linux si trova sotto /home sul disco di installazione per impostazione predefinita.

Nell’esempio qui sotto, l’utente si chiama homelab con un “profilo” situato in /home/homelab.

Your own User (Home) Folder

In Linux (e Windows), la cartella home (o profilo utente in Windows) ha una notazione abbreviata di una tilde (~). Se vedi qualcosa del tipo "~/Documents/blah.txt, si riferisce effettivamente al tuo file /home/<username>/Documents/blah.txt.

La Maiuscola è Tutto in Linux

Tutto in Linux è sensibile alle maiuscole e minuscole. Questo concetto è l’esatto opposto di Windows dove quasi nulla è sensibile alle maiuscole e minuscole.

Ad esempio, se hai una directory chiamata /home/homelab, una directory completamente diversa può essere chiamata /home/Homelab. Questo concetto si estende anche ai comandi. Eseguire cd /home/homelab è diverso da CD /home/homelab (che dovrebbe fallire).

Come persona abituata a Windows, questo concetto ti confonderà in qualche momento. Sii molto attento alla tua capitalizzazione! Puoi vedere un esempio di due cartelle separate di seguito. L’unica differenza tra le due è la capitalizzazione: In un ambiente Windows, questo non è possibile.

Being able to create two separate folders just by capitalization is not possible on Windows

Account Utente

Come Windows, Linux ha il concetto di account utente ma si comportano un po’ diversamente. Inizia pensando agli account utente Linux in termini dei tuoi familiari account utente Windows.

Windows ha alcuni account utente incorporati come Amministratore, l’account nascosto SYSTEM, Ospite, ecc. Windows ha anche vari gruppi di sicurezza incorporati come Amministratori, Ospiti, ecc.

Puoi visualizzare tutti gli utenti e i gruppi di Windows tramite la console utenti locali e i gruppi eseguendo il snap-in della console MMClusrmgr.msc.

The Windows Local User Control Panel

SID di Windows

Per identificare in modo univoco utenti e gruppi, Windows si riferisce a utenti e gruppi con qualcosa chiamato SID. In Windows, puoi trovare il SID di ciascun utente e gruppo eseguendo un paio di comandi PowerShell di seguito.

Get-LocalUser | select name, sid
Get-LocalGroup | select name,sid
The list of users and groups on a Windows computer

Ogni SID del gruppo Windows è lo stesso su tutti i computer Windows. Gli SID utente integrati SIDdi Windows sono unici. Quello SID Amministratore che vedi nella schermata sopra dovrebbe essere diverso su ogni computer Windows. Qualsiasi utente o gruppo futuro creato in Windows sarà unico. Nota sotto il gruppo test. Se creassi un gruppo test sul tuo computer Windows, l’SID sarebbe diverso.

A new “test” group at the top has a unique SID

Identificatori utente Linux

D’altro canto, Linux gestisce utenti e gruppi in modo simile solo che questa volta Linux non utilizza gli SID ma identificatori utente (UID) e identificatori gruppo (GID). Inoltre, a differenza di Windows, utenti e gruppi sono unici per il computer ma non unici su tutti i computer. Questo significa che il tuo UID sul Computer A potrebbe essere esattamente lo stesso UID sul Computer B, anche se non è lo stesso utente.

Sia gli UID che i GID seguono una semplice convenzione numerica; ogni UID e GUID iniziano da 0 e incrementano di uno da 1 a 999 per gli account di sistema interni e da 1000+ per gli account utente personalizzati.

L’utente radice integrato sempre ha un UID di 0 e un GID di 0. Inoltre, come l’account nascosto di SYSTEM di Windows, questo account radice è generalmente (a seconda della distribuzione Linux) impedito di effettuare l’accesso.

L’utente radice integrato è simile agli account integrati di SYSTEM e Amministratore di Windows, in qualche modo combinati in uno solo. Anche se stai lavorando come amministratore in Windows, ci sono comunque alcune salvaguardie integrate per impedirti di distruggere completamente Windows.

L’utente root, d’altra parte, ha un’autorità assoluta. Se entri intenzionalmente come utente root (puoi farlo dalla riga di comando utilizzando il comando sudo su) e cerchi di eliminare l’intero sistema operativo, root lo farà volentieri fino a quando il sistema non si bloccherà.

Diciamo che hai creato un utente chiamato homelab. L’UID per homelab può essere indicato sia come 1000 che come homelab. L’utente diventerà automaticamente membro del gruppo interno users, che puoi indicare con l’ID di gruppo 100. Puoi trovare un elenco di queste corrispondenze eseguendo il comando getent passwd come mostrato di seguito:

running getent passwd inside the terminal

Puoi trovare le stesse informazioni di cui sopra anche per i gruppi con il comando getent group.

running getent group inside the terminal

Permessi dei file Linux

In un mondo Windows, i permessi del filesystem non sono divertenti. Impostare e gestire i permessi in NTFS può talvolta diventare un incubo con ACE, ACL, ereditarietà, propagazione, ecc. Fortunatamente, nei filesystem Linux i permessi sono molto più semplici.

In Linux, hai tre tipi di diritti che puoi assegnare a un file: lettura, scrittura ed esecuzione, con tre categorie di accesso: proprietario, gruppo, altri.

  • Il proprietario è l’utente che possiede il file/la cartella. Ogni file o cartella ha un proprietario designato.
  • Il gruppo è il gruppo che possiede il file/la cartella. Questo non deve necessariamente essere lo stesso gruppo a cui appartiene il proprietario. Ogni file o cartella può appartenere solo a un gruppo.
  • Altri sono… beh… gli altri. Sono le persone che non fanno parte del gruppo di appartenenza o non sono il proprietario designato.

È possibile consentire o negare ogni opzione per ogni categoria. Ad esempio: puoi dare opzioni di lettura, scrittura ed esecuzione al proprietario e opzioni di lettura/esecuzione al gruppo e agli altri. Puoi vedere questo nella schermata sottostante. Questo significa che chiunque eccetto l’utente proprietario della cartella non può modificarla.

Proprio come nell’esplora risorse di Windows, in Ubuntu puoi vedere queste informazioni facendo quanto segue:

  1. Apri la tua cartella Home sul desktop.
  2. Naviga fino al file/cartella in questione.
  3. Fai clic destro sul file/cartella e clicca su Proprietà.
  4. Fai clic sulla scheda Permessi.
  5. Clicca su Permessi avanzati.

Una volta nella finestra Permessi avanzati, puoi vedere graficamente tutti i permessi assegnati a quel file o cartella.

Demonstration of the advanced permissions menu in OpenSUSE

Sotto è rappresentata la tabella dei Permessi avanzati.

How the file permissions look visually

Proprietà del file

Come in Windows, ogni file e cartella ha un proprietario. In Windows, puoi prendere il possesso di un file tramite l’interfaccia grafica o tramite il comando takeown. In Linux, assumi il possesso eseguendo il comando chown <utente>:<gruppo> <file/cartella> sulla riga di comando.

Come in Windows, in genere hai bisogno di autorizzazioni amministrative per cambiare il proprietario dei file utilizzando sudo. sudo è l’equivalente Linux del Controllo account utente (UAC) di Windows. Invece di aprire una finestra di comando amministrativa, si premettono i comandi con sudo per eseguirli come amministratore.

Creiamo una cartella che è solo di proprietà di root per dimostrare alcuni di questi concetti.

  1. Apri la tua cartella home e vai su Documenti
  2. Apri un prompt dei comandi con clic destro —> Azioni —> Apri Terminale Qui, e esegui quanto segue:
sudo mkdir owned-by-root
sudo chmod 700 owned-by-root
Creating a root only folder

Questa cartella ha solo permessi di lettura/scrittura/esecuzione per il proprietario. Poiché hai creato la cartella con i diritti di amministratore, il proprietario attuale è root.

Hai anche cambiato i permessi in modo che solo il proprietario abbia accesso. Il gruppo proprietario e gli altri utenti non possono accedere a questa cartella affatto. Infatti, noterai che la cartella ha un grosso lucchetto che indica che non hai accesso.

Di seguito puoi vedere come prendere il possesso di questa cartella.

  1. Apri un altro terminale nella stessa cartella (o usa quello che hai già aperto)
  2. Esegui sudo chown homelab:users ./owned-by-root
Demonstration of the change ownership command in OpenSUSE

Ora che hai il possesso, puoi anche cambiare i permessi del file all’interno della GUI dell’esplora file usando la finestra delle proprietà.

File permissions inside the explorer GUI

Di solito vuoi solo cambiare i possessori, non i permessi dei file. Linux è piuttosto bravo a sapere quali permessi le cose dovrebbero avere per impostazione predefinita. Puoi davvero combinare guai ‘chmodando’ senza conoscere le implicazioni.

Notazione Numerica per i Permessi dei File

Se hai fatto qualsiasi risoluzione dei problemi di Linux, potresti aver visto persone online spiegare i permessi dei file usando uno schema numerico. Puoi vedere ciò evidenziato nello screenshot qui sotto:

The permissions menu, as viewed remotely from a Windows machine using WinSCP

Linux utilizza una notazione abbreviata per questo sistema di accesso utilizzando numeri, come 0600. Il primo numero è per alcune proprietà speciali che puoi aggiungere, che le persone in generale ignorano. Infatti, la maggior parte delle persone utilizza solo tre cifre per la notazione e ignora la quarta cifra iniziale.

Per ulteriori informazioni sulla notazione numerica per i permessi dei file, consulta questo articolo.

Riassumendo

Questo è tutto per la Parte II della nostra serie di articoli di blog “Un Windows Guy in un mondo Linux”! Assicurati di mantenere il ritmo con Parte III!

Source:
https://adamtheautomator.com/linux-file-permissions/