비밀번호로 보호된 Samba 공유

비밀번호로 보호된 Samba 공유

나는 삼바 가닥을 원해요. 그 중 일부는 모든 사람이 사용할 수 있어야 하며(이미 작동함) 일부는 비밀번호(및 사용자 이름)로 보호되어야 합니다. 비밀번호로 보호된 폴더의 경우 새 사용자를 생성하고 그에게 삼바 비밀번호를 제공하고 내 공유의 유효한 사용자 = 아래에 그의 이름을 썼습니다. 다음 명령은 다음과 같습니다.

useradd joe
passwd joe
smbpasswd -a joe
valid users = vivek raj joe

나는 이 작은 가이드를 따랐습니다.삼바 사용자 추가. 하지만 작동하지 않는 것 같습니다. Windows 7에서 계속 비밀번호가 잘못되었다는 메시지가 나타납니다.

이것은 내 삼바 구성 파일입니다.

[global]
  server string = bananapi
  workgroup = WORKGROUP
  netbios name = %h
  security = user
  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
 
 
# Using the following configurations as a template allows you to add
# writable shares of disks and paths under /storage
 
[Share]
  path = /storage/share
  available = yes
  browsable = yes
  public = yes
  writable = yes
  root preexec = mkdir -p /storage/share
 
[username]
  path = /storage/username
  available = yes
  browsable = yes
  public = no
  writable = yes
  valid users = joe
  root preexec = mkdir -p /storage/username

답변1

https://www.samba.org/samba/docs/using_samba/ch09.html

구성 공유를 사용하여 guest ok = yes게스트 사용자 액세스를 허용할 수 있습니다.

공유 수준 보안을 사용하는 경우에만 유효합니다.

정보가 필요하면 다른 웹사이트 대신 소스 코드를 방문하는 것이 좋습니다. 다음은 Samba 디렉토리입니다. https://www.samba.org/samba/docs/using_samba/toc.html

당신은 사용하고 있습니다

[GLOBAL]
security = user

이는 가장 제한적인 사항입니다. Microsoft Windows 시스템을 사용하는 사람이라면 누구나 Linux 시스템의 삼바 공유에 액세스하려면 해당 Linux 시스템에 계정이 있거나 알아야 하며 비밀번호를 알아야 합니다.

내 smb.conf의 일부는 다음과 같습니다

[global]
        workgroup = WORKGROUP
        passdb backend = tdbsam
        security=user
        map to guest = Bad User
#       map to guest = nobody
        usershare allow guests = No
        server signing = auto

귀하와 마찬가지로 위의 경우 Linux 시스템 계정이 없는 Windows 시스템 사용자는 누구나안 돼요연결하면 Microsoft Windows가 응답합니다. cannot access \\whatever_server_you_typed. 이는 Map to Guest = Bad User"Bad User"가 Linux 시스템에서 사용자 계정으로 존재하지 않고 공백이 있기 때문에 구문상으로도 유효하지 않기 때문입니다.

Map to Guest = nobody 그러나 nobody유효한 Linux 계정을 사용하면 Microsoft Windows에서 사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. 이는 Microsoft Windows에 대해 지정된 사용자 이름이 samba-server를 실행하는 Linux 시스템의 사용자 이름이 아닐 때 발생합니다.

아래에서 이 접근 방식을 선택하면 Security = User위에서 설명한 방법을 사용하여 잠재적으로 보안 요구 사항을 충족할 수 있습니다. 그렇지 않으면 security = share원래 요청한 작업을 수행해야 합니다. 즉, 네트워크에 있는 모든 사람이 암호를 묻는 메시지 없이 특정 폴더에 액세스할 수 있도록 해야 합니다.

~을 위한안전예를 선택하세요사용자, 공유, 서버 및 도메인. Samba 도움말 문서에는 각 기능에 대해 사용할 수 있는 기능과 사용할 수 없는 기능이 설명되어 있습니다.

실행 취소하는 것이 좋습니다guest account = root

도움말 문서에서 해당 옵션을 찾지 못했습니다. guest account =(해당 옵션과 마찬가지로) 동일하다고 가정하고 확실한 보안 영향을 위해 알 수 없는 사용자를 루트 계정에 매핑하고 싶지 않습니다.Map to GuestPublicGuest OK = yes

답변2

이 비디오는 그것을 아주 잘 설명합니다.

https://www.youtube.com/watch?v=7Q0mnAT1MRg

이전 smb.conf 파일을 백업하고 처음부터 새 파일을 생성하면 더 잘 작동한다고 생각합니다.

/etc/samba 폴더로 이동합니다.

sudo mv smb.conf smb.conf.bak

smb.conf 파일에 [global] 설정을 생성하고 각 폴더에 대해 별도의 파일 share.conf를 생성할 수 있습니다.

새 smb.conf 파일을 만듭니다.

sudo nano smb.conf

smb.conf에서:

[global]
server string = File server
workgroup = WORKGROUP
security = user
map to guest = Bad User
name resolve order = bcast host
include = /etc/samba/shares.conf

이제 share.conf 파일을 만듭니다. 공개적으로 성공적으로 공유했으므로 여기서는 비밀번호 보호 옵션을 표시하겠습니다.

주식.conf:

[Private Share]

path=[give here the path to the folder to be shared]
force user = smbuser
force group = smbgroup
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
writable = yes

시스템 그룹 smuser를 생성합니다.

sudo groupadd --system smbgroup

이제 사용자 smbuser가 smbgroup에 생성되지만 홈 디렉터리가 생성되지 않고 시스템에 로그인하는 기능도 거부됩니다.

sudo useradd --system --no-create-home --group smbgroup -s /bin/false smbuser

공유하려는 폴더의 소유권을 변경하세요.

sudo chown -R smbuser:smbuser [folder path]

쓰기 권한 부여

sudo chmod -R g+w [folder path]

smbuser에 삼바 비밀번호를 추가하세요. 이는 공유 폴더를 보기 위해 인증하기 위해 Windows에서 제공해야 하는 비밀번호입니다.

sudo smbpasswd -a smbuser
New SMB password:[password]
Retype new SMB password:[password]

이제 smbd를 다시 시작하십시오.

sudo systemctl restart smbd

윈도우에서 실행\\[ip address of samba system]

사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. 사용자 이름은 smbuser귀하가 제공하고 비밀번호는 귀하가 제공합니다.

도움이 되었기를 바랍니다.

답변3

허용된 사용자가 포함된 그룹(예: "restrictedgroup")을 생성하고 이를 smb.conf에 지정해야 합니다.

유효 사용자 = @restrictedgroup

그러면 제한된 그룹의 사용자만 폴더에 액세스할 수 있습니다.

관련 정보