Temos um servidor Ubuntu 9.04 executando samba com senhas nulas e compartilhamentos de diretório inicial, e temos usuários correspondentes que montam os compartilhamentos em máquinas com Windows. Essencialmente, cada usuário tem uma conta no servidor (com o mesmo nome de usuário em suas máquinas Windows) e um diretório pessoal em / home / USERNAME que é montado em sua máquina local como \\ SAMBABOX \ USERNAME ao qual eles têm acesso total.
Para a maioria dos usuários, isso funciona sem problemas; eles podem ler, gravar, criar e excluir arquivos em seus compartilhamentos sem problemas. A seguir, uma dessas conexões iniciais, como visto nos logs do samba:
[2009/12/02 10:30:22, 1] smbd/service.c:make_connection_snum(1115)
somewindowsbox (192.168.2.123) connect to service ekaufman initially as user ekaufman (uid=1002, gid=1002) (pid 22574)
Para um usuário em particular, no entanto, eles são incapazes de - no mínimo - criar certos arquivos (arquivos de bloqueio para uma cópia de trabalho do SVN). Isto é, lembre-se, de qualquer máquina Windows no nosso domínio AD. Olhando para seus logs de samba, sua conexão inicial é feita como o usuário nobody , e eu não posso, para a vida de mim, descobrir o porquê.
[2009/11/18 10:19:32, 1] smbd/service.c:make_connection_snum(1115)
somewindowsbox (192.168.2.123) connect to service jdoe initially as user nobody (uid=65534, gid=65534) (pid 15570)
A conta de usuário no servidor ubuntu é mais ou menos idêntica às outras, conforme indicado em / etc / passwd :
ekaufman:x:1002:1002:,,,:/home/ekaufman:/bin/bash
jdoe:x:1015:1015:,,,:/home/jdoe:/bin/bash
e / etc / group :
ekaufman:x:1002:
jdoe:x:1015:
E até mesmo / etc / shadow (com os hashes de senha removidos antes de serem postados aqui, é claro):
ekaufman:!:14580:0:99999:7:::
jdoe:!:14572:0:99999:7:::
Eu até deletei a conta deles na caixa do ubuntu e a recriou, sem alterações. De acordo com o administrador do controlador de domínio do AD, a conta deles é mais ou menos idêntica a todos os outros também (excluí-lo e recriá-lo seria proibitivamente complicado).
Se eu montar manualmente o compartilhamento para minha própria conta a partir de uma máquina Windows, forçando o nome de usuário, ele funcionará sem incidentes:
C:\> net use z: \sambabox.local\ekaufman /user:ekaufman
The command was completed successfully
Se eu fizer o mesmo para esse usuário em particular, ele ainda se conectará como nobody , com falha silenciosa:
C:\> net use z: \sambabox.local\jdoe /user:jdoe
The command was completed successfully
Isso me dá a impressão de que, qualquer que seja o problema, ele está no lado linux das coisas.
Esta é toda a configuração do smb em uso:
[global]
null passwords = yes
guest ok = yes
security = user
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes
[homes]
comment = Home Directories
browseable = no
read only = no
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no