Por que não posso executar programas em outra partição no Linux?

4

Então, por conveniência, eu armazeno todos os meus dados na minha partição do Windows para que eu possa acessar meus dados facilmente tanto do Linux quanto do Windows. No entanto, tentei compilar um programa C ++ com g ++ e descobri que não posso executar o programa com ./program_filename , como ele me diz

bash: program_filename: Permission denied

Fazendo

cp program_filename ~/program_filename

e executá-lo do meu diretório home funciona bem, no entanto.

Então, eu tentei chmod +rwx program_filename , mas ls -l mostra que as permissões ainda estão definidas como -rw-------. para todos os arquivos no diretório. Nada muda quando eu faço isso como root.

Existe uma solução simples para isso?

(Caso seja útil, estou executando o Fedora 16 x64)

    
por wrongusername 14.01.2012 / 09:14

3 respostas

15

Certifique-se de que suas opções de montagem permitam o bit de permissão de execução.

Existem opções de montagem que podem ser usadas para limitar as permissões de arquivos no sistema de arquivos montado: geral noexec impede que todos os arquivos sejam executáveis, a opção específica de FAT showexec concede a permissão apenas a arquivos com extensões .exe , .com e .bat . Observe também que noexec está implícito em user e users .

Se você usar user ou users , ainda poderá obter o bit de permissão de execução funcionando montando com a opção exec mount explicitamente especificada após a opção user ou users .

Veja a página de manual para detalhes.

    
por 14.01.2012 / 10:20
5

Quando você monta uma partição FAT ou NTFS, as permissões são determinadas no momento da montagem, pelas opções umask , fmask e dmask . O primeiro é geral, os outros dois são específicos para arquivos e diretórios.

Você também pode estar interessado na opção uid e gid para estabelecer o proprietário e o grupo de todos os arquivos e diretórios na partição.

Um exemplo:

mount -t ntfs-3g -o uid=500,gid=500,umask=0022 /dev/sda1 /mnt/win
    
por 14.01.2012 / 14:18
-1

No Puppy Linux, por padrão, você pode executar scripts em partições NTFS ou FAT: link

    
por 07.08.2014 / 17:52