
따라서 일주일도 채 안 되어 이 작업을 성공적으로 수행했으며 문제가 없었지만 그 이후로 서버를 다시 포맷하고 재구성했으며 지금은 어떻게 수행했는지 기억하는 데 가장 어려움을 겪고 있다는 점부터 시작해야 합니다.
여기에 내가 이전에 가졌던 것과 내가 다시 달성하려고 하는 것이 있습니다. Ubuntu 서버에 공개 삼바 공유가 있습니다. 내 네트워크의 누구든지 \Hostname을 입력하기만 하면 공유와 그 내용에 액세스할 수 있습니다. 비밀번호가 필요하지 않습니다. 공유 작업 그룹에 속하지 않은 사용자에게는 읽기 액세스 권한이 있었지만 작업 그룹에 속해 있던 사용자에게는 읽기/쓰기 액세스 권한이 있었습니다. (윈도우 7)
이제 \Hostname에 연결하려고 하면 사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. un pw를 입력하면 전체 액세스 권한을 얻을 수 있지만 그럴 필요는 없습니다. 내 현재 설정은...
security = user
map to guest = bad user
[Shares]
path = /home/shares
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes
나는 이것 위로 내 머리카락을 잡아 당기고 있습니다. 어떤 제안이 있으십니까?
편집하다:
아, 이게 나한테 너무 힘든 시간을 주고 있구나. 나는 너무 가깝다.
내가 가진 것은 다음과 같습니다.
시작하고 \Hostname\Sharename을 입력하여 Windows 7에서 공유에 접근할 수 있지만 사용자 이름과 암호를 묻는 메시지가 나타납니다. 하지만 내 작업 그룹을 도메인으로 사용하기 때문에 비워 둘 수는 없습니다. 그래서 사용자 이름을 지우고 빈 사용자 이름과 비밀번호로 로그인하기 위해 사용자 이름에 \를 입력합니다. 이제 공유에 있는 파일에 액세스할 수 있습니다.
일단 들어가면 작업 그룹 구성이 제대로 작동하고 있습니다. 기본 WORKGROUP이 있는 컴퓨터에서는 읽고 실행할 수 있습니다. 내 홈 작업 그룹의 컴퓨터는 읽고 쓰고 실행할 수 있습니다. 그래서 효과가 있습니다.
문제는 비밀번호를 전혀 요구해서는 안된다는 것입니다. 이는 네트워크의 모든 사람에게 완전히 공개되어야 합니다. XBMC와 공유하려고 하는데 파일 관리자의 smb 아래에도 표시되지 않습니다. XBMC에서도 수동으로 액세스할 수 없습니다. 연결 거부 오류가 발생합니다.
아직도 이것에 대해 머리카락을 잡아 당기고 있습니다. 최악의 부분은 일주일 전에 처음으로 이 작업을 수행했을 때 약 30분을 투자했는데 완벽하게 작동했다는 것입니다. 이제 적어도 4시간을 보냈는데 여전히 작동하지 않습니다.
Testparm:
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = FELLOWSHIP
server string = %h server (Samba, Ubuntu)
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = No
wins support = Yes
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
print ok = Yes
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[Shares]
path = /home/shares
read only = No
guest ok = Yes
업데이트: 이제 작업 그룹에 관계없이 네트워크 전체에서 공유를 사용할 수 있습니다. 내 네트워크에 연결하는 모든 Windows 사용자는 Networkowork에서 NAS를 보고 액세스할 수 있습니다. 핵심은 보안을 보안 = 공유로 설정하는 것이었습니다. 나는 그것이 더 이상 사용되지 않는다는 것을 알고 있지만 작동하고 보안 = 사용자 및 사용자 매핑 = 나쁜 사용자가 나를 위해 작동하지 않았습니다.
어쨌든 이제 공유에 연결하는 사람은 누구나 디렉토리에 대한 unix 전역 권한을 얻는 것으로 보입니다. 이는 관리 가능하지만 smb.conf에 지정된 작업 그룹에 가입한 사용자는 unix 그룹 권한을 얻길 원합니다.
이렇게 하면 디렉터리를 775로 설정할 수 있고, 나는 작업 그룹에 가입되어 있으므로 쓰기가 가능하지만 다른 사용자는 읽기 및 실행만 가능합니다.
답변1
우연히 우연히 발견한Ubuntu 포럼의 이 스레드, 그리고 그것이 도움이 될 것이라고 생각했습니다. 뒤에서 일어나는 단계를 설명합니다.
Windows에서는 공유를 검색할 때 클라이언트의 사용자 이름과 비밀번호가 자동으로 전송됩니다. 이는 사용자가 모르는 사이에 수행됩니다. 이는 인증이 필요하지 않은 게스트 공유임에도 불구하고 Samba가 전송된 자격 증명을 처리하도록 합니다.
해당 사용자 이름이 전달되면 Samba는 해당 사용자의 비밀번호 데이터베이스를 검색합니다.
사용자 이름과 일치하는 항목이 없으면 클라이언트 사용자에게 "Bad User"라는 태그가 지정되고 기본적으로 "nobody"인 게스트 계정으로 변환(매핑)됩니다.
사용자 이름과 일치하는 항목을 찾고 Windows 클라이언트에서 보낸 것과 일치하는 삼바 비밀번호가 있는 경우 Windows 사용자는 익명 사용자가 아니더라도 자동으로 액세스 권한을 얻습니다. 따라서 "force user = none"을 추가해야 합니다. 귀하의 공유 정의.
사용자 이름과 일치하는 항목을 찾았지만 삼바 비밀번호가 Windows 클라이언트에서 자동으로 보낸 비밀번호와 정확히 일치하지 않는 경우 게스트 공유의 경우에도 비밀번호를 묻는 메시지가 표시됩니다.
force user = nobody
공유 정의에 추가해 보고 제대로 작동하는지 확인하세요.
2013년 2월 20일 수정:
testparm
0이 아닌 종료 코드를 반환하고 있습니까 ? 그럼에도 불구하고 저는 구성의 해당 영역을 훌륭하고 확실하게 살펴보겠습니다. 또한 smb.conf가 얼마나 대소문자를 구분하는지 잘 모르겠지만, 예를 들어 내가 본 모든 예에서는 map to guest = Bad User
B와 U가 대문자로 표시되어 있습니다. 체크아웃삼바 매뉴얼 페이지사용 중인 옵션을 확인하고 모든 것을 다시 확인하세요.
답변2
OpenElec은 다음과 같이 구성됩니다. 당신이 요구하는 것을해야합니다. (1년 후가 되더라도...다음에는 도움이 될 것입니다.) 필요에 따라 공유 설정을 조정하기만 하면 됩니다.
[global]
server string = YOURSERVERNAME
workgroup = WORKGROUP
netbios name = %h
security = share
guest account = root
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
smb ports = 445
max protocol = SMB2
min receivefile size = 16384
deadtime = 30
os level = 20
mangled names = no
syslog only = yes
syslog = 2
name resolve order = lmhosts wins bcast host
preferred master = auto
domain master = auto
local master = yes
printcap name = /dev/null
load printers = no
browseable = yes
writeable = yes
printable = no
encrypt passwords = true
enable core files = no
passdb backend = smbpasswd
smb encrypt = disabled
use sendfile = yes
[share]
comment = Share
path = /share
available = yes
browsable = yes
writable = yes
public = yes
답변3
구글 검색으로 여기까지 왔는데 명확한 답이 없어서 요약해봤습니다.
다음은 SMB 클라이언트가 Samba 서버에 액세스할 때 사용자 이름과 비밀번호를 묻는 메시지를 표시하지 않도록 하는 데 필요한 조건입니다.
guest account = <owner-of-your-shares>
섹션 아래에 추가합니다[global]
. 귀하의 주식 소유자 계정이 해당 주식에 접근할 수 있는 것이 중요합니다. 이렇게 하지 않으면 Samba는 게스트 계정을nobody
공유에 있는 데이터에 액세스할 가능성이 없는 사용자로 가정합니다.또는 블록
force user = <owner-of-your-share>
아래에 지정할 수 있습니다[shareXYZ]
.[shareXYZ]
가 있는지 확인하세요guest ok = yes
.설정되지만
browsable = yes
일반적으로 에서 상속되며 기본적으로[global]
로 설정됩니다 .yes
그런 다음 아마도 security = user
설정해야 할 것입니다(사용자 환경에 Active Directory가 설정되지 않은 경우 기본값입니다). 하지만 내 환경에 AD가 없기 때문에 이 플래그가 필요한지 확실하지 않습니다.
물론, 사용자가 작업하기를 원한다면 nobody
그냥 하면 됩니다. 그 후에는 아래의 chown -Rh 65534:65534 /yourshare
단일 설정만으로도 괜찮을 것입니다 .guest ok = yes
[shareXYZ]
( ) rwx
로 설정하면 Samba와 해당 사용자가 공유에 참여할 수 없습니다 . 나는 이것을 로 확인했습니다 . 아마도 Samba는 ? 에 대해 설정된 권한을 무시합니다 . 확실하지 않다.others
chmod o+rwx /yourshare
nobody
strace -f -e chdir,geteuid,getegid -p <pid-of-the-parent-smbd-process>
others
답변4
이것은 아마도 그러한 문제가 있는 모든 사람을 위한 해결책은 아닐 것입니다. 그러나 내 문제는 공유 디렉터리가 있는 상위 디렉터리의 권한 때문이었습니다. "다른 사람이 읽기"를 활성화하자마자 익명으로 액세스할 수 있었습니다. 공유. Windows 서버에서는 상위 디렉토리의 권한이 공유 디렉토리에 대해 중요하지 않기 때문에 이것은 나를 약간 놀라게 했습니다.
그래서 내 경로는 다음과 같습니다
/data1/Downloads
디렉토리 에서 "다른 사람이 읽기"를 활성화해야 했습니다 data1
.
에는 특별한 작업이 필요하지 않았습니다 smb.conf
. 내 공유 항목은 다음과 같습니다.
[Downloads]
path = /data1/Downloads
browseable = yes
read only = yes
guest ok = yes
public = yes