Permissão negada ao executar scripts .sh

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

program exited with code: 126. Esse problema sempre ocorre quando tento executar meu código. Qual pode ser a solução?

wkhwilo
fonte
11
Permission deniedocorrem apenas se você não tiver privilégios suficientes para acessar esse arquivo.
Avinash Raj
Como posso alterar as permissões
wkhwilo
Onde posso fazer isso por favor me dê um exemplo de tiro
wkhwilo
Quando faço isso, diz-me o seguinte chmod: não pode acessar `geany_run_script.sh ': Não existe esse arquivo ou diretório. Devo executá-lo a partir do terminal ou o quê?
Wkhwilo
possível duplicata de Como executo arquivos .sh no Terminal?
Eliah Kagan

Respostas:

118

Aqui está um link que explica sobre a alteração da permissão de arquivo (e propriedade)

Se você quiser pular estes (por enquanto, é claro), você pode criar um diretório / pasta no diretório inicial do usuário e trabalhar com seus Cprogramas (ou outros) lá.


Você pode abrir o terminal (pressione Ctrl+ Alt+ T) e cdpara o diretório de destino:

cd /path/to/target

Para dar ao arquivo "the_file_name", execute a permissão (se o sistema de arquivos permitir os direitos de RW):

chmod +x the_file_name
preciso
fonte
Como posso alterar as permissões de qualquer exemplos
wkhwilo
O problema de como fazer isso? Eu sou um novo usuário do Ubuntu que mudei recentemente do Windows.
Wkhwilo
..qual é o seu diretório de trabalho, ie. qual é a localização do seu arquivo de código-fonte? .. você tem alguma experiência com o Windows CLI?
preciso
@ wkhwilo-012, ver se isso ajuda e por favor não hesite em pedir mais ..
precisa
@ wkhwilo-012, copie o seu arquivo executável Area_circumferencee cole-o (o caminho do arquivo será colado) para atualizar o corpo da sua pergunta ...
precisa
20

Você precisa dar apenas permissão de execução. Siga isso:

    chmod +x filename.sh
    ./filename.sh

Quando criamos um novo arquivo de script, por padrão, ele tem permissão de leitura e gravação. Mas se queremos executá-los, devemos dar permissão de execução como mostrado acima.

Jay Modi
fonte
2

Abra o aplicativo do terminal pressionando CTRL+ ALT+ Tou com o atalho apropriado no ambiente gráfico (como Terminalou xTerm).
Na janela uniforme que aparece na tela, você verá um caractere piscando terminal cursor: basta clicar na janela e escrever para inserir texto (normalmente comandos) e pressionar ENTERpara confirmar a entrada.
Antes do cursor, sempre é listada sua posição atual no sistema de arquivos a partir de root directory("/") e sua casa (onde estão seus arquivos pessoais) é chamada de "~".
Para alterar o diretório / pasta, use cd EXISTENTFOLDER(substitua EXISTENTFOLDER pelo nome da pasta); se você se sentir perdido, basta digitar cdpara retornar ao seu diretório pessoal em um piscar de olhos!
Agoravamos resolver o seu problema :

  1. Use o cdcomando para encontrar o diretório com seu código-fonte. Use TABpara ajudá-lo. Se você executar ls -lh, verá uma lista dos possíveis caminhos a serem seguidos e dos arquivos a serem executados.

  2. Quando você encontrar o arquivo bloqueado, execute chmod +x FILENAME(substitua FILENAME pelo nome do seu arquivo de código-fonte).

  3. Se você tiver vários arquivos bloqueados, execute chmod +x *para desbloquear todos os arquivos no diretório atual. Nunca chmod + x arquivos perigosos ou inseguros .

  4. Executar ./FILENAME YOUREVENTUALARGUMENTSpara executar seu arquivo executável.

  5. Lembre-se de que se o seu programa compilado tentar ler / gravar fora do diretório inicial, será necessário executá-lo como rootusando sudo ./FILENAME YOUREVENTUALARGUMENTS.

Se você deseja que um manual seja executado man COMMAND(substitua COMMAND pelo nome exato do comando, o Linux diferencia maiúsculas de minúsculas).

Algumas conchas têm um Open terminal herecomando para simplificar sua vida, procure-a no futuro e lembre-se de que o shell de comando pode ser seu melhor amigo, se você o usar bem. :-D

É tudo. Se precisar de mais ajuda, comente aqui.
Se estou ajudando você a pressionar a seta PARA CIMA à esquerda; se você resolver, marque esta resposta como a melhor resposta.

Tenha uma boa experiência no Linux e Ubuntu.

Lorenzo Ancora
fonte
Muito obrigado. Agora eu posso trabalhar no diretório inicial. A operação que você me pediu anteriormente não pode ser permitida. Diz que não tenho permissão, mas agradeço de qualquer maneira pela sugestão.
wkhwilo