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 -pper un percorso di cui i genitori possono mancare. - Utilizza
statols -ldsubito dopo la creazione. - Per una cartella condivisa, definisci proprietario, gruppo e modo prima di avviare il servizio.
- Riserva
chmodper 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.
