Por que isso acontece
O Windows não lerá o desktop.ini
, a menos que seja um arquivo do sistema (aparentemente só funciona também, mas o arquivo do sistema significa que ele pode ficar oculto mesmo quando você define arquivos ocultos que não são do sistema visíveis).
Por que você aparentemente não consegue consertar
Em um compartilhamento Samba (implementação Unix do SMB / protocolo de compartilhamento de rede), às vezes, mesmo se você, por exemplo, for para propriedades e definir "somente leitura", ele será ignorado e não será definido. Isso ocorre porque o Samba não armazena essas permissões por padrão - o que parece ter um imposto de desempenho (provavelmente insignificante), pois as permissões são (AFAIK) definidas e lidas em fluxos alternativos como dados textuais (provavelmente não funcionariam se você estivesse compartilhando alguns FS rudimentares como FAT ).
Como corrigir isso
Primeiro, verifique se o Samba armazena permissões no estilo DOS (como "sistema"), adicionando essa linha à sua definição de compartilhamento:
store dos attributes = yes
Talvez você possa adicionar isso a [Global]
, adicionei-o a um compartilhamento específico.
Além disso, algumas pessoas lhe dirão para editar o arquivo errado.
-
/usr/share/samba/smb.conf
< = sem sentido -
/etc/samba/smb.conf
< = arquivo correto
Reinicie o Samba ( sudo service samba restart
) e, em seguida, faça uma verificação rápida para ver se você pode usar o Windows Explorer para tornar um arquivo somente para leitura, por exemplo, e se ele persistir.
Ok, agora você pode tornar o desktop.ini
um arquivo de sistema / oculto. Para fazer isso, vá para a pasta onde está com o prompt de comando e use:
attrib +s +h desktop.ini
Opcionalmente também (se o seu ícone for relativo e armazenado na mesma pasta que o meu).
attrib +s +h folder.ico
Por último, você precisa marcar a pasta como somente leitura (não faz sentido e soa estúpido, então você sabe que é legítimo).
attrib +r .
De cursos, você pode (deve) escrever isto. Usando o bash do MSysGit, eu fiz isso no meu NAS inteiro:
find . -type f -iname desktop.ini | while read -r i; do
echo "Processing \"$(basename "${i%/*}")\""
attrib +s +h "$i"
attrib +s +h "${i%/*}/folder.ico" # Optional, in case you have these.
attrib +r "${i%/*}"
done