Quando você monta a pasta do servidor no cliente pela rede, há 2 perguntas que você precisa fazer:
- Qual UID / GID deve ter arquivos do ponto de vista do SERVIDOR
- Qual UID / GID deve ter arquivos do ponto de vista do CLIENTE
Use ls -lh
na pasta para verificar o proprietário do arquivo e seu grupo. Observe que o Linux traduz o UID para o usuário, se possível, ou simplesmente o exibe como número, se não puder.
A menos que você esteja usando algum Banco de Dados de Contas compartilhado como LDAP (OpenLDAP ou Windows Active Directory) e conecte seu Linux a ele usando o PAM, você tem diferentes bancos de dados de usuários no cliente e servidor, cada um com seu próprio usuário. mapeamento de senha-UID ( /etc/passwd
file e sua sombra com senha). O cliente pode ter o usuário "joe" com o UID 1000 e o servidor pode ter o usuário "joe" com o UID 2000 e "mary" com o UID 1000.
Existem várias maneiras de resolvê-lo com o Samba.
Use as extensões do Unix .
São extensões do protocolo SMB que permitem que servidor informe o UID ao cliente . Então, quando você se conectar ao servidor prividing user=joe
server:
- traduz o joe para o UID usando seu próprio banco de dados
- faz chover qualquer arquivo criado com ele
- informa ao cliente seu UID e o cliente o mapeia para algum usuário local.
Funciona perfeito, mas você precisa sincronizar seu UIDS no cliente e servidor , o que pode ser difícil de fazer manualmente (use o OpenLDAP com o pam_ldap, se você realmente quiser).
Eu acredito que este é o seu problema!
A pior coisa acontece quando o servidor reporta algum uid e não há nenhum usuário com tal uid no cliente. Então, em vez do nome do usuário, você vê o número.
Faça o cliente escolher qual usuário usar
Quando você monta seu compartilhamento com uid=
e desabilita a configuração de extensões unix unix extensions = no
no servidor smb.conf
.
- O servidor usa o usuário da autenticação (
user=
de credenciais) - O cliente usa
uid=
.
Você nem precisa ter os mesmos usuários no cliente e no servidor, mas é conveniente que eles sejam iguais. Mas eles podem ter UIDS diferentes.
Então, aqui está o que você deve fazer para adicionar um novo usuário:
No servidor
-
unix extensions = no
na seção global emsmb.conf
-
useradd -m joe
-
smbpasswd -a joe
(digite a senha e lembre-se)
No cliente
-
useradd -m joe && mkdir /home/joe/Home && chown joe /home/joe/Home
- Em
/etc/fstab
//gannet8.local/joe /home/joe/Home cifs auto,user,rw,uid=joe,gid=joe,user=joe,password=PASS_HERE
Você deve ser capaz de criar quantos usuários desejar, mas depois de 10 a 15 deles você deve pensar no OpenLDAP ou no Active Directory (se tiver muitos clientes Windows).
Ler link
Especialmente na seção "PROPRIEDADE E AUTORIZAÇÃO DE ARQUIVOS E DIRETÓRIOS"