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.
👇 Contenuti da non perdere 👇
- Informatica 🖥
- intelligenza artificiale 👁
- Lavoro 🔧
- Mondo Apple 🍎
- Programmare 🖥
- Sicurezza & Privacy 👁
- Spiegoni artificiali 🎓
- 💬 Il nostro canale Telegram: iscriviti
- 🟠 Python 3 da professionisti: from zero to hero, il problema del cuoco italiano
- 🔵 Il teorema di Bohm-Jacopini spiegato in modo semplice
- 🟡 Come installare WordPress in locale