Eu quero criar uma pasta compartilhada no Windows (na verdade, Windows XP, Vista e Win 7), que pode ser montada a partir de um sistema Linux sem solicitar um nome de usuário / senha. Mas antes de tentar isso, eu primeiro quis estabelecer que isso funciona entre duas máquinas com Windows 7.
Então, na máquina A (o servidor que vai manter o compartilhamento público), eu criei uma pasta e defini suas permissões de modo que todos tivessem acesso de leitura / gravação. Então eu visitei o Painel de Controle - > Central de Rede e Compartilhamento - > Configurações avançadas de compartilhamento e, em seguida, selecione "Desativar compartilhamento protegido por senha". Em seguida, na máquina B (o cliente que deseja acessar o compartilhamento público sem prompt de nome de usuário / senha), tentei "mapear o driver de rede" e fui imediatamente solicitado por um prompt de senha.
Algumas pesquisas no Google sugeriram a alteração "Acconts: limite o uso de senhas em branco da conta local para o logon no console" para "desativado". Tentei isso, sem sorte, ainda recebendo prompt de nome de usuário / senha.
Se eu inserir o nome de usuário / senha, não serei solicitado novamente e poderá usar o compartilhamento, desde que a sessão esteja ativa. Mas ainda assim, eu realmente preciso acessar o compartilhamento sem qualquer transação de nome de usuário / senha e isso não é apenas uma coisa relacionada à conveniência. Aqui está o motivo real: O dispositivo que irá acessar este compartilhamento de rede do Windows é um sistema embarcado rodando o uclinux. Ele montará esse compartilhamento localmente e, em seguida, reproduzirá arquivos de mídia. Sua única interface de usuário é uma página web baseada em javascript. Então, se houver qualquer transação de nome de usuário / senha, eu teria que pedir ao usuário para inseri-los na página da web, o que seria ridiculamente inseguro e completamente exposto ao sniffing de pacotes.
Depois de fazer experimentos, descobri uma maneira de fazer isso acontecer, mas não gosto muito dele ... Primeiro crio um novo usuário (shareuser) e dou uma senha (sharepass). Em seguida, abro o Editor de Diretiva de Grupo e defina "Negar logon localmente" como "A \ shareuser". Em seguida, crio uma pasta em A e compartilho-a para que o shareuser tenha acesso de leitura a ela. Dessa forma, o shareuser não pode efetuar login em A, mas pode acessar a pasta compartilhada. E, se alguém descobre o shareuser / sharepass por meio de sniffing de rede, ele pode simplesmente acessar a pasta compartilhada, mas não pode fazer logon em A.
A mesma coisa pode ser obtida habilitando o usuário Convidado e, em seguida, indo para o Editor de Diretiva de Grupo e excluindo o "Convidado" da configuração "Negar acesso a este computador pela rede". Novamente, o Guest pode montar o compartilhamento público, mas o login no A como Guest não será possível, porque o Guest já não tem permissão para efetuar login por padrão.
Então, minha pergunta seria: como criar um compartilhamento de rede verdadeiramente público, para que possa ser montado em uma máquina Linux sem exigir uma senha? Desculpe pela longa pergunta, mas eu queria explicar o motivo de realmente precisar disso ...