Como tornar um arquivo executável? [duplicado]

25

Como posso criar meu arquivo para que eu possa clicar nele duas vezes e ele é executado. É um script .sh , mas também tenho arquivos que dizem:

executable (application/x-executable)

na descrição do que eles são.

Não consigo executar nenhum desses a partir do terminal ou clicando duas vezes.

Se possível, eu gostaria de usar uma interface gráfica ou um terminal, mas não uma combinação dos dois.

Aqui está uma captura de tela do que eu vejo quando clico com o botão direito do mouse e depois em propriedades. O arquivo primeiro:

E o script de shell aqui:

NB: Eu aceito que isso é uma duplicata (eu estava procurando por isso, e não consegui encontrá-lo, então perguntei + respondi, esperando encontrá-lo), no entanto, eu não acho a pergunta sobre. arquivos da área de trabalho é uma duplicata.

    
por Tim 17.06.2014 / 21:18

1 resposta

44

Existem duas maneiras de tornar um arquivo executável:

Método GUI:

Vá para a guia permissões e marque a caixa Execute: [✓] Permitir a execução do arquivo como programa.

Método da linha de comando:

Basta executar:

chmod +x /path/to/your/file.txt

Observe que chmod também possui algumas opções mais avançadas. Aceita três grupos de opções, representados como --- --- --- . O primeiro conjunto de --- é usuário. O segundo é Group e o último é Other (todo mundo).

r significa Read, w para Write e x para eXecute.

Para permitir que todos o leiam, mas somente o grupo a ser executado e o usuário a ler e escrever seria -rw- rx- r-- . Isso seria adicionado ao comando como:

chmod +rw-rx-r-- /path/to/file.extension

chmod também pode fazer isso em números. É baseado em binário.

Então existem esses números:

Executar por usuário é 100 . Executar por grupo é 010 . Executar por outro é 001

Escrever por usuário é 200 . Escreva por grupo é 020 . Escreva por outro é 002 .

A leitura pelo usuário é 400 . Ler por grupo é 040 . Ler por outro é 004 .

Depois, adicione-os para obter a combinação desejada.

Para permitir que todos o leiam, mas somente o grupo a ser executado e o usuário a escrevê-lo seriam 400 + 040 + 004 e 010 e 200

Isso resulta em 600 + 050 + 004 = 654 .

Você pode então executar o comando.

chmod +654 /path/to/file.extension

para configurá-lo. Então, para definir todas as permissões, você pode executar:

chmod +rwxrwxrwx /path/to/file.extension

ou

chmod +777 /path/to/file.extension

Finalmente, você pode fazer:

chmod -777 /path/to/file.extension

Para tirar todas as permissões de todos.

E:

chmod +300 /path/to/file.extension

Para adicionar e ler para o usuário, sem afetar outras permissões (por exemplo, permissões de execução).

Este site tem uma pequena ferramenta muito útil, na qual você pode marcar as opções desejadas e fornecer o comando :

No entanto, nem todas as combinações possíveis são sensatas para uso; os principais que são usados são os seguintes:

  • 755 - Owner tem tudo, e Group e Other podem ler e executar

  • 700 - Owner tem todos

  • 644 - Owner pode ler e escrever e Group e Other podem ler

  • 600 - Owner pode ler e escrever

E, se você estiver usando grupos de usuários não triviais:

  • 775 - Owner pode ler e escrever e Group e Other podem ler

  • 770 - Owner e Group têm todos e Other podem ler e executar

  • 750 - Owner tem tudo, e Group pode ler e executar

  • 664 - Owner e Group podem ler e escrever, e Other pode ler apenas

  • 660 - Owner e Group podem ler e escrever

  • 640 - Owner pode ler e escrever e Group pode ler

777 e 666 são raramente usados, exceto em /tmp .

Obrigado Ilmari Karonen por apontando os de uso comum!

    
por Tim 17.06.2014 / 21:25