Eu me conecto de um cliente linux com um usuário (1000) a um servidor.
O nome de usuário é o mesmo em ambas as máquinas, mas possui um UID diferente.
Quando eu conecto os arquivos aparecem como de propriedade 1001
e não USER
como eu esperaria. Eu esperaria que o cifs traduzisse o usuário original para o que eu uso no cliente. Mas este não é o caso. Parece que eu tenho que ter usuários semelhantes no cliente e no servidor e também atribuir o mesmo UID em ambos. Mas não consigo imaginar que esta seja a única solução para isso.
O cliente tem mount.cifs versão 6.4.
Meu fstab é
//192.168.111.190/hgst /home/ben/hgst cifs vers=1.0,noauto,users,uid=1001,username=USER,password=PASSWORD
.
Já alterei para incluir vers=1.0
e uid=1001
.
O manual diz que posso usar forceuid
no cliente para forçar um determinado usuário. Se eu incluir essa opção no meu fstab recebo um invalid argument
upon mount
, ambos com 1000 e 1001. Não uso forceuid
no servidor.
Meu servidor está executando o openmediavault 3 e meu cliente é o Lubuntu 16.04 LTS.
O UID no servidor e no cliente não precisa corresponder. Essa é a razão pela qual você usaria um servidor samba.
É como montar uma partição NTFS. Sem uma especificação de uid, o compartilhamento montado seria de propriedade do root. O uid=1001 refere-se ao uid do usuário no cliente e não ao servidor se o cliente tiver um usuário com esse uid.
PARA O SERVIDOR: Tudo o que você faz é feito como o usuário com o qual você efetuou login na combinação nome de usuário = USUÁRIO / senha = SENHA em sua expressão de montagem cifs, independentemente de como você a montou no cliente.
PARA O CLIENTE: Se o cliente for Linux, ele será montado com o que você definiu em sua expressão de montagem.
E não há necessidade de um parâmetro forceuid.
Então é isso que deveria ter sido:
EDITAR
O parâmetro uid em uma expressão de montagem CIFS altera a propriedade do compartilhamento montado da raiz para o especificado por uid. Em sua montagem original, você define uid como 1001, que é para um usuário que não existe no cliente. Você deve ter definido o uid como 1000 porque esse é o uid do usuário cliente. forceuid não deve ser necessária.
Nenhuma idéia. Não deve ser o caso embora. Deve ter um nome de usuário em uma extremidade e um nome de usuário na outra extremidade, se forem os mesmos. Lembre-se disso:
...
Se esses são os mesmos, por que não usar o nome de usuário?
uid
aceita um nome e um ID de usuário.Você usaria
user=
ouuid=
com um nome de usuário oucredentials=
com um nome de arquivo que tenha um nome de usuário e senha antesforceuid
Meu problema era que eu estava usando
forceuid
o caminho errado .A opção deve ser incluída assim:
Ou seja, tive que definir um
uid
primeiro e depois colocar a opçãoforceuid
sem argumento para garantir que o UID da outra opção seja usado.Eu cruzei isso com a propriedade no servidor. Os arquivos agora são exibidos no cliente com UID 1000, mas gravados no servidor com UID 1001, exatamente como deveria ser. O nome de usuário é o mesmo, o que também está correto.
Meu outro erro foi declarar o UID como o do servidor (1001). Mas tem que ser o contrário, o UID precisa informar ao cliente qual usuário local deve possuir os arquivos , no meu caso
uid=1000
.Então, com essa opção,
forceuid
provavelmente não é necessário.A página de manual útil foi: http://manpages.ubuntu.com/manpages/xenial/man8/mount.cifs.8.html