Controllare i permessi Linux: diagnosticare Permission denied senza chmod 777

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

  1. 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.
  2. 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.
  3. Esamina ls -ld /path/file e 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.
  4. 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.
  5. 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.
  6. Solo dopo avere identificato il permesso mancante: registra la modalità precedente e modifica un solo file. chmod u+r /path/file aggiunge 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.

Fonte