Tutoriel Linux

Creare una cartella su Linux con i permessi corretti

Débutant4 min de lecture

Un dossier creato nel posto sbagliato o con diritti troppo aperti finisce spesso per creare problemi in seguito. Il comando mkdir è sufficiente per iniziare, ma non sostituisce il controllo del proprietario, del gruppo e dei permessi.

Per una directory personale, creala nella tua cartella utente. Per una directory condivisa o utilizzata da un servizio, identifica prima l’account che deve scriverci dentro. Un chmod 777 a volte maschera un vero problema di proprietario e consente a tutti gli account locali di modificare il contenuto.

Crea la cartella nel posto giusto

Dal cartella corrente, il seguente comando crea una sola directory:

mkdir backup

Con un percorso assoluto, sai esattamente dove verrà creata la cartella. Aggiungi -p se le cartelle genitrici possono mancare:

mkdir -p ~/progetti/sito-test/logs

Senze -p, mkdir si ferma se ~/progetti/sito-test non esiste. L’opzione evita anche un errore quando l’ultima cartella è già presente. Essa non trasforma un percorso errato in un buon percorso: controllalo con pwd prima di lanciare il comando.

Per preparare uno spazio che deve appartenere al tuo account, rimani nella tua directory personale. Eviterai sudo, quindi una cartella creata da root che il tuo utente non potrà più riempire:

mkdir -p ~/archivi/2026
stat -c '%A %U:%G %n' ~/archivi ~/archivi/2026

Scegli diritti adatti all’uso

Una cartella richiede il diritto x per essere attraversata. Su una directory, r consente di elencare i nomi e w consente di aggiungere, rinominare o eliminare voci. I diritti realmente applicati dipendono anche dalla tua umask.

Per una cartella privata, creala con un modo esplicito:

mkdir -m 700 ~/archivi-privati
stat -c '%A %a %U:%G %n' ~/archivi-privati

Il modo 700 consente l’accesso al proprietario e chiude la cartella agli altri utenti. Per una directory in cui un gruppo di lavoro deve leggere e scrivere, scegli piuttosto un gruppo noto e il modo 2770:

sudo install -d -o alice -g gruppo-web -m 2770 /srv/gruppo-web
stat -c '%A %a %U:%G %n' /srv/gruppo-web

Il 2 all’inizio attiva il bit setgid della cartella. I nuovi file e sottodirectory ereditano quindi il gruppo gruppo-web. Questa soluzione evita di aprire la scrittura a tutti gli account del server. Controlla che i membri attesi siano effettivamente in questo gruppo con id nome_utente.

mkdir -m 777 crea una directory modificabile da chiunque, poi l’umask può ulteriormente ridurre questo modo. Non utilizzarlo per correggere un Permission denied. Leggi piuttosto il percorso completo, il suo proprietario e i diritti di ogni cartella genitrice:

namei -l /srv/gruppo-web
ls -ld /srv /srv/gruppo-web
id

Controlla prima di affidare la cartella a un servizio

Un servizio lanciato sotto www-data, postgres o un account dedicato non vede necessariamente gli stessi diritti della tua sessione. Consulta il suo utente prima di cambiare qualcosa. Per systemd, questo comando fornisce gli account configurati dall’unità:

systemctl show mio-servizio 
  -p User -p Group -p DynamicUser

Crea quindi la cartella con il proprietario atteso, poi testa un file da questo account. Su una macchina di test:

sudo install -d -o www-data -g www-data -m 750 /var/lib/mio-servizio
sudo -u www-data touch /var/lib/mio-servizio/test-scrittura
ls -l /var/lib/mio-servizio/test-scrittura
sudo rm /var/lib/mio-servizio/test-scrittura

Questa verifica ti dice se l’account del servizio può realmente scrivere. Se fallisce, non aggiungere permessi a caso. Controlla prima il proprietario, il gruppo, le eventuali ACL con getfacl e i diritti delle cartelle genitrici.

  • Utilizza mkdir -p per un percorso di cui i genitori possono mancare.
  • Utilizza stat o ls -ld subito dopo la creazione.
  • Per una cartella condivisa, definisci proprietario, gruppo e modo prima di avviare il servizio.
  • Riserva chmod per una correzione mirata, dopo aver identificato l’account bloccato.

La guida su setfacl sotto Linux aiuta quando un solo utente ha bisogno di un accesso aggiuntivo. Se devi modificare dei permessi in una struttura esistente, utilizza piuttosto la procedura dedicata a chmod ricorsivo: cambiare tutti i file e le cartelle con lo stesso modo rompe facilmente i diritti di esecuzione delle directory.

La pagina del manuale mkdir(1) dettaglia le opzioni, e mkdir(2) spiega l’effetto dell’umask e l’eredità del gruppo. Tieni a mente questi due punti prima di creare una cartella utilizzata da un servizio.

Amministratore Linux che ripone una cartella blu in un armadio server con un lucchetto aperto
Il proprietario, il gruppo e i permessi della cartella devono corrispondere al suo utilizzo.
sudo apt update && sudo apt upgrade