Autorizzazione negata durante l'esecuzione di script .sh


71
./geany_run_script.sh: 5: ./geany_run_script.sh: ./Area_circumference: Permission denied

program exited with code: 126. Questo problema si verifica sempre quando provo ad eseguire il mio codice. Quale potrebbe essere la soluzione?


1
Permission deniedl'errore si verifica solo se non si dispone dei privilegi sufficienti per accedere a quel file.
Avinash Raj,

Come posso modificare i permessi
wkhwilo,

Dove posso farlo, per favore, dammi un esempio
wkhwilo,

Quando lo faccio, mi dice questo chmod: impossibile accedere a `geany_run_script.sh ': nessun file o directory. Devo eseguirlo dal terminale o cosa?
wkhwilo,

Risposte:


118

Ecco un link che spiega come modificare l'autorizzazione (e la proprietà) del file

Se vuoi saltarli (per ora ovviamente), puoi creare una directory / cartella nella tua directory home-user e lavorare sui tuoi Cprogrammi (o altri) lì.


È possibile aprire il terminale (premere Ctrl+ Alt+ T) e cdnella directory di destinazione:

cd /path/to/target

Per autorizzare l'esecuzione del file "nome_file_file" (se il file system consente i diritti RW):

chmod +x the_file_name

Come posso modificare le autorizzazioni qualsiasi esempio
wkhwilo,

Il problema come posso farlo? Sono un nuovo utente di Ubuntu che di recente sono passato da Windows.
wkhwilo,

..qual è la tua directory di lavoro, ad es. qual è la posizione del tuo file di codice sorgente? ..hai qualche esperienza con l'interfaccia della riga di comando di Windows?
preciso il

@ wkhwilo-012, vedi se questo aiuta e per favore non esitare a chiedere di più ..
preciso il

@ wkhwilo-012, copia il tuo file eseguibile Area_circumferencee incollalo (il percorso del file verrà incollato) per aggiornare il corpo della tua domanda ...
preciso

20

Devi dare solo il permesso di esecuzione. Segui questo:

    chmod +x filename.sh
    ./filename.sh

Quando creiamo un nuovo file di script, per impostazione predefinita ha l'autorizzazione di lettura e scrittura. Ma se vogliamo eseguirli, allora dovremmo dare il permesso di esecuzione mostrato sopra.


2

Apri l'applicazione del tuo terminale premendo CTRL+ ALT+ To con l'apposita scorciatoia sull'ambiente grafico (come Terminalo xTerm).
Nella finestra uniforme che appare sullo schermo vedrai un carattere lampeggiante, è il terminal cursor: basta fare clic sulla finestra e scrivere per inserire il testo (in genere comandi) e premere ENTERper confermare l'immissione.
Prima del cursore viene sempre elencata la tua posizione corrente sul file system da root directory("/") e la tua casa (dove sono i tuoi file personali) è chiamata "~".
Per cambiare directory / cartella usare cd EXISTENTFOLDER(sostituire EXISTENTFOLDER con il nome della cartella); se ti senti perso, digita semplicemente cdper tornare alla tua home directory in un batter d'occhio!
Adessorisolviamo il tuo problema :

  1. Utilizzare il cdcomando per trovare la directory con il codice sorgente. Usa TABper aiutarti. Se esegui ls -lh, vedrai un elenco di possibili percorsi da seguire e file da eseguire.

  2. Quando trovi il file bloccato esegui chmod +x FILENAME(sostituisci FILENAME con il nome del tuo file di codice sorgente).

  3. Se hai più file bloccati, esegui chmod +x *per sbloccare tutti i file nella directory corrente. Mai chmod + x file pericolosi o non sicuri .

  4. Eseguire ./FILENAME YOUREVENTUALARGUMENTSper eseguire il file eseguibile.

  5. Ricorda che se il tuo programma compilato prova a leggere / scrivere fuori dalla tua home directory dovrai eseguirlo come rootusando sudo ./FILENAME YOUREVENTUALARGUMENTS.

Se vuoi avere un manuale per un comando da eseguire man COMMAND(sostituisci COMANDO con il nome esatto del comando, Linux fa distinzione tra maiuscole e minuscole).

Alcune shell hanno un Open terminal herecomando per semplificare la tua vita, cercarla in futuro e ricordare che la shell di comando può essere il tuo migliore amico, se la usi bene. :-D

È tutto. Se hai bisogno di ulteriore aiuto, commenta qui.
Se ti sto aiutando, premi la freccia SU a sinistra; se risolvi contrassegnare questa risposta come migliore risposta.

Buona esperienza su Linux e Ubuntu.


Molte grazie. Ora posso lavorare nella directory home. L'operazione che mi hai chiesto in precedenza non può essere consentita. Dice che non ho il permesso, ma grazie comunque per il suggerimento.
wkhwilo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.