최근에 운영 체제를 다시 설치한 홈 파일 서버가 있습니다. 하드웨어 업그레이드로 인해 Ubuntu Server 10.04.2 32비트를 10.04.3 64비트로 교체했습니다. 이전 Samba 구성을 복사하고 공유 사용자를 다시 생성한 다음 다른 디스크의 공유 디렉터리에 대한 권한이 그대로 유지되는지 확인했습니다. XP와 Win7 컴퓨터가 있습니다. 둘 다 파일 서버를 볼 수 있지만 둘 다 공유에 액세스할 수는 없습니다. Windows 컴퓨터에서 액세스하면 \\Server
사용자/비밀번호를 묻는 메시지가 표시되고 연결을 수락하는 것으로 나타납니다. 다음 단계 로 가면 \\Server\Share
사용자/비밀번호를 다시 묻고 인증하지 않습니다.
Windows 컴퓨터의 네트워크 설정은 변경되지 않았습니다. 서버에 누락된 다른 구성이 있습니까? 또 무엇이 잘못될 수 있나요?
문제 해결:제안대로 로그를 찾았습니다. smbd와 nmbd가 모두 실행 중입니다. Windows 시스템의 로그에는 연결을 시도할 때 이와 같은 줄이 많이 나타납니다.
[2011/11/07 07:23:53, 1] smbd/service.c:676(make_connection_snum)
create_connection_server_info failed: NT_STATUS_ACCESS_DENIED
이것은 분명히 문제인데 왜 그런 일이 발생하는지 모르겠습니다. 내가 사용하고 있는 사용자와 패스는 문제가 없으며 업그레이드하기 전에도 잘 작동합니다. log.winbindd-idmap에서 이것을 찾았습니다.
[2011/11/07 07:14:12, 1] winbindd/idmap.c:321(idmap_init_domain)
idmap initialization returned NT_STATUS_UNSUCCESSFUL
[2011/11/07 07:23:40, 0] winbindd/idmap.c:201(smb_register_idmap_alloc)
idmap_alloc module tdb already registered!
[2011/11/07 07:23:40, 0] winbindd/idmap.c:149(smb_register_idmap)
Idmap module passdb already registered!
[2011/11/07 07:23:40, 0] winbindd/idmap.c:149(smb_register_idmap)
Idmap module nss already registered!
[2011/11/07 07:23:40, 1] winbindd/idmap_tdb.c:214(idmap_tdb_load_ranges)
idmap uid missing
[2011/11/07 07:23:40, 0] winbindd/idmap_tdb.c:287(idmap_tdb_open_db)
Upgrade of IDMAP_VERSION from -1 to 2 is not possible with incomplete configur
ation
[2011/11/07 07:23:40, 1] winbindd/idmap.c:321(idmap_init_domain)
idmap initialization returned NT_STATUS_UNSUCCESSFUL
로그 파일
[2011/11/06 20:01:29, 0] smbd/server.c:1069(main)
smbd version 3.4.7 started.
Copyright Andrew Tridgell and the Samba Team 1992-2009
[2011/11/06 20:01:29, 0] printing/print_cups.c:103(cups_connect)
Unable to connect to CUPS server localhost:631 - Connection refused
[2011/11/06 20:01:29, 0] printing/print_cups.c:103(cups_connect)
Unable to connect to CUPS server localhost:631 - Connection refused
[2011/11/06 20:01:29, 0] smbd/server.c:1115(main)
standard input is not a socket, assuming -D option
로그 nmbd
[2011/11/06 13:40:55, 0] nmbd/nmbd.c:854(main)
nmbd version 3.4.7 started.
Copyright Andrew Tridgell and the Samba Team 1992-2009
smb.conf, 대부분의 내용이 재고임
[global]
workgroup = MyGroup # edited
server string = %h server (Samba, Ubuntu)
dns proxy = no
use sendfile = yes # edited
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
security = user # edited
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
guest account = myshareuser # edited
usershare allow guests = yes
[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
# added
[share]
path = /mnt/storage/share
force user = myshareuser
force group = myshareuser
read only = No
create mask = 0777
directory mask = 0777
guest only = No
guest ok = No
[backup]
path = /mnt/storage/backup
force user = myshareuser
force group = myshareuser
read only = No
create mask = 0777
directory mask = 0777
guest only = No
guest ok = No
답변1
다음을 시도해 보세요:
sudo smbpasswd -L -a username (set a password)
sudo smbpasswd -L -e username (enable user)
문제 세부 정보와 함께 /etc/samba/smb.conf의 내용을 추가할 수도 있습니다. 또는 webmin을 사용해 볼 수도 있습니다. 자세한 내용은 아래 링크를 확인하세요.
답변2
passdb.tdb 파일이 손상되었을 수 있습니다. 제거하고 Samba를 다시 시작하면 사용자를 추가할 수 있나요?
답변3
좋아요 아직 해결 방법을 찾지 못했다면 다음을 시도해 보세요.
sudo system-config-samba
다음과 같은 GUI가 제공됩니다.
기본 설정 상자(Samba 설정 및 Samba 사용자)를 선택하십시오. 파일 -> 공유 추가에서 공유를 추가할 수 있습니다.
또한 문제가 지속되면 아래와 같이 /etc/samba/smb.conf 파일을 편집해 볼 수도 있습니다. 이렇게 하면 문제가 해결될 수 있습니다.
usershare allow guests = yes
security = user
guest ok = yes
guest account = exampleuser
username map = /etc/samba/smbusers
# added
[share]
path = /mnt/storage/share
valid users = myshareuser
read only = No
guest ok = yes
browseable = yes
[backup]
path = /mnt/storage/backup
valid users = myshareuser
read only = No
guest ok = yes
browseable = yes
그런 다음 다음 명령을 실행합니다.
sudo chmdo 777 /mnt/storage/share /mnt/storage/backup
sudo stop smbd
sudo start smbd
이제 공유가 유효한지 확인하세요 :D
대화형 사용자 인증의 경우 다음이 작동할 수 있습니다.
시스템에 사용자를 추가하고 비밀번호를 제공하세요.
sudo 사용자 testamba 추가
Samba에 사용자 추가 &다시 물을 때 비밀번호를 비워두세요
sudo smbpasswd -a testsamba
Windows 사용자 지도
sudo vi /etc/samba/smbusers
파일에는 다음 내용이 포함되어야 합니다.
testsamba = windowsuserSample
이전과 같이 GUI를 사용하여 필요한 구성을 만듭니다.
sudo system-config-samba
삼바 서비스 다시 시작
sudo service smbd restart
답변4
@Jay Sheridan, 다음을 시도했는데 제대로 작동할 것입니다. 이것은 지난 답변의 요약 버전일 뿐입니다. 확인하실 수 있습니다.
- 삼바 서버를 설치하고 터미널에 다음 명령을 입력하십시오.
sudo apt-get install samba smbfs
- 공유 구성을 만듭니다.
sudo vi /etc/samba/smb.conf
다음과 같이 편집하세요:
[global]
security = USER
hosts allow =
[homes]
comment = Home Directories
browseable = no
writable = yes
[share]
comment = Unixmen File Server
path = /share/
force user = samba
force group = samba
read only = No
hosts allow =
시스템에 사용자(예: unixmenuser)를 추가하려면 터미널에 다음 명령을 입력하십시오.
root@unixmen-desktop:~# adduser unixmenuser
sudo smbpasswd -a unixmenuser
두 번째 명령의 출력은 다음과 같습니다.
Output
New SMB password:
Retype new SMB password:
Added user unixmenuser.