
Eu editei /proc/fs/cifs/SecurityFlags
para permitir que minhas montagens cifs sejam montadas corretamente. (Tive que usar o valor 0x81.)
Para editar, SecurityFlags
digito modprobe cifs
o que me permite ver o /proc/fs/cifs
diretório (não consigo vê-lo antes de digitar este comando).
Depois de reiniciar, o valor SecurityFlags
foi redefinido para o padrão, que é 0x7.
Como definir isso permanentemente para manter o valor 0x81 após a reinicialização?
Responder1
É definido como uma opção quando o kernel é compilado
/proc é um sistema de arquivos virtual, vejahttp://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html
/proc é muito especial porque também é um sistema de arquivos virtual. Às vezes é chamado de sistema de pseudoarquivos de informações de processo. Ele não contém arquivos 'reais', mas informações do sistema em tempo de execução (por exemplo, memória do sistema, dispositivos montados, configuração de hardware, etc.). Por esta razão pode ser considerado um centro de controle e informação do kernel. Na verdade, muitos utilitários do sistema são simplesmente chamadas para arquivos neste diretório. Por exemplo, 'lsmod' é o mesmo que 'cat /proc/modules' enquanto 'lspci' é sinônimo de 'cat /proc/pci'. Ao alterar os arquivos localizados neste diretório você pode até ler/alterar os parâmetros do kernel (sysctl) enquanto o sistema está em execução.
Verhttps://www.kernel.org/doc/readme/Documentation-filesystems-cifs-README
SecurityFlags Flags que controlam a negociação de segurança e também a assinatura de pacotes. Sinalizadores de autenticação (podem/devem) (por exemplo, para NTLM e/ou NTLMv2) podem ser combinados com os sinalizadores de assinatura. Especificar dois mecanismos diferentes de hash de senha (como "obrigatório"), por outro lado, não faz muito sentido. Os sinalizadores padrão são 0x07007 (NTLM, NTLMv2 e assinatura de pacotes permitida). O máximo de sinalizadores permitidos se você deseja permitir montagens em servidores usando hashes de senha mais fracos é 0x37037 (lanman, texto simples, ntlm, ntlmv2, assinatura permitida). Alguns SecurityFlags exigem que as opções de menuconfig correspondentes sejam habilitadas (lanman e texto simples requerem CONFIG_CIFS_WEAK_PW_HASH por exemplo). A ativação da autenticação de texto simples atualmente requer também a ativação da autenticação lanman nos sinalizadores de segurança porque o módulo cifs suporta apenas o envio de senhas de texto simples usando a forma mais antiga do dialeto lanman do SMB de configuração de sessão. (por exemplo, para autenticação usando senhas de texto simples, defina SecurityFlags como 0x30030):
may use packet signing 0x00001
must use packet signing 0x01001
may use NTLM (most common password hash) 0x00002
must use NTLM 0x02002
may use NTLMv2 0x00004
must use NTLMv2 0x04004
may use Kerberos security 0x00008
must use Kerberos 0x08008
may use lanman (weak) password hash 0x00010
must use lanman password hash 0x10010
may use plaintext passwords 0x00020
must use plaintext passwords 0x20020
(reserved for future packet encryption) 0x00040
Você pode substituir isso com opções de montagem
Verhttps://www.samba.org/samba/docs/man/manpages-3/mount.cifs.8.html
seg= Modo de segurança. Os valores permitidos são:
nenhuma tentativa de conexão como usuário nulo (sem nome)
krb5 Use autenticação Kerberos versão 5
krb5i Use autenticação Kerberos e assinatura de pacotes
ntlm Usar hash de senha NTLM (padrão)
ntlmi Use hashing de senha NTLM com assinatura (se /proc/fs/cifs/PacketSigningEnabled ativado ou se o servidor exigir assinatura também pode ser o padrão)
ntlmv2 Usar hash de senha NTLMv2
ntlmv2i Use hash de senha NTLMv2 com assinatura de pacote
[NB: Este [parâmetro sec] está em desenvolvimento e espera-se que esteja disponível no módulo cifs do kernel 1.40 e posterior]
Se precisar de ajuda, poste suas opções de montagem ou entrada no fstab e a mensagem de erro que você recebe ao tentar montar.
Responder2
O pôster original,Paulo Rosas, conseguiu resolver o problema adicionando um comando a rc.local
e relatou a solução emeste comentárioeaquele comentário subsequente.
A soluçãopareceter sido o seguinte:
Abra
/etc/rc.d/rc.local
em um editor de texto.[Observe que este arquivo nem sempre épresente ou usado por padrãoem versões mais recentes do Ubuntu.]
Adicione essas duas linhas ao arquivo, para que cada vez que o Ubuntu for iniciado, o
cifs
módulo seja carregado (se ainda não foi) e o texto0x81
seja escrito em `SecurityFlags:modprobe cifs echo 0x81 > /proc/fs/cifs/SecurityFlags
Salve o arquivo e saia do editor de texto.
Digo que "aparece" desta forma porque as informações sobre os espaços em branco, incluindo a nova linha entre o que acredito terem sido dois comandos separados, não são visíveisno comentário, e porque acredito que o caminho completo /proc/fs/cifs/SecurityFlags
e não apenas SecurityFlags
foi usado (ou que um cd
comando foi adicionado antes dele), caso contrário a solução não teria funcionado.
Responder3
Para uma solução mais permanente, sugerimos a criação de umudevregra para definir o valor de SecurityFlags. Isso definirá o valor sempre que o módulo cifs for carregado. Você define suas regras em /etc/udev/rules.d.
50-cifs-securityflags.rules:
# Set SecurityFlags to 0x81.
ACTION=="add", SUBSYSTEM=="module", KERNEL=="cifs", RUN+="/bin/sh -c 'echo 0x81 > /proc/fs/cifs/SecurityFlags'"
e então recarregue o udev comudevadm control --reload-rules && udevadm trigger