Um sistema Linux convidado vê um arquivo de texto como binário com ls

2

Estou copiando um arquivo de texto simples para um sistema Linux convidado no VirtualBox através de pastas compartilhadas, mas após a cópia, a VM parece pensar que o arquivo é um binário (aparece verde em ls ):

Existe alguma maneira de converter isso de volta?

A distribuição do Linux é SANS SIFT, que acredito ser executada no Ubuntu 14.

    
por DJMcCarthy12 23.04.2015 / 18:04

3 respostas

5

Isso acontece comigo o tempo todo, geralmente quando copio um arquivo de texto gerado no Windows para o meu servidor Linux por meio de um compartilhamento de rede gerenciado por samba no lado do servidor. Hastur tem razão, nos comentários, e Joe Sewell em sua resposta também: é apenas o sinalizador de permissões 'executável' é definido. Minha solução é:

chmod u-x,go+r filename

Isso faz com que ele não seja executável para meu usuário e legível para "grupo" e "outros". A parte ,go+r é opcional, contanto que você seja o único que precisará acessar o arquivo.

EDIT: Deve ser possível alterar o comportamento padrão samba para essas permissões. Eu não me preocupei em tentar descobrir, mas uma pesquisa rápida no Google apareceu este serverfault post que descreve a primeira coisa que eu tentaria:

I typically use SAMBA's native functionality for permissions and groups management on shares. For example..

force user=user1
force group=sharedgroup
create mask=775

You would specify these settings under the share. Be certain to reload SAMBA after the configuration change, which could be done via the init script.

Com base nos comentários sobre essa pergunta / resposta, há várias configurações sutis e específicas que devem ser definidas corretamente. Eu sou capaz de ser de nenhuma ajuda a esse respeito, eu tenho medo.

    
por 23.04.2015 / 18:15
2

Se você tiver LS_COLORS configurado com valores padrão (ou pelo menos os padrões que vi no RHEL), a cor verde do nome do arquivo não significa que seja binário, apenas um ou mais bits executáveis estão prontos. ls -l deve fornecer as informações necessárias para confirmar isso. Lembre-se que, no Linux, scripts de shell são arquivos de texto que devem ser executáveis para funcionar (bem, a menos que vocêsource% deles).

    
por 23.04.2015 / 18:15
0

Eu acho que você vê atributos diferentes: o executável x , provavelmente agora você tem -rwxrw-r-- . Para ter certeza, tente do seu sistema convidado ls -l yourfile e você verá qual atributo seu arquivo é visto.

Se for um problema do conjunto de atributos executáveis ( x ) com chmod u-x , você poderá corrigir o problema.
Veja a resposta do Brian para corrigir o problema com os atributos de leitura do grupo também.

Isso depende de como você monta a pasta compartilhada , com quais atributos e, infelizmente, você precisa corrigi-la novamente na próxima vez.

Se você não puder fazer de outra maneira, você pode sempre tentar consertá-lo manualmente, como sugerido, por exemplo. em serverfault e escolhendo as opções apropriadas. É sugerido

In a Linux guest, use the following command:

mount -t vboxsf [-o OPTIONS] sharename mountpoint

To mount a shared folder during boot, add the following entry to /etc/fstab:

sharename   mountpoint   vboxsf   defaults  0   0

Referências e notas:

  • man mount e man fstab para todas as opções sobre como montar uma partição por linha de comando e tempo de inicialização .
  • manual da pasta compartilhada do Virtualbox
  • Postagem antiga no fórum virtualbox

  • Se você quiser ver se é um arquivo binário, verifique-o com type yourfile , sempre do seu sistema convidado.

por 23.04.2015 / 19:32