Permission denied non significa automaticamente che tutti debbano avere accesso. Controlla prima utente, file e percorso. Questa guida riguarda i permessi Unix tradizionali su GNU/Linux; altri controlli possono intervenire indipendentemente.
Passaggi
- Annota percorso completo e operazione richiesta: lettura, scrittura, esecuzione o creazione di un file nella directory. Sostituisci /path/file con il percorso reale negli esempi.
- Consulta id per identificare utente e gruppi della sessione. Per un servizio conta il suo account di esecuzione, non la tua sessione interattiva. Identificalo nella configurazione del servizio.
- Esamina
ls -ld /path/filee ls -ld /path. L'output mostra tipo, modalità, proprietario e gruppo. Controlla anche le altre directory superiori. Un collegamento simbolico non è il file di destinazione; esamina separatamente la destinazione. - Individua la classe applicabile: proprietario, altrimenti gruppo corrispondente, altrimenti altri. Nelle directory x permette l'attraversamento e r l'elenco; creare o rimuovere voci normalmente richiede w e x sulla directory. Sticky bit e altre regole possono aggiungere restrizioni.
- Se i permessi tradizionali sono adeguati, verifica ACL, SELinux/AppArmor, montaggio in sola lettura o namespace di un contenitore. Un segno più nella modalità può indicare ulteriori metodi di accesso. Non disattivare globalmente le protezioni.
- Solo dopo avere identificato il permesso mancante: registra la modalità precedente e modifica un solo file.
chmod u+r /path/fileaggiunge esclusivamente lettura per il proprietario. Serve soltanto se manca proprio tale accesso; evita modifiche ricorsive e 777 generalizzato.
Controllare il risultato
Ripeti l'operazione con lo stesso account interessato e ricontrolla la modalità. Un successo come root non dimostra l'accesso dell'utente del servizio. Se l'errore rimane, indaga il prossimo elemento comprovato invece di ampliare i permessi.
Annullamento e limiti
I comandi diagnostici sono di sola lettura. Ripristina lo stato registrato dopo una modifica, considerando separatamente ACL e bit speciali. chmod 644 non è un ripristino universale, soprattutto per directory o eseguibili.
