Windows 7 및 XBMC를 통해 액세스 할 수 있도록 익명의 공용 Samba Share 설정


9

따라서 일주일 전에이 작업을 성공적으로 수행했으며 문제가 없었지만 그 이후로 서버를 다시 포맷하고 재구성했으며 이제는 내가 한 일을 기억하는 데 가장 힘든 시간을 보내고 있습니다.

여기에 내가 가진 것과 다시 달성하려는 것이 있습니다. 우분투 서버에서 공개 삼바 공유를했습니다. 네트워크의 모든 사용자는 \ 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 사용자는 Netowork에서 NAS를보고 액세스 할 수 있습니다. 열쇠는 보안을 보안 = 공유로 설정하는 것이 었습니다. 나는 더 이상 사용되지 않지만 작동하지만 보안 = 사용자 및 사용자에게 매핑 = 나쁜 사용자가 나를 위해 일하지 않았다는 것을 알고 있습니다.

어쨌든 이제 공유에 연결하는 사람은 디렉토리에 대한 유닉스 전역 권한을 얻을 수있는 것으로 보이지만 smb.conf에 지정된 작업 그룹에 가입 한 사용자가 유닉스 그룹 권한을 갖기를 원합니다.

이 방법으로 디렉토리를 775로 설정할 수 있으며 작업 그룹에 가입했기 때문에 쓸 수는 있지만 다른 사용자는 읽고 실행할 수만 있습니다.


답변:


8

우분투 포럼 에서이 스레드 를 우연히 발견 하고 도움이 될 것이라고 생각했습니다. 뒤에서 발생하는 단계를 설명합니다.

Windows에서 클라이언트의 사용자 이름과 비밀번호는 공유를 찾을 때 자동으로 전송됩니다. 이는 사용자 모르게 수행됩니다. 이렇게하면 인증이 필요하지 않은 게스트 공유 인 경우에도 Samba가 전송 된 자격 증명을 처리하도록합니다.

해당 사용자 이름이 전달되면 Samba는 해당 사용자의 비밀번호 데이터베이스를 검색합니다.

  • 사용자 이름과 일치하지 않으면 클라이언트 사용자는 "나쁜 사용자"로 태그가 지정되고 기본적으로 "nobody"인 게스트 계정으로 변환 (매핑)됩니다.

  • 사용자 이름과 일치하고 Windows 클라이언트가 보낸 것과 일치하는 삼바 암호가 있으면 Windows 사용자는 익명 사용자가 아니더라도 자동으로 액세스 할 수 있습니다. 따라서 "force user = nobody"를 귀하의 공유 정의.

  • 사용자 이름과 일치하지만 samba 암호가 Windows 클라이언트가 자동으로 보낸 암호와 정확히 일치하지 않으면 게스트 공유의 경우에도 암호를 입력하라는 메시지가 표시됩니다.

force user = nobody공유 정의에 추가해보십시오 .

02/20/2013 편집 :

인가 testparm제로 이외의 종료 코드를 반환? 똑같이, 나는 구성의 해당 영역에 좋은 하드 모양을 줄 것입니다. 또한 대소 문자를 구분하는 smb.conf가 어느 정도인지 확실하지 않지만 (예를 들어)의 모든 예제 map to guest = Bad User에는 B와 U가 대문자로 표시되어 있습니다. 체크 아웃 삼바 매뉴얼 페이지 당신이 사용하는 옵션을 두 번 검사 모두를위한합니다.


브라이스, 답변 주셔서 감사합니다. 원래 질문 이후 약간의 진전을 보였지만 여전히 본질적으로 동일한 문제가 있습니다. smb.conf의 전역 검색에 정의 된 작업 그룹의 모든 사람이 바로 액세스 할 수 있도록 내 공유 (공유라고 함)를 구성했습니다. 암호가 필요 없습니다. 다음 코멘트에서 계속 ...
조지 Spake

공유 설정은 다음과 같습니다. [Shares] path = /home/shares browsable = yes available = yes read only = no public = yes writable = yes guest ok = yes 추가 하면 공유 force user = nobody가 끊어지고 공유에 액세스 할 수 없습니다. 여기가 이상해 보이는 곳이 있습니다. testparm을 실행하면 덤프가 발생 [Shares] path = /home/shares read only = no guest ok = yes하므로 어떤 이유로 든 공개, 작성 가능, 사용 가능 및 탐색 가능한 정의가 표시되지 않는 것과 같습니다. 이것이 문제의 위치를 ​​나타내는 지표 일 수 있습니다.
George Spake

@GeorgeSpake edit made ...
Aaron

1
나는 testparm이 그런 식으로 물건을 뱉어 버린다고 생각합니다. conf 파일에는 모든 것이 소문자입니다. 또한 testparm은 기본이 아닌 정의 만 덤프하여 일부 결과가 생략 된 이유를 설명합니다.
George Spake 2013

4.3.11+dfsg-0ubuntu0.14.04.3Ubuntu 14.04의 최신 삼바 업데이트 가 공개 공유를 중단했습니다. force user = nobody공개 공유를 다시 가져 오는 데 필요한 수정 사항입니다.
Antony

7

이것이 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

이 추가에 감사드립니다! Windows 8.1에서 작업하는 공개 공유를 얻는 데 어려움을 겪고 있습니다.
davidmdem

13
어머! "게스트 계정 = 루트". 즉, 게스트 계정이 루트에 매핑됩니다. 즉, 모든 작업을 수행 할 수있는 무제한 권한이 있습니다. 정말 조심하세요! 드래곤 앞서!
DanielSmedegaardBuus

0

구글 검색은 우리를 여기로 데려오고 명확한 대답이 없기 때문에 나는 요약했다.

다음은 Samba 서버에 액세스 할 때 SMB 클라이언트가 사용자 이름과 비밀번호를 묻지 않도록하는 데 필요한 조건입니다.

  1. 섹션 guest account = <owner-of-your-shares>아래에 추가 [global]하십시오. 공유의 소유자 계정에 액세스 권한이 있어야합니다. 이 작업을 수행하지 않으면 Samba는 게스트 계정이 nobody공유의 데이터에 액세스 할 수없는 사용자 라고 가정합니다 .

    다른 방법으로는 지정할 수 있습니다 force user = <owner-of-your-share>당신의 아래 [shareXYZ]블록.

  2. 당신 [shareXYZ]이 가지고 있는지 확인하십시오 guest ok = yes.

    설정 browsable = yes하지만 일반적으로에서 상속 되며 기본적으로 [global]설정되어 yes있습니다.

그런 다음 security = user설정해야합니다 (환경에 Active Directory가 설정되어 있지 않은 경우 기본값 임). 그러나 내 환경에 AD가 없으므로이 플래그가 필요한지 확실하지 않습니다.

물론, nobody사용자가 작업하기 를 원한다면, . 아래 chown -Rh 65534:65534 /yourshare의 단일 설정만으로도 괜찮을 guest ok = yes[shareXYZ]입니다.

세트를 갖는 참고 rwx로하는 others( chmod o+rwx /yourshare)의 삼바를하지 않았다 nobody공유로 사용자. 로 확인했습니다 strace -f -e chdir,geteuid,getegid -p <pid-of-the-parent-smbd-process>. 아마도 삼바는 단지 others? 확실하지 않다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.