Permission denied: cosa significa e come risolvere il problema


Mentre stai utilizzando il terminale di comando Linux può capitare che esca fuori il messaggio di errore che riporta: “Permession denied“, che in italiano significa “permesso negato“. Per chi è già pratico con Linux dovrebbe essere chiaro che si tratta di un problema di permessi sul filesystem, che – per poter superare l’ostacolo – dovremo adeguare al fine di poter lanciare il comando desiderato. Ad essere negata, infatti, è precisamente l’esecuzione di un comando specifico, ad esempio un file con estensione .sh che non può essere eseguito, da cui l’errore in questione.

Nota. A differenza di Windows, il sistema operativo Linux permette di rendere qualsiasi file “eseguibile” con il comando chmod +x nomefile, nel senso di lanciabile o utilizzabile per eseguire dei comandi. Un’app Linux, pertanto, o un qualsiasi processo o programma dovrà avere questi permessi per poter essere eseguito, a differenza del sistema Microsoft che invece usa i file .exe e li classifica come eseguibili in questo modo.

Cosa significa l’errore Permission denied in Linux?

In genere l’errore “Permission denied” si verifica quando lo script della shell che stai tentando di eseguire non dispone delle autorizzazioni necessarie per l’esecuzione. Linux e altri sistemi operativi derivati sono molto attenti agli aspetti legati alla sicurezza: solo gli utenti con privilegi amministrativi di alto livello, detti anche sudo o root, sono in grado di effettuare quanto richiesto. Se questi permessi non vengono rispettati, scatta di conseguenza il problema in questione.

Ora, consideriamo l’esempio riportato di seguito. Se da terminale Linux o SSH lanciamo il comando seguente:

./script-esempio.sh

(il ./ serve a dire al terminale che deve lanciare il file script-esempio.sh) potremmo ottenere un errore del tipo:

bash: ./script-esempio.sh: Permission denied

Questo è l’output di esecuzione dell’errore restituito da Linux.

Come risolvere l’errore Permission denied da terminale?

Per correggere l’errore di autorizzazione negata in Linux, è necessario modificare l’autorizzazione del file dello script. Per farlo si fa uso normalmente del comando chmod. Per verificare le autorizzazioni correnti sul file in questione, per rimanere nel nostro esempio script-esempio.sh, eseguire il comando:

ls -l script-esempio.sh

Grazie al comando chmod possiamo usare un codice numerico o alfanumerico al fine di cambiare i permessi, e dare quelli di esecuzioni ai gruppi sistema e utente, come minimo. La sintassi di chmod di cui abbiamo bisogno sarà pertanto del tipo:

chmod +x script-esempio.sh

Dopo aver eseguito il comando in questione, avremo reso eseguibile il file in questione per cui l’errore non dovrebbe più apparire.

./samplescript.sh

funzionerà quindi regolarmente.

Photo by Lukas on Unsplash

👇 Da non perdere 👇



Questo sito esiste da 4552 giorni (12 anni), e contiene ad oggi 4141 articoli (circa 3.312.800 parole in tutto) e 20 servizi online gratuiti. – Leggi un altro articolo a caso
Privacy e termini di servizio / Cookie - Il nostro network è composto da Lipercubo , Pagare.online e Trovalost
Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Questo sito contribuisce alla audience di sè stesso.