암호를 요구하지 않도록 Samba 공유를 만드는 방법


20

참고 : 아마도 2 년 동안 공개 Samba 공유를 설정하는 방법을 설명하는 최대 50 개의 다른 페이지를 읽었 으며 아무것도 효과가 없었습니다. 이 재료를 설정하는 데 필요한 RTFM의 양을 모르겠습니다.

두 대의 워크 스테이션을 위해 내 홈 서버에서 완전히 열린 공개 파일 공유를 설정해야합니다.

설정은 다음과 같습니다.

서버 :

  • 데비안 휘지
  • sudo smbd --version나에게 준다 Version 3.6.6.
  • 공유하고 싶은 2 개의 로컬 파티션으로 오래된 Windows 시스템으로 인해 NTFS로 포맷되었습니다. 다른 곳으로 이동할 수없는 많은 데이터가 있기 때문에 ext * FS로 포맷 할 수 없습니다.
  • 독창성이 결여 된 "homeserv"라는 기계.

클라이언트 :

  1. 데비안 테스팅 (Jessie)
  2. Windows 7 (2 개의 다른 시스템) 사실, 내 컴퓨터는 Debian / Windows dualboot이고, 아내의 컴퓨터는 Windows 전용입니다.

증류 후 내 smb.conf는 다음과 같이 보입니다 ( verbatim , 다른 것은 없습니다).

[global]
  workgroup = WORKGROUP
  security = user
  map to guest = Bad User

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

두 클라이언트 시스템 모두 데비안과 Windows에서 동일한 결과가 나타납니다 : login / password dialog. 의 편성은 security = user, map to guest = Bad user, security = share, guest ok = yes등은 도움이되지 않습니다.

Windows 7은 네트워크 환경에서 공유 컴퓨터를 클릭하면 바로 로그인 / 암호 대화 상자를 표시합니다. smb://homeserv/파일 (모든 파일 브라우저에서) 데비안의 경로 쇼 나 두 개의 폴더 : disk1disk2, 의도 한대로, 로그인 / 암호 대화 상자를 가져다을 열려고에 의해.

그렇다면 로그인 / 암호를 입력하지 않아도되는 구성표에 부족한 것은 무엇입니까? 이것은 유용성 질문입니다. 파일 폐차장에 대한 사용자 기반 인증을 만들지 않습니다.

답변:


14

좋아, 나는 스스로 대답을 찾았다.

이것은 문서와 하우투 등에서 분명하지 않기 때문에이 암호를 요구하는 이유는 게스트 사용자를 공유중인 디렉토리소유자 에게 매핑 할 수 없기 때문 입니다.

RW를 마운트해야하는 NTFS 파티션이 있으므로 다음 설정을 사용했습니다 /etc/fstab.

/dev/sdb1  /media/disk1  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2
/dev/sdb2  /media/disk2  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2

가장 중요한 설정은 uid및입니다 gid(아마도 uid모르는 경우). jonnie서버에 설정된 사용자의 UID 및 GID로 설정됩니다 (분명히 루트는 아님). 따라서, ntfs-3g가이 디스크를 마운트 할 때 모든 것이 그 소유입니다.

그 후,이 사용자를 Samba 레지스트리에 추가했습니다 (또는 새로운 동일한 것을 만들 수도 있습니다).

# smbpasswd -a jonnie

암호를 요청했는데 기본 시스템과 동일하게 입력했습니다.

그 후,에 force userforce group설정을 추가 했습니다 smb.conf.

[global]
  workgroup = WORKGROUP
  netbios name = HOMESERV
  security = share

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

따라서 나와 관련된 가장 중요한 구성은이었습니다 force user.

의 의례 삼바 HOWTO


1
"분명히 루트가 아닙니다". 실제로 그렇게 명확하지 않습니다. 삼바에는 수십 가지 장애 모드가 있습니다. 대부분 동일한 오류 메시지가 나타납니다. 이것이 바로 Google 검색에서 많은 시간을 소비 한 이유입니다. 한 번의 검색으로 여러 가지 문제가 발생할뿐만 아니라 발견 된 답변도 동일한 혼란을 겪게됩니다. 루트를 사용하면 Linux의 보안 측면이 제거되지만 문제를 진단 할 수도 있습니다. 루트로 작동하면 Linux 수준에서 보안 문제가 발생하고, Samba가 계속 실패하면 문제는 Samba가 사용자에 대해 생각한 것입니다 (다르고 고유 한 오류가 있음)
MSalters

2

구성이 더 짧을 수 있습니다.

유닉스 사용자 조니 만들기

useradd jonnie -s /usr/sbin/nologin

smbuser 생성

smbpasswd -a jonnie

공유 할 Linux 디렉토리를 작성하십시오.

mkdir /mysmbshare

디렉토리의 소유자를 jonnie로 변경하십시오.

chown /mysmbshare jonnie

smb.conf

[global]
  workgroup = MyWorkGroup
  server string = Hello, use me
  security = share
  guest account = jonnie
  passdb backend = tdbsam

[the_public_share]
   path = /mysmbshare
   writable = yes
   printable = no
   public = yes

모든 파일은 jonnie가 소유하며 모든 사람은 파일에 rw 액세스 할 수 있습니다.


"디렉토리 소유자를 jonnie로 변경"은 아마도 여기서 가장 중요한 부분 일 것입니다. 훨씬 짧은 솔루션에 감사드립니다!
hijarian

1

열린 삼바 공유를 갖는 빠르고 더러운 방법은 다음과 같습니다.

# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

        security = share
        passdb backend = tdbsam

공유는 다음과 같이 정의됩니다.

[export]
   comment = Data Export Directory
   path = /data/export
   read only = no
   public = yes
   browseable = yes
   writeable = yes
   create mask = 666
   directory mask = 777

데몬을 다시 시작하십시오.

Windows 7 클라이언트의 경우 2014 년 현재 도메인 정책을 설정해야했습니다 . 항상 디지털 서명 통신을 항상 DISABLE로 설정했습니다.


나의 주식, 아마도 공개 주식에 대한 도메인 정책을 바꾸고 ... (facepalm). 그래, 고맙지 만 어쨌든, 나는 지금 이것을 시도했고 액세스 smb://homeserv/disk1하려면 여전히 데비안에서 암호가 필요합니다. Dolphin 및 Krusader 파일 브라우저를 사용했습니다. 어쩌면 KDE에있는 것일 수도 있습니다.
hijarian

이봐, 효과가 있었다! : D public = yes777권한이 트릭을 수행했습니다 (Win 10 호스팅 Ubuntu 18.04). 다행히도 그것은 내 개인용 워크 스테이션에 있으므로 걱정할 필요가 없습니다
Arthur Tarasov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.