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.


Scopri Keliweb , il servizio di hosting italiano: clicca qui !


V-Hosting è l'hosting italiano: scoprilo adesso

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:


V-Hosting è l'hosting italiano: scoprilo adesso


Scopri Keliweb , il servizio di hosting italiano: clicca qui !

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.

permission denied problema con chmod

./samplescript.sh

funzionerà quindi regolarmente.

Photo by Lukas on Unsplash



Questo blog pubblica contenuti ed offre servizi free da 11 anni. – Leggi un altro articolo a caso – Per informazioni contattaci
Non ha ancora votato nessuno.

Ti sembra utile o interessante? Vota e fammelo sapere.

Permission denied: cosa significa e come risolvere il problema
cyberpunk 12

Ingegnere per passione, consulente per necessità, docente di informatica; ho creato Trovalost.it e ho scritto quasi tutti i suoi contenuti. Ogni guida viene revisionata e aggiornata periodicamente. Per contatti clicca qui


V-Hosting è l'hosting italiano: scoprilo adesso


Scopri Keliweb , il servizio di hosting italiano: clicca qui !

permission denied
Torna su